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

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

QQ登錄

只需一步,快速開始

搜索
查看: 10495|回復(fù): 11
收起左側(cè)

超聲波測(cè)距板制作-附制作過程詳細(xì)步驟圖及源程序

  [復(fù)制鏈接]
ID:34643 發(fā)表于 2017-1-14 10:03 | 顯示全部樓層 |閱讀模式
        超聲波測(cè)距板是很多單片機(jī)愛好者制作的必做實(shí)踐電子制作課題, 同時(shí)也是超聲波測(cè)距(超聲波倒車?yán)走_(dá))畢業(yè)設(shè)計(jì)實(shí)物制作的一個(gè)難題,很多人都難在了最后的實(shí)物制作階段,板子元件布局不合理、或是使用面包板造成電路接觸不良、或是使用洞洞板沒有布置經(jīng)驗(yàn)大大增加制作難度,也有的在焊接過程中,為了省事,使用了很多杜邦線造成線路接觸不可靠,導(dǎo)致制作的實(shí)物無法工作。我的制作經(jīng)驗(yàn)是:最好使用洞洞板焊接或是有條件的直接制作PCB板焊接,不用、盡量不用或是少用面包板、杜幫線,這樣可以大大減少線路接觸不良造成的故障。提高制作的成功率。

     下面是收集到的超聲波制作過程。提供給大家參考,壓縮文件中附有源程序、原理圖、1:1元件布置圖(方便使用洞洞板焊接布置元件) 51單片機(jī)超聲波測(cè)距程序資料.rar (4.29 MB, 下載次數(shù): 93)

超聲波測(cè)距板制作-附制作過程詳細(xì)步驟圖A

超聲波測(cè)距板制作-附制作過程詳細(xì)步驟圖A


超聲波測(cè)距板制作-附制作過程詳細(xì)步驟圖B

超聲波測(cè)距板制作-附制作過程詳細(xì)步驟圖B



超聲波測(cè)距板制作-附制作過程詳細(xì)步驟圖C

超聲波測(cè)距板制作-附制作過程詳細(xì)步驟圖C



超聲波測(cè)距板制作-附制作過程詳細(xì)步驟圖D

超聲波測(cè)距板制作-附制作過程詳細(xì)步驟圖D



超聲波測(cè)距板制作-附制作過程詳細(xì)步驟圖E

超聲波測(cè)距板制作-附制作過程詳細(xì)步驟圖E



超聲波測(cè)距板制作-附制作過程詳細(xì)步驟圖F

超聲波測(cè)距板制作-附制作過程詳細(xì)步驟圖F



超聲波測(cè)距板制作-附制作過程詳細(xì)步驟圖G

超聲波測(cè)距板制作-附制作過程詳細(xì)步驟圖G



超聲波測(cè)距板制作-元件布置圖

超聲波測(cè)距板制作-元件布置圖



