標(biāo)題: 單片機(jī)DHT11溫濕度檢驗(yàn)程序 超過(guò)范圍報(bào)警 [打印本頁(yè)]

作者: S12864    時(shí)間: 2020-10-11 13:18
標(biāo)題: 單片機(jī)DHT11溫濕度檢驗(yàn)程序 超過(guò)范圍報(bào)警
用的DHT11,用來(lái)檢測(cè)溫濕度,超過(guò)范圍報(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) //長(zhǎng)延時(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中讀出來(lái)*****************/
  56. void read_eeprom()
  57. {
  58.         WenDu   = byte_read(0x2000);
  59.   ShiDu = byte_read(0x2001);
  60.         a_a      = byte_read(0x2060);
  61. }

  62. /**************開(kāi)機(jī)自檢eeprom初始化*****************/
  63. void init_eeprom()
  64. {
  65.         read_eeprom();                //先讀
  66.         if(a_a != 2)                //新的單片機(jī)初始單片機(jī)內(nèi)問(wèn)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)  //檢測(cè)的溫度高于設(shè)定溫度報(bào)警值
  79.                                              
  80.      {
  81.       bee=0; //報(bào)警
  82.                         
  83.      }      
  84.                  
  85.         if(RH>=ShiDu)  //檢測(cè)的濕度高于設(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ù)制代碼
由于篇幅限制,詳情見(jiàn)附件

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

原理圖.png

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

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






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1