找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)DHT11溫濕度檢驗(yàn)程序 超過范圍報(bào)警

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:828258 發(fā)表于 2020-10-11 13:18 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
用的DHT11,用來檢測溫濕度,超過范圍報(bào)警
  1. #include <reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. #include <intrins.h>

  5. typedef bit BOOL  ;

  6. sbit io = P1^1 ;//(口線定義)
  7. sbit bee=P1^0;
  8. sbit rs = P2^5 ;
  9. sbit rw = P2^6 ;
  10. sbit ep = P2^7 ;
  11. bit flag_300ms ;

  12. sbit K1=P1^2;
  13. sbit K2=P1^3;
  14. sbit K3=P1^4;

  15. uchar yemian=0;//(定義變量)
  16. uchar flat=1;
  17. uchar data_byte;
  18. uchar RH,RL,TH,TL;
  19. uchar WenDu,ShiDu;//報(bào)警的溫度和濕度
  20. #include "eeprom52.h"


  21. /****************************延時(shí)程序****************************/
  22. void delay(uchar ms)
  23. {       // 延時(shí)子程序
  24.          uchar i ;
  25.          while(ms--)
  26.          {
  27.                   for(i = 0 ; i<250;i++) ;
  28.          }
  29. }

  30. void delay1()//延時(shí)10us
  31. {
  32.         uchar i;
  33.         i--;
  34.         i--;
  35.         i--;
  36.         i--;
  37.         i--;
  38.         i--;
  39. }
  40. void longdelay(uchar s) //長延時(shí)
  41. {
  42.          while(s--)
  43.          {
  44.                   delay(20) ;
  45.          }
  46. }



  47. /******************把數(shù)據(jù)保存到單片機(jī)內(nèi)部eeprom中******************/
  48. void write_eeprom()
  49. {
  50.         SectorErase(0x2000);
  51.          byte_write(0x2000, WenDu);
  52.         byte_write(0x2001, ShiDu);
  53.         byte_write(0x2060, a_a);        
  54. }

  55. /******************把數(shù)據(jù)從單片機(jī)內(nèi)部eeprom中讀出來*****************/
  56. void read_eeprom()
  57. {
  58.         WenDu   = byte_read(0x2000);
  59.   ShiDu = byte_read(0x2001);
  60.         a_a      = byte_read(0x2060);
  61. }

  62. /**************開機(jī)自檢eeprom初始化*****************/
  63. void init_eeprom()
  64. {
  65.         read_eeprom();                //先讀
  66.         if(a_a != 2)                //新的單片機(jī)初始單片機(jī)內(nèi)問eeprom
  67.         {
  68.         WenDu   = 30;
  69.         ShiDu   = 80;
  70.                 a_a = 2;
  71.                 write_eeprom();
  72.         }        
  73. }



  74. /********************報(bào)警程序部分*******************/
  75. void warn()  //報(bào)警函數(shù)
  76. {
  77.         
  78.   if(TH>=WenDu)  //檢測的溫度高于設(shè)定溫度報(bào)警值
  79.                                              
  80.      {
  81.       bee=0; //報(bào)警
  82.                         
  83.      }      
  84.                  
  85.         if(RH>=ShiDu)  //檢測的濕度高于設(shè)定的濕度值
  86.                                              
  87.      {
  88.       bee=0; //報(bào)警
  89.      }      

  90.                  
  91.         if( TH<WenDu  &&  RH<ShiDu )         
  92.     {
  93.                   bee=1; //停止報(bào)警
  94.                 }
  95.                  
  96.   
  97. }
復(fù)制代碼
由于篇幅限制,詳情見附件

原理圖.png (59.67 KB, 下載次數(shù): 33)

原理圖.png

基于單片機(jī)的溫度濕度采集系統(tǒng).rar

87.72 KB, 下載次數(shù): 16, 下載積分: 黑幣 -5

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

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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