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

QQ登錄

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

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

超聲波測(cè)距可設(shè)置LCD1602顯示Proteus仿真代碼,并帶溫度DS18B20補(bǔ)償

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:528775 發(fā)表于 2021-11-17 21:09 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
超聲波測(cè)距可設(shè)置LCD1602顯示,并帶溫度DS18B20補(bǔ)償,超限制報(bào)警。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  1. //頭函數(shù)
  2. #include <reg52.h>
  3. #include <intrins.h>
  4. //宏定義
  5. #define uchar unsigned char
  6. #define uint unsigned int
  7. #define ULint unsigned long int
  8. //溫度零上與零下的標(biāo)志位
  9. char flag=0;
  10. //超聲波
  11. char flags=0;
  12. //超聲波距離
  13. char flag1s=1;
  14. //計(jì)算定時(shí)間
  15. uint time=0;
  16. //計(jì)算距離
  17. ULint L_=0;

  18. ULint Mini=20;
  19. //溫度
  20. uint t_=0;

  21. bit xsflag=1;




  22. //按鍵標(biāo)志
  23. uchar k=0;
  24. //數(shù)值有誤
  25. uchar FW=0;





  26. #include "BJ_Key.h"                    //報(bào)警按鍵
  27. #include "display.h"                         //顯示頭函數(shù)
  28. #include "ultrasonic_wave.h"//超聲波頭函數(shù)
  29. #include "DS18B20.h"                    //溫度傳感器頭函數(shù)


  30. //函數(shù)聲明
  31. void delayms(uint ms);



  32. //主函數(shù)
  33. void main()
  34. {
  35.         Init_ultrasonic_wave();
  36.         //屏幕初始化
  37.         Init1602();
  38.         //溫度初始化
  39.         tmpchange();
  40.         t_=tmp();
  41.         tmpchange();
  42.         t_=tmp();
  43.         tmpchange();
  44.         t_=tmp();

  45.         //循環(huán)顯示
  46.         while(1)
  47.         {
  48.                 Key();
  49.                
  50.                         StartModule();//啟動(dòng)超聲波
  51.                         while(!RX);          //當(dāng)RX為零時(shí)等待
  52.                         TR0=1;                  //開(kāi)啟計(jì)數(shù)
  53.                         while(RX);          //當(dāng)RX為1計(jì)數(shù)并等待
  54.                         TR0=0;                  //關(guān)閉計(jì)數(shù)
  55.        
  56.                         delayms(20);  //20MS
  57.                         tmpchange();  //溫度轉(zhuǎn)換
  58.                         t_=tmp();     //度溫度
  59.                         Conut(t_/10); //計(jì)算距離

  60.                         if(L_<Mini && xsflag==1)
  61.                         {
  62.                                 Feng_Start();
  63.                         }else{
  64.                                 Feng_Stop();
  65.                         }
  66.                         Display_1602(t_/10,L_,Mini);
  67.        
  68.         }
  69. }

  70. void delayms(uint ms)
  71. {
  72.         uchar i=100,j;
  73.         for(;ms;ms--)
  74.         {
  75.                 while(--i)
  76.                 {
  77.                         j=10;
  78.                         while(--j);
  79.                 }
  80.         }
  81. }
  82. //T0中斷用來(lái)計(jì)數(shù)器溢出,超過(guò)測(cè)距范圍
  83. void CJ_T0() interrupt 1
  84. {
  85.     flags=1;                                                         //中斷溢出標(biāo)志
  86. }
復(fù)制代碼

仿真代碼資料51hei附件下載:
超聲波測(cè)距,可設(shè)置距離.7z (191.77 KB, 下載次數(shù): 115)

評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:982352 發(fā)表于 2021-11-18 21:25 | 只看該作者
好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報(bào)

板凳
ID:372579 發(fā)表于 2022-2-24 07:43 來(lái)自觸屏版 | 只看該作者
這個(gè)跟上的差不多
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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