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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于51單片機(jī)超聲波三方向測距系統(tǒng)設(shè)計(jì)資料(源碼+視頻+仿真)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
二、功能說明
1、采用三個(gè)超聲波測距,速度快,精度高,精度1毫米。
2、按鍵設(shè)置設(shè)置報(bào)警距離,上限和下限。
3、LCD1602液晶顯示。
4、結(jié)構(gòu)簡潔,穩(wěn)固,高效。
本系統(tǒng)采用USB電源供電,提供電源線,可以插到電腦、手機(jī)充電器、充電寶上供電,十分方便。
三、按鍵說明
系統(tǒng)三個(gè)按鍵,從左往右風(fēng)別是,設(shè)置切換、加、減。

視頻演示:


制作出來的實(shí)物圖如下:


仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)



元件清單:


單片機(jī)源程序如下:
  1. #include<reg52.h>
  2. #include <intrins.h>
  3. #include "LCD1602.h"
  4. #include "STCEEPROM.h"
  5. sbit  RX1 = P3^4;
  6. sbit  RX2 = P3^5;
  7. sbit  RX3 = P3^6;
  8. sbit  TX = P3^7;

  9. sbit LED = P2^1;
  10. sbit SPEAK = P2^0;

  11. sbit KEY1 = P1^3;
  12. sbit KEY2 = P1^4;
  13. sbit KEY3 = P1^5;

  14. unsigned int  time=0;
  15. unsigned int  timer=0;
  16. unsigned int S=0,S1=0,S2=0,S3=0;
  17. unsigned int SET_H=100,SET_L=10;
  18. bit      flag =0;
  19. unsigned char Table[3]={0};
  20. unsigned char KEY_flag=0;
  21. //延時(shí)函數(shù)
  22. void Delay_ms(int jj)
  23. {
  24.         int ii;
  25.         while(jj--)
  26.                 for(ii=0;ii<116;ii++);
  27. }
  28. void Conut(void)
  29. {
  30.          time=TH0*256+TL0;
  31.          TH0=0;
  32.          TL0=0;
  33.        
  34.          S=(time*1.87)/100;     //算出來是CM
  35.          if((S>=700)||flag==1) //超出測量范圍顯示“-”
  36.          {         
  37.           flag=0;
  38.          }
  39. }
  40. void main(void)
  41. {
  42.     LCD1602_init();//液晶初始化
  43.         //////////////////////0123456789ABCDEF
  44.     LCD1602_Disp_ZF(0x80,"    :     :     ",16);
  45.                                                      //0123456789ABCDEF
  46.     LCD1602_Disp_ZF(0x80+0X40,"Set H:    L:    ",16);
  47.         TMOD=0x11;                   //設(shè)T0為方式1,GATE=1;
  48.         TH0=0;
  49.         TL0=0;         
  50.         TH1=0xf8;                   //2MS定時(shí)
  51.         TL1=0x30;
  52.         ET0=1;             //允許T0中斷
  53.         ET1=1;                           //允許T1中斷
  54.         TR1=1;                           //開啟定時(shí)器
  55.         EA=1;                           //開啟總中斷
  56.         EA=0;
  57.         SET_H = ISP_READ(0x2c00)*256+ISP_READ(0x2c01);
  58.         SET_L = ISP_READ(0x2c02)*256+ISP_READ(0x2c03);
  59.         EA=1;
  60.         while(1)
  61.         {
  62.                 while(!RX1);                    //當(dāng)RX為零時(shí)等待
  63.                 TR0=1;                            //開啟計(jì)數(shù)
  64.                 while(RX1);                        //當(dāng)RX為1計(jì)數(shù)并等待
  65.                 TR0=0;                                //關(guān)閉計(jì)數(shù)
  66.                 Conut();
  67.                 S1=S;
  68.                 Delay_ms(10);
  69.                 /////////////////////////////
  70.                 while(!RX2);                    //當(dāng)RX為零時(shí)等待
  71.                 TR0=1;                            //開啟計(jì)數(shù)
  72.                 while(RX2);                        //當(dāng)RX為1計(jì)數(shù)并等待
  73.                 TR0=0;                                //關(guān)閉計(jì)數(shù)
  74.                 Conut();
  75.                 S2=S;
  76.                 Delay_ms(10);
  77.                 /////////////////////////////
  78.                 while(!RX3);                    //當(dāng)RX為零時(shí)等待
  79.                 TR0=1;                            //開啟計(jì)數(shù)
  80.                 while(RX3);                        //當(dāng)RX為1計(jì)數(shù)并等待
  81.                 TR0=0;                                //關(guān)閉計(jì)數(shù)
  82.                 Conut();
  83.                 S3=S;
  84.                 Delay_ms(10);
  85.                 /////////////////////////////////////
  86.                 Table[0]= S1/100+0X30;
  87.                 Table[1]= S1%100/10+0X30;
  88.                 Table[2]= S1%10+0X30;
  89.                 LCD1602_Disp_ZF(0x80,Table,3);
  90.                 Table[0]= S2/100+0X30;
  91.                 Table[1]= S2%100/10+0X30;
  92.                 Table[2]= S2%10+0X30;
  93.                 LCD1602_Disp_ZF(0x86,Table,3);
  94.                 Table[0]= S3/100+0X30;
  95.                 Table[1]= S3%100/10+0X30;
  96.                 Table[2]= S3%10+0X30;
  97.                 LCD1602_Disp_ZF(0x8C,Table,3);
  98.                 /////////////////////////////////
  99.                 if((S1>SET_H||S1<SET_L)||(S2>SET_H||S2<SET_L)||(S3>SET_H||S3<SET_L))
  100.                         P2 = 0X00;
  101.                 else
  102.                         P2 = 0XFF;               
  103.                 if(!KEY1)
  104.                 {
  105.                         Delay_ms(10);
  106.                         if(!KEY1)
  107.                         {
  108.                                 KEY_flag++;       
  109.                                 ISP_ERASE(0x2c00);                //注意:字節(jié)編程時(shí)必須要先要擦除整個(gè)扇區(qū)       
  110.                                 ISP_PROGRAM(0x2c00, SET_H/256);
  111.                                 ISP_PROGRAM(0x2c01, SET_H);
  112.                                 ISP_PROGRAM(0x2c02, SET_L/256);
  113.                                 ISP_PROGRAM(0x2c03, SET_L);
  114.                         }
  115.                         while(!KEY1);
  116.                 }
  117.                 if(!KEY2)
  118.                 {
  119.                         Delay_ms(10);
  120.                         if(!KEY2)
  121.                         {
  122.                                 if(KEY_flag%2==0)SET_H++;
  123.                                 if(KEY_flag%2==1)SET_L++;
  124.                         }
  125.                 }
  126.                 if(!KEY3)
  127.                 {
  128.                         Delay_ms(10);
  129.                         if(!KEY3)
  130.                         {
  131.                                 if(KEY_flag%2==0)SET_H--;
  132.                                 if(KEY_flag%2==1)SET_L--;
  133.                         }
  134.                 }
  135.           Table[0]= SET_H/100+0X30;
  136.           Table[1]= SET_H%100/10+0X30;
  137.           Table[2]= SET_H%10+0X30;
  138.           LCD1602_Disp_ZF(0x86+0x40,Table,3);
  139.           Table[0]= SET_L/100+0X30;
  140.           Table[1]= SET_L%100/10+0X30;
  141.           Table[2]= SET_L%10+0X30;
  142.           LCD1602_Disp_ZF(0x8C+0x40,Table,3);
  143.         }
  144. }

  145. /********************************************************/
  146.      void zd0() interrupt 1                  //T0中斷用來計(jì)數(shù)器溢出,超過測距范圍
  147.   {
  148.     flag=1;                                                         //中斷溢出標(biāo)志
  149.   }
  150. /********************************************************/
  151.    void  zd3()  interrupt 3        
  152.   {
  153.          TH1=0xf8;
  154.          TL1=0x30;
  155.          timer++;
  156.          if(timer>=100)
  157.          {
  158.           timer=0;
  159.           TX=1;                                        //200MS  啟動一次模塊
  160.           _nop_(); _nop_(); _nop_();
  161.           _nop_(); _nop_(); _nop_();
  162.           _nop_(); _nop_(); _nop_();
  163.           _nop_(); _nop_(); _nop_();
  164.           _nop_(); _nop_(); _nop_();
  165.           _nop_(); _nop_();_nop_();
  166.           _nop_(); _nop_(); _nop_();
  167.           TX=0;
  168.          }
  169.   }
