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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 28493|回復: 61
打印 上一主題 下一主題
收起左側(cè)

HC-SR04超聲波倒車雷達Proteus仿真與單片機程序源碼

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:347939 發(fā)表于 2018-6-8 23:54 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
分享一個基于51單片機的倒車系統(tǒng)仿真,帶減小距離和增加距離調(diào)節(jié)以及報警功能.還有一個功能鍵
用HC-SR04超聲波模塊組成的LCD1602顯示的超聲波測距板仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


電路原理圖如下:


HC-SR04超聲波倒車雷達的單片機源程序如下:
  1. #include <REGX52.H>
  2. #include <stdio.h>
  3. #include "LCD.H"
  4. #include "18B20.H"
  5. #include "delay.h"

  6. sbit k1=P3^5;
  7. sbit k2=P3^6;
  8. sbit csb=P2^5;
  9. sbit csbint=P3^2;
  10. sbit bg=P2^6;
  11. sbit fmq=P3^3;

  12. unsigned char aa[]={' ',' ','D','i','s','t','a','n','c','e',':'};           //Distance

  13. unsigned char bb[11]={' ',' ',' ',' ','.',' ',' ',' ',' ',' ',};        
  14. unsigned char cc[]={'A','.','A','A','m'};
  15. unsigned char zf,a1,a2,a3,xs,e,n,m,z;         //zf 溫度正負標志位;a1,a2,a3,按鍵設(shè)定程序中定值的米、分米、厘米臨時存儲變量
  16.                                              //xs,e 用于按鍵程序中設(shè)定位閃動顯示的變量;flag,未用,n,是背光控制標志位變量;m,z;
  17. unsigned int dz,k,s,j,bgz,k;
  18. int temp;
  19. float temperature,csbc,wdz;
  20. bit wh;

  21. main()
  22. {
  23.         TH0=0;
  24.         TL0=0;
  25.         TMOD=0X11;        //T1,T0為16位定時器
  26.         EA=0;
  27.         bg=0;
  28.         n=0;
  29.         m=0;
  30.         z=0;
  31.          init();
  32.         Init_DS18B20();
  33.     dz=80;
  34.         bb[6]=0xdf;
  35.         bb[7]=0x43;
  36.         e=4;
  37.         cc[0]=dz/100+'0';
  38.         cc[2]=dz/10%10+'0';
  39.         cc[3]=dz%10+'0';
  40.         LCD_Write_String(0,0,aa);
  41.         LCD_Write_String(11,1,cc);
  42.         while(1)
  43.         {
  44.                 temp=ReadTemperature();
  45.                 fmq=1;
  46.                 DelayMs(100);
  47.                 if(temp<0)
  48.                 {
  49.                            temp=-(temp-1);
  50.                            zf=1;
  51.                         bb[0]='-';
  52.                 }
  53.                 else
  54.                 {
  55.                         zf=0;
  56.                         bb[0]=' ';
  57.                 }
  58.                   csb=0;                                             //啟動一次模塊
  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.                   csb=1;
  81.                 ET0=1;        //啟動計數(shù)器T0,用以計時
  82.                 TR0=1;
  83.                 EA=1;
  84.                 j=80;        //延時                  
  85.             while(j--)
  86.                 {
  87.                 }
  88.                 csbint=1;
  89.         j=0;
  90.                    while(csbint)                        //判斷接收回路是否收到超聲波的回波
  91.                 {
  92.                         j++;
  93.                         if(j>=2500)                        //如果達到一定時間沒有收到回波,則將csbint置零,退出接收回波處理程序
  94.                         csbint=0;
  95.                 }
  96.                 TR0=0;
  97.                 s=TH0*256+TL0;                        //讀取時間數(shù)據(jù)
  98.                 TH0=0;
  99.                 TL0=0;
  100.                 wdz=0.00000607*temp;   //溫度補償計算
  101.                 if(zf==0)
  102.                 {                                                                                                                                                                                       
  103.                           csbc=0.03315+wdz;
  104.                 }
  105.                 else csbc=0.03315-wdz;
  106.                 csbc=csbc/2;
  107.                 s=s*csbc-8;
  108.                 if(s<5) //測量值小于下限
  109.                 {
  110.                         cc[0]='-';
  111.                         cc[2]='-';
  112.                         cc[3]='-';
  113.                 }
  114.                 else if(s>500)        //測量值大于上限
  115.                 {
  116.                         cc[0]='C';
  117.                         cc[2]='C';
  118.                         cc[3]='C';
  119.                 }
  120.                 else
  121.                 {
  122.                         cc[0]=s/100+'0';
  123.                         cc[2]=s/10%10+'0';
  124.                         cc[3]=s%10+'0';
  125.                 }
  126.                 if(s<dz)
  127.                 {
  128.                         bgz=s*5;
  129.                           for (k=0;k<bgz;k++)
  130.                           {
  131.                             DelayUs2x(150);
  132.                             fmq=!fmq;       //BEEP取反
  133.                           }
  134.                 }
  135.                 bb[1]=temp/1000+0x30;
  136.                 bb[2]=temp/100%10+0x30;//顯示十位
  137.                 bb[3]=temp%100/10+0x30;//顯示個位
  138.                 bb[5]=temp%10+0x30; //小數(shù)
  139.         if(zf==0)
  140.             {
  141.                         if(temp<1000)
  142.                         {
  143.                                    bb[1]=' ';
  144.                                    if(temp<100)
  145.                                    {
  146.                                       bb[2]=' ';
  147.                                 }
  148.                         }
  149.                 }
  150.                 else
  151.                 {
  152.                         if(temp<1000)
  153.                         {
  154.                                    bb[1]='-';
  155.                                    bb[0]=' ';
  156.                                    if(temp<100)
  157.                                    {
  158.                                         bb[0]=' ';
  159.                                            bb[1]=' ';
  160.                                       bb[2]='-';
  161.                                 }
  162.                         }
  163.                 }
  164.                 LCD_Write_String(0,1,bb);
  165.                 LCD_Write_String(11,0,cc);
  166.                 while(!k2)                   //液晶背面開關(guān)
  167.                 {
  168.                    n=1;
  169.                 }
  170.                 if(n==1)
  171.                 {
  172.                    bg=~bg;                   //bg=0;時開背光燈
  173.                    n=0;
  174.                 }
  175.                 if(!k1)      //按鍵處理程序
  176.                 {
  177.                     TR1=0;
  178.                         TR0=0;
  179.                           cc[0]='A';
  180.                         cc[1]='.';
  181.                         cc[2]='A';
  182.                         cc[3]='A';
  183.                         cc[4]='m';
  184.                         LCD_Write_String(11,1,cc);
  185.                         k=500;
  186.                     while(k)
  187.                         {
  188.                                  k--;
  189.                                 DelayMs(2);
  190.                         }
  191.                           cc[0]=dz/100+'0';
  192.                         cc[2]=dz/10%10+'0';
  193.                         cc[3]=dz%10+'0';
  194.                         LCD_Write_String(11,1,cc);
  195.                         a1=dz/100;
  196.                         a2=dz/10%10;
  197.                         a3=dz%10;
  198.                         n=1;
  199.                           while(n)
  200.                         {
  201.                                 if(!k2)
  202.                                 {
  203.                                         while(!k2);
  204.                                         e=1;
  205.                                         xs=3;
  206.                                         a1+=1;
  207.                                         if(a1>5)
  208.                                         a1=0;
  209.                                           cc[0]=a1+'0';
  210.                                 }

  211.                                 if (e==1)
  212.                                 {
  213.                                         xs++;
  214.                                            cc[0]=a1+'0';
  215.                                           if(xs>6)
  216.                                           {
  217.                                     xs=0;
  218.                                                 e=0;
  219.                                           }
  220.                                 }
  221.                                 else
  222.                                 {
  223.                                         cc[0]=' ';
  224.                                         xs++;
  225.                                         if(xs>3)
  226.                                         {
  227.                                                 xs=0;
  228.                                                 e=1;
  229.                                         }
  230.                                 }
  231.                                 LCD_Write_String(11,1,cc);
  232.                                 if(!k1)
  233.                                 {
  234.                                         while(!k1);
  235.                                            cc[0]=a1+'0';
  236.                                         m=1;
  237.                                         while(m)
  238.                                         {
  239.                                                 if(!k2)
  240.                                                 {
  241.                                                         while(!k2);
  242.                                                         e=1;
  243.                                                         xs=3;
  244.                                                         a2+=1;
  245.                                                         if(a2>9)
  246.                                                         a2=0;
  247.                                                           cc[2]=a2+'0';
  248.                                                         LCD_Write_String(11,1,cc);
  249.                                                 }

  250.                                                 if (e==1)
  251.                                                 {
  252.                                                         xs++;
  253.                                                            cc[2]=a2+'0';
  254.                                                           if(xs>6)
  255.                                                           {
  256.                                                     xs=0;
  257.                                                                 e=0;
  258.                                                           }
  259.                                                 }
  260.                                                 else
  261.                                                 {
  262.                                                         cc[2]=' ';
  263.                                                         xs++;
  264.                                                         if(xs>3)
  265.                                                         {
  266.                                                                 xs=0;
  267.                                                                 e=1;
  268.                                                         }
  269.                                                 }
  270.                                                 LCD_Write_String(11,1,cc);
  271.                                                 
  272.                                                 if(!k1)
  273.                                                 {
  274.                                                         while(!k1);
  275.                                                         cc[2]=a2+'0';
  276.                                                         z=1;
  277.                                                         while(z)
  278.                                                         {
  279.                                                                 if(!k2)
  280.                                                                 {
  281.                                                                         while(!k2);
  282.                                                                         e=1;
  283.                                                                         xs=3;
  284.                                                                         a3+=1;
  285.                                                                         if(a3>9)
  286.                                                         a3=0;
  287.                                                                           cc[3]=a3+'0';
  288.                                                                         LCD_Write_String(11,1,cc);
  289.                                                                 }

  290.                                                                 if (e==1)
  291.                                                                 {
  292.                                                                         xs++;
  293.                                                                            cc[3]=a3+'0';
  294. ……………………

  295. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼


Keil代碼與Proteus7.8仿真(dsn文件 只能用7.8版本打開)下載:
超聲波倒車雷達.zip (122.01 KB, 下載次數(shù): 1026)




評分

參與人數(shù) 3黑幣 +54 收起 理由
心動s290 + 1 贊一個!
zsyzdx + 3 贊一個!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏25 分享淘帖 頂15 踩1
回復

使用道具 舉報

沙發(fā)
ID:246531 發(fā)表于 2018-10-9 10:11 | 只看該作者
很詳細,強力推薦,贊一個
回復

使用道具 舉報

板凳
ID:407021 發(fā)表于 2018-10-10 09:46 | 只看該作者
很有用,學習了
回復

使用道具 舉報

地板
ID:407378 發(fā)表于 2018-10-10 09:47 | 只看該作者
贊一個!!!!!!!!!!!!!!
回復

使用道具 舉報

5#
ID:407378 發(fā)表于 2018-10-10 09:48 | 只看該作者
贊一個!
回復

使用道具 舉報

6#
ID:407428 發(fā)表于 2018-10-10 11:23 | 只看該作者
贊一個
回復

使用道具 舉報

7#
ID:412234 發(fā)表于 2018-10-19 13:44 | 只看該作者
厲害了
回復

使用道具 舉報

8#
ID:412234 發(fā)表于 2018-10-19 13:45 | 只看該作者
厲害了
回復

使用道具 舉報

9#
ID:426441 發(fā)表于 2018-11-14 15:53 | 只看該作者
學習了,感謝
回復

使用道具 舉報

10#
ID:443404 發(fā)表于 2018-12-12 10:07 | 只看該作者
我這用不了啊
你這里的超聲波的hex文件不需要嗎?

回復

使用道具 舉報

11#
ID:3802 發(fā)表于 2019-1-8 16:31 | 只看該作者
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

12#
ID:500061 發(fā)表于 2019-4-7 18:58 | 只看該作者
正好能用到,很厲害~
回復

使用道具 舉報

13#
ID:515555 發(fā)表于 2019-4-18 15:53 | 只看該作者
學習了
回復

使用道具 舉報

14#
ID:244712 發(fā)表于 2019-4-22 16:10 | 只看該作者
人狠話不多,找了全網(wǎng)就你最好
回復

使用道具 舉報

15#
ID:524230 發(fā)表于 2019-4-29 10:41 | 只看該作者
這個怎么用啊?導入protues工程,單片機加載hex文件就可以實現(xiàn)仿真嗎?我是小白,請各位大神賜教
回復

使用道具 舉報

16#
ID:524230 發(fā)表于 2019-4-29 10:43 | 只看該作者
導入protues工程,單片機加載hex文件就可以實現(xiàn)仿真嗎?我是小白,請各位大神賜教
回復

使用道具 舉報

17#
ID:525399 發(fā)表于 2019-5-3 21:59 | 只看該作者
贊一個  剛需
回復

使用道具 舉報

18#
ID:253767 發(fā)表于 2019-5-4 07:48 | 只看該作者
謝謝分享!!!
回復

使用道具 舉報

19#
ID:79544 發(fā)表于 2019-5-4 18:39 | 只看該作者
樓主您好 。仿真軟件ISIS7怎么找超聲波模塊?謝謝
回復

使用道具 舉報

20#
ID:235332 發(fā)表于 2019-5-4 21:41 | 只看該作者
資料不錯,想問一下HC-SR04這個元器件是怎么弄得呢?
回復

使用道具 舉報

21#
ID:391610 發(fā)表于 2019-5-12 00:27 | 只看該作者
sch文件打不開是什么原因
回復

使用道具 舉報

22#
ID:554043 發(fā)表于 2019-6-4 18:35 來自手機 | 只看該作者
樓主我買了,但是代碼用不出來,怎么辦
回復

使用道具 舉報

23#
ID:554043 發(fā)表于 2019-6-4 18:36 來自手機 | 只看該作者
樓主怎么用呀

IMG_20190604_180420.jpg (1.31 MB, 下載次數(shù): 115)

IMG_20190604_180420.jpg

1559644547326..jpg (1.26 MB, 下載次數(shù): 119)

1559644547326..jpg
回復

使用道具 舉報

24#
ID:525478 發(fā)表于 2019-6-10 14:01 | 只看該作者
下載收藏  51黑有你更精彩
回復

使用道具 舉報

25#
ID:295142 發(fā)表于 2019-6-18 15:25 | 只看該作者
真好用啊 贊一個
回復

使用道具 舉報

26#
ID:573176 發(fā)表于 2019-6-28 10:53 | 只看該作者
自己做的HS-SR04不能仿真怎么回事
回復

使用道具 舉報

27#
ID:576149 發(fā)表于 2019-7-2 10:01 | 只看該作者
贊一個
回復

使用道具 舉報

28#
ID:282095 發(fā)表于 2019-7-2 11:08 | 只看該作者
主要利用了超聲波傳感器和液晶屏
回復

使用道具 舉報

29#
ID:575298 發(fā)表于 2019-7-2 12:34 來自手機 | 只看該作者
倒車雷達
回復

使用道具 舉報

30#
ID:407026 發(fā)表于 2019-8-1 21:06 | 只看該作者
你好樓主 為什么我下載了 仿真沒有顯示
回復

使用道具 舉報

31#
ID:407026 發(fā)表于 2019-8-1 21:18 | 只看該作者
鵬博士PBs 發(fā)表于 2019-7-2 11:08
主要利用了超聲波傳感器和液晶屏

你好 ,為什么我打開 仿真不行呢
回復

使用道具 舉報

32#
ID:489394 發(fā)表于 2019-8-11 19:00 | 只看該作者
LCD不顯示怎么辦??
回復

使用道具 舉報

33#
ID:472123 發(fā)表于 2019-9-20 00:08 | 只看該作者
實用,贊一個
回復

使用道具 舉報

34#
ID:312929 發(fā)表于 2019-10-25 09:29 | 只看該作者
zhangxiaow 發(fā)表于 2019-5-12 00:27
sch文件打不開是什么原因

換個版本高的PROTEUS
回復

使用道具 舉報

35#
ID:633379 發(fā)表于 2019-11-9 11:06 | 只看該作者
仿真壓縮包打不開怎么辦
回復

使用道具 舉報

36#
ID:509174 發(fā)表于 2019-11-11 14:22 | 只看該作者

換個版本高的PROTEUS
回復

使用道具 舉報

37#
ID:509174 發(fā)表于 2019-11-11 14:23 | 只看該作者
真好用啊 贊一個
回復

使用道具 舉報

38#
ID:546381 發(fā)表于 2019-11-24 18:43 | 只看該作者
很詳細,強力推薦,贊一個
回復

使用道具 舉報

39#
ID:653556 發(fā)表于 2019-12-1 15:33 | 只看該作者
謝謝分享
回復

使用道具 舉報

40#
ID:654098 發(fā)表于 2019-12-2 11:18 | 只看該作者
想下載。。。
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品一区中文字幕 | 国产精品18hdxxxⅹ在线 | 日韩三片| 国产精品视频网 | 在线免费av电影 | 久久免费高清视频 | 超碰97免费观看 | 国产精品免费av | 免费不卡一区 | 国产三级网站 | 蜜月va乱码一区二区三区 | 综合激情久久 | 日本成人中文字幕 | 国产高清在线观看 | 欧美一二区 | 91精品国产91 | 精品视频一区二区三区 | 免费观看成人性生生活片 | 国产精品s色 | 国产欧美精品在线观看 | 一区二区三区欧美在线 | 日韩在线视频一区 | 天天躁日日躁xxxxaaaa | 久久蜜桃av | 自拍偷拍亚洲一区 | 精品美女久久久久久免费 | 日本一二区视频 | 欧产日产国产精品国产 | 亚洲在线高清 | 精品久久久久一区 | 国产98在线 | 免费, | av性色全交蜜桃成熟时 | 欧美国产日韩精品 | 亚洲高清av | 亚洲成人免费观看 | 影音先锋中文字幕在线观看 | 99久久精品免费看国产四区 | 日本三级电影在线观看视频 | www.jizzjizz| 国产视频久 | 日本超碰 |