久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 單片機+HC-SR04超聲波測距串口顯示程序 帶詳細注釋 [打印本頁]

作者: Yimning    時間: 2020-4-24 19:44
標題: 單片機+HC-SR04超聲波測距串口顯示程序 帶詳細注釋

使用超聲波型號SR04/SR05


主要代碼如下:(非完整!!!)

#include <AT89X51.H>
#include <intrins.h>
#include <stdio.h>

void InitIRQ(void);
void Conut(void);
void delayms(unsigned int ms);
void StartModule();        

#define uchar unsigned  char
#define uint  unsigned   int  
#define RX  P1_1
#define TX  P1_2

unsigned int  time=0;
float         Distance=0;//距離
bit           flag =0;   //中斷溢出標志
        
/********************************************************/
void main()
{
        InitIRQ();
        while(1)
  {
         StartModule();
         while(!RX);                //當超聲波模塊接收口輸出低電平則等待
         TR0=1;                //開啟計數
         while(RX);                        //當RX為1計數并等待
         TR0=0;                                  //關閉計數
   Conut();                          //讀取定時器的值,計算
         delayms(60);        
        }
}

/*********** 中斷寄存器設置初始化 ***********/
void InitIRQ(void)
{
        TMOD=0x21;  //T/C工作方式寄存器 0010 0001
                    //T0 :GATE=0; 定時模式; 工作方式1,16位T/C; 計數器溢出中斷,用于判定超出測距范圍
                    //T1 :GATE=0; 定時模式; 工作方式2,8位可自動重載T/C; 用于串口通信 波特率發生器
        SCON=0x50;  //串行口控制寄存器  0101 0000
                    //SM0 SM1:工作方式1;10位異步收發;波特率由定時器T1控制
                    //SM2: 多機通信控制位,方式0和方式1為非多機通信,設置0
                    //REN: 串行口接收允許位,允許串行口接收數據
                    //TB8:方式0和方式1中該位不用
                    //RB8: 方式0和方式1中該位不用
                    //TI: 發送中斷標志位。串行發送停止位時,由內部硬件置1,向CPU發中斷申請,必須由軟件清0
                     //RI: 接收中斷標志位。串行接收停止位時,由內部硬件置1,向CPU發中斷申請,必須由軟件清0
        TH0=0;      //T0初始化,,用于判斷測距溢出,最大65.536 ms
        TL0=0;         
        TH1=0xFD;   //T1初始化  設定波特率9600 (波特率計算參考文檔)
        TL1=0xFD;   
        
        ET0=1;      //T0中斷允許
        TR0=1;      //開啟定時器0
        TR1=1;      //開啟定時器1
        //ES=1;     //串口允許中斷
                    /*
                                                          可刪除,我的理解是:在系統正常運行情況下,串口發送完成則置位TI=1,
                                                          向CPU請求中斷,在我們軟件人為的直接設置TI=1的情況下可以直接向CPU
                                                          請求中斷了,已經跳過了“允許”那一步
                                                                并且最好刪除!
                                                                因為TI為中斷標志位如果程序使用了串口中斷,那么每次調用printf都
                                                                會進入中斷,因此在使用printf前要禁用中斷
                                                        */
        TI=1;       /*
                     發送中斷標志 ☆直接使用printf必須加此語句才能發送
               在KEILC中,printf在傳輸數據前需要確保前一個數據傳輸
                                                         結束,也就是TI=1,否則將處于等待狀態
                                                         因為printf函數會調用putchar函數,而putchar函數會判斷TI,
                                                         不為1則等待(相當于死機),為1則清0,發送完成后又自動置1
                                                         因此第一次運行printf時檢查TI=1則進行發送,發送完成后
                                                         發送中斷標志位TI又自動置1
                                                         */
  EA=1;       //開啟總中斷
}

HC-SR04超聲波測距串口顯示.rar

32.19 KB, 下載次數: 93, 下載積分: 黑幣 -5


作者: 冬雨521528    時間: 2021-4-11 16:54
這個程序有大量重復啊,不建議下載.論壇里面很多重復的




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 黄色播放 | 色综合色综合 | 黄色欧美在线 | 中文字幕在线观看视频一区 | 国产一级淫片a直接免费看 免费a网站 | 久久精品久久精品 | 在线免费国产 | 久久久www成人免费无遮挡大片 | 久久久久香蕉视频 | 欧美日韩a | 亚洲不卡在线观看 | 伊人二区 | 人人鲁人人莫人人爱精品 | 九九热在线视频 | 国产精品美女久久久免费 | 久热国产精品视频 | 五月婷婷导航 | 日本三级全黄三级a | 免费在线观看一级毛片 | 在线观看a视频 | 成人精品一区二区三区中文字幕 | 成人精品毛片国产亚洲av十九禁 | 日韩精品一区在线观看 | 男女视频在线免费观看 | 亚洲精品18 | 日本黄色不卡视频 | 亚洲欧美在线观看 | 二区三区在线观看 | 欧美一区二区三区在线看 | 天堂国产| 免费看a | 日本免费黄色 | 久久aⅴ乱码一区二区三区 亚洲国产成人精品久久久国产成人一区 | 久久综合一区 | 国产91色在线 | 亚洲 | 精品一区二区三区在线观看 | av不卡一区| 丝袜天堂 | 伊人久久综合 | 亚洲精品久久久久久久久久久 | 国产精品入口麻豆www |