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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

做了一個超聲波測距報警器

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
#
ID:168149 發(fā)表于 2017-7-1 10:35 | 只看該作者 |只看大圖 回帖獎勵 |正序瀏覽 |閱讀模式

Trig -------  P2^1;
Echo -------  P2^0;
VCC  -------- +5v
GND  -------- GND

請在上電之前,檢查好接線是否正確。

可以按鍵調(diào)節(jié)報警距離,LCD顯示當(dāng)前距離

單片機(jī)源程序如下:

  1. #include<reg51.h>
  2. #include<intrins.h>       
  3. #include"lcd.h"

  4. sbit Trig = P2^1;
  5. sbit Echo = P2^0;
  6. sbit LED5 = P2^7;
  7. sbit beep = P1^5;
  8. sbit jia_key=P3^2;
  9. sbit jian_key=P3^3;
  10. sbit Reset_key = P3^0;

  11. //全局變量 ,音符索引數(shù)
  12. unsigned char musicNum;
  13. //音符播放時定時寄存器處值TH0
  14. unsigned char code high_buff[] = {240,229,240, 229,240, 229};
  15. //音符播放時定時寄存器處值TL0
  16. unsigned char code low_buff[] = {6,13,6,13,6,13};


  17. unsigned char arm[]=" Alarm ";
  18. unsigned char arm1[]=" NowDis ";


  19. unsigned char num=0;


  20. unsigned char code ASCII[15] = {'0','1','2','3','4','5','6','7','8','9','.','-','M'};

  21. static unsigned char DisNum = 0;                                   
  22.        unsigned int  time=0;
  23.            unsigned long S=0;
  24.            unsigned long m=20;
  25.            bit      flag =0;
  26.            unsigned char disbuff[4]           ={0,0,0,0,};
  27.            unsigned char disbuff1[4]   ={0,0,0,0,} ;
  28. /*延時函數(shù)單位為毫秒*/
  29. void delayms(unsigned int ms)
  30. {
  31.         unsigned char i=100,j;
  32.         for(;ms;ms--)
  33.         {
  34.                 while(--i)
  35.                 {
  36.                         j=10;
  37.                         while(--j);
  38.                 }
  39.         }
  40. }
  41. //延時函數(shù)用于蜂鳴器的延時
  42. void delayfm(unsigned int x)
  43. {
  44.   unsigned char i;
  45. while(x--)
  46. {
  47.    for(i = 0;i < 120;i++);
  48. }
  49. }

  50. /*蜂鳴器主函數(shù)*/
  51. void fengmingqi(void)
  52. {
  53.         // TMOD = 0x00;    //定時器0工作在模式0
  54.          TH1 = (8192 - 700) / 32;  //定時器賦初值
  55.          TL1 = (8192 - 700) % 32;
  56.         // EA = 1;       //開總中斷
  57.          ET1 = 1;      //開定時器0定時溢出中斷
  58.          beep = 0;
  59.           for(musicNum = 1;musicNum < 6;musicNum++)
  60.           {
  61.             TR1 = 1;
  62.             delayfm(500);
  63.             TR1 = 0;
  64.             delayfm(50);
  65.           }
  66.          
  67. }

  68. //無源蜂鳴器中斷采用t1定時器
  69. void Timer1(void) interrupt 3
  70. {
  71.   //蜂鳴器輸出電平取反
  72.   beep = ~beep;   
  73.   TH1 = high_buff[musicNum];
  74.   TL1 = low_buff[musicNum];  
  75. }


  76. /*計數(shù)程序用于將超聲波發(fā)出的信號時間與收到的作差通過計算公式從而求出距離*/
  77. void Conut(void)
  78.         {
  79.          time=TH0*256+TL0;
  80.          TH0=0;
  81.          TL0=0;
  82.        
  83.          S=(time*1.7)/100;     //算出來是CM
  84.          if((S>=700)||flag==1) //超出測量范圍顯示“-”
  85.          {         
  86.           flag=0;
  87.          
  88.           DisplayOneChar(0+9, 1, ASCII[11]);
  89.           DisplayOneChar(1+9, 1, ASCII[10]);        //顯示點
  90.           DisplayOneChar(2+9, 1, ASCII[11]);
  91.           DisplayOneChar(3+9, 1, ASCII[11]);
  92.           DisplayOneChar(4+9, 1, ASCII[12]);        //顯示M
  93.          }
  94.          else
  95.          {
  96.           disbuff[0]=S%1000/100;
  97.           disbuff[1]=S%1000%100/10;
  98.           disbuff[2]=S%1000%10 %10;
  99.           DisplayOneChar(0+9, 1, ASCII[disbuff[0]]);
  100.           DisplayOneChar(1+9, 1, ASCII[10]);        //顯示點
  101.           DisplayOneChar(2+9, 1, ASCII[disbuff[1]]);
  102.           DisplayOneChar(3+9, 1, ASCII[disbuff[2]]);
  103.           DisplayOneChar(4+9, 1, ASCII[12]);        //顯示M
  104.          
  105.          }
  106.          delayms(80);
  107. }
  108. /*報警距離顯示函數(shù)*/
  109. void dispose()
  110. {       
  111.                           disbuff1[0]=m%1000/100;
  112.                           disbuff1[1]=m%1000%100/10;
  113.                           disbuff1[2]=m%1000%10 %10;
  114.                           DisplayOneChar(0+9, 0, ASCII[disbuff1[0]]);
  115.                           DisplayOneChar(1+9, 0, ASCII[10]);        //顯示點
  116.                           DisplayOneChar(2+9, 0, ASCII[disbuff1[1]]);
  117.                           DisplayOneChar(3+9, 0, ASCII[disbuff1[2]]);
  118.                           DisplayOneChar(4+9, 0, ASCII[12]);        //顯示M                       
  119. }
  120. /*按鍵處理函數(shù)*/
  121. void key()
  122. {
  123.         while(jia_key==0)
  124.         {
  125.                 delayms(10);
  126.                 if(jia_key==0)
  127.                 {
  128.                         m++;
  129.                         dispose();
  130.                         if(m==81)
  131.                         {
  132.                                 m=80;
  133.                                
  134.                         }
  135.                        
  136.                 }       
  137.         }
  138.         while(jian_key==0)
  139.         {
  140.                 delayms(10);
  141.                 if(jian_key==0)
  142.                 {
  143.                         m--;
  144.                         dispose();
  145.                         if(m==19)
  146.                         {
  147.                                 m=20;
  148.                        
  149.                         }
  150.                          
  151.                 }
  152.         }
  153.         while(Reset_key==0)
  154.         {
  155.                 delayms(10);
  156.                 if(Reset_key==0)
  157.                 {
  158.                         m=20;
  159.                         dispose();
  160.                 }               
  161.         }
  162.        
  163. }




  164. void zd0() interrupt 1                  //T0中斷用來計數(shù)器溢出,超過測距范圍
  165.   {
  166.     flag=1;                                                         //中斷溢出標(biāo)志
  167.   }

  168. void  StartModule()                          //啟動模塊
  169.   {
  170.           Trig=1;                                             //啟動一次模塊
  171.           _nop_();
  172.           _nop_();
  173.           _nop_();
  174.           _nop_();
  175.           _nop_();
  176.           _nop_();
  177.           _nop_();
  178.           _nop_();
  179.           _nop_();
  180.           _nop_();
  181.           _nop_();
  182.           _nop_();
  183.           _nop_();
  184.           _nop_();
  185.           _nop_();
  186.           _nop_();
  187.           _nop_();
  188.           _nop_();
  189.           _nop_();
  190.           _nop_();
  191.           _nop_();
  192.           Trig=0;
  193.   }





  194. void main(void)
  195. {

  196.          TMOD=0x01;                   //設(shè)T0為方式1,GATE=1;
  197. ……………………

  198. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
超聲波測距報警(LCD1602顯示).zip (48.41 KB, 下載次數(shù): 257)



評分

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

查看全部評分

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

使用道具 舉報

11#
ID:640699 發(fā)表于 2019-11-12 20:21 | 只看該作者
感謝樓主分享
回復(fù)

使用道具 舉報

10#
ID:617693 發(fā)表于 2019-9-28 19:18 | 只看該作者
太強(qiáng)了感謝
回復(fù)

使用道具 舉報

9#
ID:602896 發(fā)表于 2019-9-2 22:08 | 只看該作者
太強(qiáng)了,就是沒看懂,蜂鳴器主函數(shù)
回復(fù)

使用道具 舉報

8#
ID:487508 發(fā)表于 2019-4-4 20:41 | 只看該作者
太強(qiáng)了,瘋狂打扣
回復(fù)

使用道具 舉報

7#
ID:448852 發(fā)表于 2018-12-18 13:54 | 只看該作者
好資料,收藏了
回復(fù)

使用道具 舉報

6#
ID:448811 發(fā)表于 2018-12-18 13:01 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報

5#
ID:448741 發(fā)表于 2018-12-18 11:35 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報

地板
ID:241242 發(fā)表于 2018-9-14 19:54 | 只看該作者
感謝分享,正是需要的
回復(fù)

使用道具 舉報

板凳
ID:392145 發(fā)表于 2018-9-12 20:17 | 只看該作者
怎么沒有電路圖?
回復(fù)

使用道具 舉報

沙發(fā)
ID:218953 發(fā)表于 2017-7-11 21:35 | 只看該作者
感謝分享~
回復(fù)

使用道具 舉報

樓主
ID:89286 發(fā)表于 2017-7-2 08:23 | 只看該作者
thanks for sharing
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 99re热精品视频 | 成人午夜网站 | 国产成人精品午夜视频免费 | 91成人在线| 午夜寂寞影院列表 | 午夜日韩 | 久久久这里都是精品 | 狠狠夜夜 | 精品视频一区二区三区 | 伊人精品在线视频 | 亚洲视频免费一区 | 美女久久久久久久 | 色橹橹欧美在线观看视频高清 | 国产精品污污视频 | 日韩视频在线一区 | 国产激情一区二区三区 | 精品国产欧美 | 日韩av电影在线观看 | 91tv在线观看| 国产美女一区二区 | 91精品国产综合久久久久久丝袜 | 91亚洲欧美 | 国产精品综合色区在线观看 | 亚洲精品久久久久久一区二区 | 亚洲国产精品成人久久久 | 日本一区二区三区四区 | 81精品国产乱码久久久久久 | 成人精品国产免费网站 | 色综合网站 | 亚洲精品一区在线 | 99re视频这里只有精品 | 狠狠的干| 免费一区二区三区 | 五月天综合网 | 亚洲日日夜夜 | 日本亚洲欧美 | 亚洲伊人久久综合 | 亚洲精品自在在线观看 | 中文字幕11页 | 久久久91精品国产一区二区三区 | 中文字幕 国产 |