源程序:
  1. #include<reg52.h>   
  2. #include <intrins.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char

  5. sbit rs=P2^0;            //1602的數(shù)據(jù)/指令選擇控制線
  6. sbit rw=P2^1;           //1602的讀寫控制線
  7. sbit en=P2^2;          //1602的使能控制線

  8. sbit trig=P2^5;      //超聲波測(cè)距模塊Trig
  9. sbit echo=P3^2;     //超聲波測(cè)距模塊Echo
  10. bit flag1;         //觸發(fā)信號(hào)標(biāo)志位//

  11. uchar count;           //中斷累加變量
  12. long int distance;    //測(cè)量所得距離

  13. unsigned char code table[ ]={"0123456789"}; //定義字符數(shù)組顯示數(shù)字

  14. /*------------------------------------------------
  15.                   延時(shí)函數(shù)
  16. ------------------------------------------------*/
  17. void delay(uint n)                           
  18. {
  19.     uint x,y;  
  20.     for(x=n;x>0;x--)
  21.     for(y=110;y>0;y--);
  22. }


  23. /*------------------------------------------------
  24.                   延時(shí)函數(shù)
  25. ------------------------------------------------*/
  26. void delayt(uint x)
  27. {
  28.     uchar j;
  29.     while(x-- > 0)
  30.     {
  31.               for(j = 0;j < 125;j++)
  32.         {
  33.           ;
  34.         }
  35.     }
  36. }


  37. /*------------------------------------------------
  38.                 1602寫命令函數(shù)
  39. ------------------------------------------------*/
  40. void lcd_wcom(uchar com)            
  41. {
  42.     rs=0;                //選擇指令寄存器
  43.     rw=0;               //選擇寫
  44.     P0=com;            //把命令字送入P0
  45.     delay(5);         //延時(shí)一小會(huì)兒,讓1602準(zhǔn)備接收數(shù)據(jù)
  46.     en=1;            //使能線電平變化,命令送入1602的8位數(shù)據(jù)口,這點(diǎn)非常重要
  47.     en=0;
  48. }


  49. /*------------------------------------------------
  50.                1602寫數(shù)據(jù)函數(shù)   
  51. ------------------------------------------------*/
  52. void lcd_wdat(uchar dat)        
  53. {
  54.     rs=1;             //選擇數(shù)據(jù)寄存器
  55.     rw=0;            //選擇寫
  56.     P0=dat;         //把要顯示的數(shù)據(jù)送入P0
  57.     delay(5);      //延時(shí)一小會(huì)兒,讓1602準(zhǔn)備接收數(shù)據(jù),也就是檢測(cè)忙信號(hào),這點(diǎn)非常重要。
  58.     en=1;         //使能線電平變化,數(shù)據(jù)送入1602的8位數(shù)據(jù)口
  59.     en=0;
  60.   }


  61. /*------------------------------------------------
  62.                 1602初始化函數(shù)      
  63. ------------------------------------------------*/
  64. void lcd_init()              
  65. {
  66.     lcd_wcom(0x38);       //8位數(shù)據(jù),雙列,5*7字形  ,用到功能設(shè)定指令     
  67.     lcd_wcom(0x0c);      //開啟顯示屏,關(guān)光標(biāo),光標(biāo)不閃爍,用到顯示開關(guān)控制指令
  68.     lcd_wcom(0x06);     //顯示地址遞增,即寫一個(gè)數(shù)據(jù)后,顯示位置右移一位,用到了寫入模式設(shè)置指令
  69.     lcd_wcom(0x01);    //清屏,用到了清屏指令
  70. }


  71. /*------------------------------------------------
  72.               1602顯示固定字符函數(shù)      
  73. ------------------------------------------------*/
  74. void lcd_xianshi()              
  75. {
  76.     lcd_wcom(0x80+0x40);
  77.         lcd_wdat('D');
  78.         lcd_wdat('i');
  79.         lcd_wdat('s');
  80.         lcd_wdat('t');
  81.         lcd_wdat('a');
  82.            lcd_wdat('n');
  83.         lcd_wdat('c');
  84.         lcd_wdat('e');
  85.         lcd_wdat(':');
  86.         lcd_wcom(0x80+0x4c);
  87.         lcd_wdat('.');
  88.         lcd_wcom(0x80+0x4e);//單位是厘米//
  89.         lcd_wdat('c');
  90.         lcd_wdat('m');

  91. }


  92. /*------------------------------------------------
  93. 定時(shí)器0初始化,用于計(jì)算響應(yīng)信號(hào)時(shí)間
  94. ------------------------------------------------*/
  95. void init_t0()
  96. {
  97.         TMOD=0x01;         
  98.          TL0=0x66;
  99.         TH0=0xfc;              //1ms
  100.     ET0=1;            
  101.         EA=1;                     
  102. }


  103. /*------------------------------------------------
  104.     超聲波模塊觸發(fā)信號(hào)
  105. ------------------------------------------------*/
  106. void trigger()
  107. {
  108.     trig=0;
  109.                   _nop_();
  110.                   _nop_();
  111.                   _nop_();
  112.                   _nop_();
  113.                   _nop_();
  114.                   _nop_();
  115.                   _nop_();
  116.                   _nop_();
  117.                   _nop_();
  118.                   _nop_();
  119.                   _nop_();
  120.                   _nop_();
  121.                   _nop_();
  122.                   _nop_();
  123.                   _nop_();
  124.                   _nop_();
  125.                   _nop_();
  126.                   _nop_();
  127.                   _nop_();
  128.                   _nop_();
  129.                   _nop_();
  130.         trig=1;      
  131. }


  132. /*------------------------------------------------
  133.    超聲波模塊相應(yīng)端口初始化函數(shù)
  134. ------------------------------------------------*/
  135. void init_measuring()
  136. {
  137.         trig=1;
  138.         echo=1;
  139.         count=0;
  140. }


  141. /*------------------------------------------------
  142.      超聲波模塊距離測(cè)試函數(shù)
  143. ------------------------------------------------*/
  144. void measuring()
  145. {
  146.         uchar l;
  147.         uint h,y;
  148.         TR0 = 1;
  149.         while(echo==1)
  150.     {
  151.         ;
  152.     }        
  153.         TR0 = 0;
  154.         l = TL0;
  155.         h = TH0;
  156.         y = (h << 8) + l;
  157.         y = y - 0xfc66;//us部分
  158.         distance = y + 1000 * count;//計(jì)算總時(shí)間,單位是微秒
  159.         TL0 = 0x66;
  160.         TH0 = 0xfc;
  161.         delayt(30);
  162.         distance = 3400* distance / 20000;//原始為:(0.34毫米/us)*時(shí)間/2//        
  163. }


  164. /*------------------------------------------------
  165.    超聲波模塊測(cè)量結(jié)果顯示函數(shù)
  166. ------------------------------------------------*/
  167. void display(uint x)
  168. {
  169.         uchar qian,bai,shi,ge;
  170.         qian=x/1000;
  171.         bai=(x/100)%10;
  172.         shi=(x/10)%10;
  173.         ge=x%10;

  174.         lcd_wcom(0x80+0x49);//單位是厘米//
  175.         lcd_wdat(table[qian]);
  176.         lcd_wdat(table[bai]);
  177.         lcd_wdat(table[shi]);
  178.         lcd_wcom(0x80+0x4d);
  179.         lcd_wdat(table[ge]);
  180. }

  181. /*------------------------------------------------
  182.               主函數(shù)
  183. ------------------------------------------------*/
  184. void main()            
  185. {   lcd_init();          //液晶初始化        
  186.     init_t0();          //定時(shí)器0初始化   
  187.         init_measuring();  //超聲波相應(yīng)端口初始化


  188.         while(1)
  189.         {
  190.                 lcd_xianshi();   //液晶顯示特定字符
  191.                 trigger();      //觸發(fā)超聲波啟動(dòng)
  192.                  while(echo==0)          //等待回聲
  193.                  {
  194.                            ;
  195.                  }
  196.             measuring();           //進(jìn)行距離測(cè)量
  197.             display(distance);    //對(duì)測(cè)量結(jié)果進(jìn)行顯示
  198.             init_measuring();    //超聲波相應(yīng)端口初始化
  199.             delayt(600);        //每次測(cè)量間隔60ms
  200.         }
  201. }


  202. //……………………………………………中斷服務(wù)函數(shù)…………………………………………………//

  203. void T_0()interrupt 1
  204. {
  205.         TF0 = 0;
  206.         TL0 = 0x66;
  207.         TH0 = 0xfc;
  208.         count++;
  209.         if(count==18)
  210.         {
  211.           TR0 =0;
  212.           TL0 = 0x66;
  213.           TH0 = 0xfc;
  214.           count = 0;
  215.         }
  216. }
