<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機 HCSR04超聲波測距儀 基礎(chǔ)代碼

          51單片機 HCSR04超聲波測距儀 基礎(chǔ)代碼

          作者: 時間:2016-11-20 來源:網(wǎng)絡(luò) 收藏
          >_<:超聲波測距儀模塊:

          本文引用地址:http://www.ex-cimer.com/article/201611/318641.htm

          >_<:51單片機,11.0592MHz晶振,將采集數(shù)據(jù)發(fā)送到串口的基礎(chǔ)例子:

          >_<:代碼:

          1 /***********************************************************************************************************/2 //HC-SR04 超聲波測距模塊 DEMO 程序3 //晶振:11。05924 //接線:模塊TRIG接 P1.2  ECH0 接P1.15 //串口波特率96006 /***********************************************************************************************************/      7 #include   8 #include   9 #include   10 11 #define uchar unsigned  char12 #define uint  unsigned   int  13 #define  RX  P1_114 #define  TX  P1_215 16 17 unsigned int  time=0;18 unsigned int  timer=0;19 float         S=0;20 bit           flag =0;21 22 23 /********************************************************/24 void Conut(void)25 {26     time=TH0*256+TL0;27     TH0=0;28     TL0=0;29     S=(time*1.87)/100;     //算出來是CM30     if(flag==1)               //超出測量31     {32         flag=0;33         printf("--n"); 34     }    35     printf("S=%fn",S); 36 }37 /********************************************************/ 38 void delayms(unsigned int ms)39 {40     unsigned char i=100,j;41     for(;ms;ms--)42     {43         while(--i)44         {45             j=10;46             while(--j);47         }48     }49 }50 /********************************************************/51 void zd0() interrupt 1          //T0中斷用來計數(shù)器溢出,超過測距范圍52 {53     flag=1;                     //中斷溢出標(biāo)志54 }55 /********************************************************/56 void  StartModule()          //T1中斷用來掃描數(shù)碼管和計800MS啟動模塊57 {58     TX=1;                     //800MS  啟動一次模塊59     _nop_(); 60     _nop_(); 61     _nop_(); 62     _nop_(); 63     _nop_(); 64     _nop_(); 65     _nop_(); 66     _nop_(); 67     _nop_(); 68     _nop_(); 69     _nop_(); 70     _nop_(); 71     _nop_(); 72     _nop_(); 73     _nop_(); 74     _nop_(); 75     _nop_();76     _nop_(); 77     _nop_(); 78     _nop_(); 79     _nop_();80     TX=0;81 }82 /********************************************************/83 void main(void)84 {  85     TMOD=0x21;                   //設(shè)T0為方式1,GATE=1;86     SCON=0x50;87     TH1=0xFD;88     TL1=0xFD;89     TH0=0;90     TL0=0; 91     TR0=1;  92     ET0=1;                     //允許T0中斷93     TR1=1;                       //開啟定時器94     TI=1;95     96     EA=1;                       //開啟總中斷97     98     99     while(1)100     {101         StartModule();102         while(!RX);            //當(dāng)RX為零時等待103         TR0=1;                //開啟計數(shù)104         while(RX);            //當(dāng)RX為1計數(shù)并等待105         TR0=0;                //關(guān)閉計數(shù)106         Conut();            //計算107         delayms(10);        //100MS108     }109 }              



          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();