亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

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

QQ登錄

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

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

單片機(jī)超聲波入門(mén)學(xué)習(xí)(新手想學(xué)的進(jìn)來(lái))有仿真

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:424598 發(fā)表于 2020-10-28 20:52 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
說(shuō)明: 本貼仿真和源碼是使用以下貼子修改而來(lái)

單片機(jī)超聲波測(cè)距Proteus仿真與源代碼





在原基礎(chǔ)上做了二個(gè)版本, 一個(gè)是精簡(jiǎn)版本, 方便理解超聲波的相關(guān)代碼
另一個(gè)是自己拓展的思路




  1. /*
  2.         注: 以下代碼真實(shí)環(huán)璄下,STC89C52最小單片機(jī)上測(cè)試成功
  3.         使用模塊:
  4.                 1.最小單片機(jī)STC89C52
  5.                 2.超聲波HC-SR04
  6.                 3.L298N調(diào)速模塊+小風(fēng)扇
  7.         進(jìn)階功能(利用超聲波檢測(cè)是否有人存在, 自動(dòng)啟動(dòng)/停止小風(fēng)扇):
  8.                 1.超聲波對(duì)著人坐的位置(根據(jù)實(shí)際距離自行調(diào)整BJZ的值)
  9.                 2.當(dāng)檢測(cè)到有人時(shí)(S<=BJZ 且 Someone>=5), FengShan置高電平(電扇啟動(dòng)), 并進(jìn)入循環(huán)檢測(cè)
  10.                 3.當(dāng)檢測(cè)到無(wú)人時(shí)(Unmanned>=10), FengShan置低電平(電扇停止), 并進(jìn)入循環(huán)檢測(cè)
  11.                 4.當(dāng)無(wú)人時(shí), Unmanned變量+1, Someone變量=0
  12.                 5.當(dāng)有人時(shí)Someone變量+1, Unmanned變量=0
  13. */

  14. /*
  15.         大家可以自行拓展更多實(shí)用功能, 如:
  16.                 小便池自動(dòng)沖水器
  17.                 放門(mén)口的來(lái)客"歡迎光臨"等等
  18. */

  19. //加載配置文件
  20. #include <reg52.H>
  21. #include <intrins.h>

  22. //類(lèi)型轉(zhuǎn)義
  23. #define uchar unsigned char        
  24. #define uint unsigned int
  25. #define ulong unsigned long

  26. /**********************************************************************************************************/

  27. //超聲波接口
  28. sbit RX  = P3^2; //接超聲波的echo引腳
  29. sbit TX  = P3^3; //接超聲波的trig引腳

  30. //用蜂鳴器或Led二極管模擬測(cè)試
  31. sbit FengShan= P2^0; //負(fù)極接P2^0,正極接VCC(蜂鳴器最好是用三極管放大)

  32. //變量聲明
  33. uint time=0;
  34. uint timer=0;
  35. uchar posit=0;
  36. ulong S=0;        //超聲波檢查距離CM
  37. ulong BJZ=50; //報(bào)警距離CM
  38. uint i; //循環(huán)記次數(shù)
  39. uint Unmanned=0; //檢測(cè)到無(wú)人的次數(shù)
  40. uint Someone=0; //檢測(cè)到有人的次數(shù)

  41. bit Flag_CSB=0; //超聲波的中斷溢出標(biāo)志

  42. /**********************************************************************************************************/
  43. //************ 計(jì)算 ************
  44. void Conut(void)
  45. {
  46.         time=TH0*256+TL0; //讀出T0的計(jì)時(shí)數(shù)值
  47.         TH0=0;TL0=0; //清空計(jì)時(shí)器
  48.         S=(time*1.7)/100; //算出來(lái)是CM
  49.         //聲音的速度是340m/s,時(shí)間的單位是us,計(jì)算到秒需要將時(shí)間數(shù)據(jù)/1000000,
  50.         //長(zhǎng)度=速度*時(shí)間,340*time/1000000,長(zhǎng)度數(shù)據(jù)單位是m轉(zhuǎn)換成cm需要乘以100得到340*time/10000,
  51.         //小數(shù)點(diǎn)都向左移兩位得到3.4*time/100,因?yàn)槌暡ㄊ峭盗耍栽俪?,得到距離數(shù)據(jù)(time*1.7)/100
  52.         
  53.         if((S>=700) || Flag_CSB==1) //超出測(cè)量范圍
  54.         {        
  55.                 FengShan=1; //停止風(fēng)扇
  56.                 Flag_CSB=0; //中斷溢出標(biāo)志
  57.         }
  58.         else
  59.         {
  60.                 //距離小于報(bào)警值
  61.                 if(S<=BJZ)
  62.                 {        
  63.                         Someone+=1; //有人時(shí)+1
  64.                         Unmanned=0; //無(wú)人時(shí)置0
  65.                         if (Someone>=5) //為了判斷準(zhǔn)確, 連續(xù)檢測(cè)5次有人才會(huì)啟動(dòng)風(fēng)扇
  66.                         {
  67.                                 FengShan=0; //啟動(dòng)風(fēng)扇
  68.                                 Someone=0;
  69.                         }                        
  70.                 }
  71.                 else  //大于
  72.                 {
  73.                         Unmanned+=1; //無(wú)人時(shí)+1
  74.                         Someone=0; //有人時(shí)置0
  75.                         if (Unmanned>=10) //為了判斷準(zhǔn)確, 連續(xù)檢測(cè)10次無(wú)人才會(huì)停止風(fēng)扇
  76.                         {
  77.                                 FengShan=1;        //停止風(fēng)扇
  78.                                 Unmanned=0;
  79.                         }                        
  80.                 }
  81.         }
  82. }


  83. /**********************************************************************************************************/
  84. /***********超聲波的定時(shí)器0初始化***********/
  85. void CSB_Timer0(void)
  86. {
  87.         TMOD=0x11; //設(shè)T0為方式1
  88.         TH0=0;
  89.         TL0=0;         
  90.         TH1=0xf8; //2MS定時(shí)
  91.         TL1=0x30;
  92.         ET0=1; //允許T0中斷
  93.         ET1=1; //允許T1中斷
  94.         TR1=1; //開(kāi)啟定時(shí)器
  95.         EA=1; //開(kāi)啟總中斷
  96. }

  97. //************ 主函數(shù) ************
  98. void main(void)
  99. {  
  100.         CSB_Timer0();        
  101.         FengShan=0; //啟動(dòng)風(fēng)扇

  102.         while(1)
  103.         {
  104.                 while(!RX); //當(dāng)上次接收完波后,RX引腳是低電平,取反就是1,此while成立,反復(fù)判斷RX狀態(tài)。當(dāng)RX沒(méi)有接收到返回波時(shí)是高電平,取反就是0,此while不成立,跳出
  105.                 TR0=1; //開(kāi)啟計(jì)數(shù)
  106.                 while(RX); //當(dāng)RX沒(méi)有接收到返回波,此while成立,程序停在這里一直判斷RX狀態(tài)。當(dāng)RX接收到返回波,RX引腳變?yōu)榈碗娖剑藈hile不成立,跳出
  107.                 TR0=0; //停止計(jì)數(shù)
  108.                 Conut(); //計(jì)算
  109.         }
  110. }

  111. /**********************************************************************************************************/
  112. //************ 定時(shí)器0處理(超聲波) ************
  113. void dsq0() interrupt 1 //T0中斷用來(lái)計(jì)數(shù)器溢出,超過(guò)測(cè)距范圍
  114. {
  115.         Flag_CSB=1; //中斷溢出標(biāo)志
  116. }

  117. //************ 定時(shí)器1(超聲波) ************
  118. void dsq1() interrupt 3 //T1中斷用于計(jì)800MS啟動(dòng)模塊
  119. {
  120.         TH1=0xf8;
  121.         TL1=0x30; //定時(shí)2ms
  122.         timer++; //變量加
  123.         if(timer>=400) //400次就是800ms
  124.         {
  125.                 timer=0;
  126.                 TX=1; //800MS  啟動(dòng)一次模塊
  127.                 for(i=0;i<21;i++)
  128.                 {
  129.                 _nop_();
  130.                 }
  131.                 TX=0;
  132.         }
  133. }   
復(fù)制代碼

全部資料51hei下載地址:
51超聲波學(xué)習(xí).zip (94.74 KB, 下載次數(shù): 26)

評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

無(wú)效樓層,該帖已經(jīng)被刪除

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表