復(fù)制代碼


評(píng)分

參與人數(shù) 1黑幣 +25 收起 理由
195470880 + 25

查看全部評(píng)分

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:89286 發(fā)表于 2017-1-18 22:52 | 顯示全部樓層
thanks for sharing
回復(fù)

使用道具 舉報(bào)

ID:163392 發(fā)表于 2017-2-3 22:53 | 顯示全部樓層
剛學(xué),我也試著做一個(gè)。
回復(fù)

使用道具 舉報(bào)

ID:222149 發(fā)表于 2017-7-24 21:33 | 顯示全部樓層
我也試試,一直沒有成功,
回復(fù)

使用道具 舉報(bào)

ID:239410 發(fā)表于 2017-10-26 21:29 | 顯示全部樓層
很好,謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

ID:239410 發(fā)表于 2017-10-26 21:30 | 顯示全部樓層
程序好像有問題
回復(fù)

使用道具 舉報(bào)

ID:134697 發(fā)表于 2017-10-27 06:33 來自觸屏版 | 顯示全部樓層
造福論壇,謝謝分享!
回復(fù)

使用道具 舉報(bào)

ID:246166 發(fā)表于 2017-11-7 10:03 | 顯示全部樓層
謝樓主,單片機(jī)課程設(shè)計(jì)想做這個(gè)
回復(fù)

使用道具 舉報(bào)

ID:215235 發(fā)表于 2017-11-15 15:04 來自觸屏版 | 顯示全部樓層
樓主能留個(gè)qq一起交流下嗎,我有點(diǎn)兒?jiǎn)栴}想請(qǐng)教
回復(fù)

使用道具 舉報(bào)

ID:249718 發(fā)表于 2017-11-23 16:32 | 顯示全部樓層
非常感謝樓主!
回復(fù)

使用道具 舉報(bào)

ID:704585 發(fā)表于 2020-5-19 18:02 | 顯示全部樓層
謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

ID:915942 發(fā)表于 2021-5-5 17:15 | 顯示全部樓層
怎么接線呢?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久免费精品 | 伊人伊人| 亚洲精品一区二区三区在线 | 一区二区三区免费在线观看 | 亚洲国产成人av好男人在线观看 | 欧美性极品xxxx做受 | 欧美精品网 | 国产一二三区在线 | 成人在线观看网站 | 日本一区二区在线视频 | 国产精品国产a级 | 韩国精品在线 | 国产精品日韩一区 | 久久久xxx| 久久久久久九九九九九九 | 成年人在线观看视频 | 超级黄色一级片 | av中文字幕在线播放 | 国产日产欧产精品精品推荐蛮挑 | 日韩精品无码一区二区三区 | 国产传媒在线播放 | 人干人人| 久久久久久久一区 | 性网站免费 | 国产色播av在线 | 亚洲天堂精品久久 | 国产亚洲精品久久19p | 日韩精品一区二区三区中文字幕 | 久久男人| 国产精品久久久久久久一区二区 | 亚洲不卡| 国产精彩视频在线观看 | 日韩在线精品视频 | 欧美一二三四成人免费视频 | 毛片免费在线 | 99re视频在线免费观看 | 毛片在线免费播放 | 欧美一级淫片007 | 久久r久久 | 色播久久久 | 一区二区三区在线免费观看 |