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

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

QQ登錄

只需一步,快速開(kāi)始

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

51聲波測(cè)距

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:135927 發(fā)表于 2016-8-3 23:07 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
1.給超聲波模塊接入電源和地。
2. 給脈沖觸發(fā)引腳(trig)輸入一個(gè)長(zhǎng)為 20us 的高電平方波
3. 輸入方波后, 模塊會(huì)自動(dòng)發(fā)射 8 個(gè) 40KHz 的聲波, 與此同時(shí)
回波引腳 echo 端的電平會(huì)由 0 變?yōu)?/font> 1 (此時(shí)應(yīng)該啟動(dòng)定時(shí)器計(jì)時(shí))
4. 當(dāng)超聲波返回被模塊接收到時(shí),回波引腳端的電平會(huì)由 1
0 (此時(shí)應(yīng)該停止定時(shí)器計(jì)數(shù)) ,定時(shí)器記下的這個(gè)時(shí)間即為超聲波由發(fā)射到返回的總時(shí)長(zhǎng)。
5.根據(jù)聲音在空氣中的速度為 344 /秒, 即可計(jì)算出所測(cè)的距
離。

#include <reg52.h>  
sbit dula=P2^6;  //數(shù)碼管段選,鎖存器控制信號(hào)
sbit wela=P2^7;  //數(shù)碼管位選,鎖存器控制信號(hào)
sbit a=P2^3;
#define uchar unsigned char
#define uint unsigned int
int time;
int succeed_flag;
uchar timeL;
uchar timeH;
sbit Trig=P1^0;
sbit Echo=P3^2;
uchar codetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f, 0x6f};
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void delay_20us()
{
    uchar a ;
   for(a=0;a<100;a++);
}
//顯示數(shù)據(jù)轉(zhuǎn)換程序
void display(uint temp)
{
    ucharge,shi,bai;
    bai=temp/100;
   shi=(temp%100)/10;  
    ge=temp%10;
                                dula=0;
                                                             P0=table[ge];  //送數(shù)字8到段碼端口
                                                             dula=1;
                                                             dula=0;                                                            
                                                             wela=0;
                                                             P0=0x7b;   //數(shù)碼管位選
                                                             wela=1;
                                                             wela=0;
                                                             delay(5);
                  
                                dula=0;
                                                             P0=table[shi]; //送數(shù)字8到段碼端口
                                                             dula=1;
                                                             dula=0;                                                                                                                                                         
                                                             wela=0;
                                                             P0=0x7d;   //數(shù)碼管位選
                                                             wela=1;
                                                             wela=0;
                                                             delay(5);
                               dula=0;
                                                             P0=table[bai];   //送數(shù)字8到段碼端口
                                                             dula=1;
                                                             dula=0;                           
                                                             wela=0;
                                                             P0=0x7e;   //數(shù)碼管位選
                                                             wela=1;
                                                             wela=0;
                                                             delay(5);
      if(temp>150)
        a=0;
       else
        a=1;                                                   
}
void main()  
{
    uint distance;
    Trig=0;       //首先拉低脈沖輸入引腳
    EA=1;         //打開(kāi)總中斷0
    TMOD=0x10;    //定時(shí)器116位工作方式
    while(1)        
    {
        EA=0;           //關(guān)總中斷
       Trig=1;         //超聲波輸入端
       delay_20us();   //延時(shí)20us
       Trig=0;         //產(chǎn)生一個(gè)20us的脈沖
       while(Echo==0); //等待Echo回波引腳變高電平
       succeed_flag=0; //清測(cè)量成功標(biāo)志
        EA=1;
        EX0=1;          //打開(kāi)外部中斷0
        TH1=0;          //定時(shí)器1清零
        TL1=0;          //定時(shí)器1清零
        TF1=0;          //計(jì)數(shù)溢出標(biāo)志
        TR1=1;          //啟動(dòng)定時(shí)器1
       delay(20);      //等待測(cè)量的結(jié)果
        TR1=0;          //關(guān)閉定時(shí)器1
        EX0=0;          //關(guān)閉外部中斷0
      if(succeed_flag==1)
       {   
         time=timeH*256+timeL;
         distance=time*0.0172;  //厘米
       }                        
      if(succeed_flag==0)
       {
         distance=0;                    //沒(méi)有回波則清零
        }
  
      display(distance);              
    }
}
//外部中斷0,用做判斷回波電平
void exter() interrupt 0   // 外部中斷00號(hào)
{  
     EX0=0;         //關(guān)閉外部中斷
     timeH =TH1;    //取出定時(shí)器的值
     timeL=TL1;    //取出定時(shí)器的值
    succeed_flag=1;//至成功測(cè)量的標(biāo)志
}
//定時(shí)器1中斷,用做超聲波測(cè)距計(jì)時(shí)
void timer1() interrupt 3 //
    {
         TH1=0;
         TL1=0;

     }

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

使用道具 舉報(bào)

沙發(fā)
ID:63317 發(fā)表于 2016-8-18 17:48 來(lái)自觸屏版 | 只看該作者
謝謝收藏
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产精品自拍 | 国产xxxx在线| 天天爽网站 | 国产美女精品视频免费观看 | 国产成人精品区一区二区不卡 | 国产高清精品在线 | 国产精品99久久久久久宅男 | 久久久久久亚洲精品 | 色资源在线观看 | 亚洲视频精品 | 久久久久国产精品一区二区 | 鲁大师一区影视 | 国产高清在线观看 | 四虎影| 91pao对白在线播放 | 97av视频在线观看 | 欧美一区二区三区视频在线播放 | 国产成人精品一区二区三区四区 | 欧美aⅴ| 黄色大片免费播放 | 久久精品 | 国产精品jizz在线观看老狼 | 国产一区91精品张津瑜 | 日本欧美国产 | 精品视频一区二区三区 | 欧美二区在线 | 精品综合久久久 | www国产成人免费观看视频,深夜成人网 | 欧美一级二级三级 | 91人人视频在线观看 | 欧美国产亚洲一区二区 | 91美女在线观看 | 四虎影院久久 | 久久久久久久久蜜桃 | 成在线人视频免费视频 | 一呦二呦三呦国产精品 | 自拍偷拍小视频 | 精品影院 | 91精品久久久 | 欧美久久久久久久 | 免费艹逼视频 |