復(fù)制代碼

所有資料51hei提供下載:
66-基于51單片機(jī)超聲波三方向測距系統(tǒng)LCD1602資料 (1).rar (7.63 MB, 下載次數(shù): 103)


評分

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

查看全部評分

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

使用道具 舉報(bào)

沙發(fā)
ID:500491 發(fā)表于 2019-4-2 11:06 | 只看該作者
proteus仿真圖是不是少一部分啊,為什么自己照著你的畫,仿真的不對啊
回復(fù)

使用道具 舉報(bào)

板凳
ID:720711 發(fā)表于 2020-4-18 15:30 | 只看該作者
為社么LCD上沒有顯示數(shù)值
回復(fù)

使用道具 舉報(bào)

地板
ID:720711 發(fā)表于 2020-4-18 15:58 | 只看該作者
御梵梵 發(fā)表于 2019-4-2 11:06
proteus仿真圖是不是少一部分啊,為什么自己照著你的畫,仿真的不對啊

仿真圖是測水位的
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区二区在线视频 | 亚洲网址 | 日本在线一区二区三区 | 伊人久操| 美日韩精品 | 日韩在线小视频 | 午夜精品久久久久久久99黑人 | 中文在线视频 | 操久久 | 成人h动漫精品一区二区器材 | 51ⅴ精品国产91久久久久久 | 欧美精品一区在线 | 粉嫩国产精品一区二区在线观看 | 国产yw851.c免费观看网站 | 美女黄色在线观看 | av在线一区二区三区 | 国产99热| 国产精品极品美女在线观看免费 | 超碰日本| 久久精品色欧美aⅴ一区二区 | 久久久久久久久国产成人免费 | 日韩色在线 | 麻豆视频在线免费看 | 欧美成年网站 | 超碰免费在线观看 | 91精品国产综合久久国产大片 | 中文字幕久久精品 | 日韩免费网站 | 久久久久精 | 亚洲另类视频 | www久久99 | 福利片在线看 | 亚洲资源在线 | 亚洲九九精品 | 国产精品亚洲综合 | 亚洲精品福利视频 | 免费在线h视频 | 欧美一区免费 | 999国产视频 | 美女黄视频网站 | 国产亚洲日本精品 |