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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4568|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)+HC-SR04超聲波測(cè)距串口顯示程序 帶詳細(xì)注釋

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:696077 發(fā)表于 2020-4-24 19:44 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

使用超聲波型號(hào)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;   //中斷溢出標(biāo)志
        
/********************************************************/
void main()
{
        InitIRQ();
        while(1)
  {
         StartModule();
         while(!RX);                //當(dāng)超聲波模塊接收口輸出低電平則等待
         TR0=1;                //開啟計(jì)數(shù)
         while(RX);                        //當(dāng)RX為1計(jì)數(shù)并等待
         TR0=0;                                  //關(guān)閉計(jì)數(shù)
   Conut();                          //讀取定時(shí)器的值,計(jì)算
         delayms(60);        
        }
}

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

HC-SR04超聲波測(cè)距串口顯示.rar

32.19 KB, 下載次數(shù): 93, 下載積分: 黑幣 -5

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂2 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:310814 發(fā)表于 2021-4-11 16:54 | 只看該作者
這個(gè)程序有大量重復(fù)啊,不建議下載.論壇里面很多重復(fù)的
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久无码av | 亚洲小视频在线播放 | 久久久久久久久国产 | 欧美激情精品久久久久久变态 | 在线观看国产www | 精产嫩模国品一二三区 | 欧美日韩中文字幕 | 91视频精选 | 日韩精品一区二区三区中文在线 | 亚洲欧美在线一区 | 欧洲尺码日本国产精品 | 国产操操操 | 亚洲欧美中文日韩在线v日本 | 日日射夜夜骑 | 日本一区二区三区免费观看 | 欧美精品一区二区三区在线 | 久久精品黄色 | 日韩欧美国产一区二区三区 | 久久综合狠狠综合久久综合88 | 在线播放中文字幕 | 国产欧美日韩在线播放 | 中文av在线播放 | 久操国产 | av黄色在线播放 | 日本高清中文字幕 | 久久久久国产精品一区二区 | 91视视频在线观看入口直接观看 | 成人免费一区二区三区视频网站 | 日韩成人av在线 | 天堂综合网久久 | 国产精品免费观看 | 国产一级精品毛片 | 免费特级黄毛片 | 毛片网站在线观看视频 | 亚洲狠狠| 久久久久精| 欧美一区二区在线 | 午夜一区二区三区在线观看 | 青青久草 | aacc678成免费人电影网站 | 一本久久a久久精品亚洲 |