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

標題: 基于51單片機的dht11溫濕度采集報警系統 [打印本頁]

作者: liujia21    時間: 2020-3-17 13:11
標題: 基于51單片機的dht11溫濕度采集報警系統
本帖最后由 liujia21 于 2020-3-22 00:31 編輯

基于51單片機的溫濕度采集報警系統,用dht11采集溫濕度,液晶實時顯示溫濕度,三個按鍵,第一個按鍵是設置鍵,第二個按鍵是加,第三個是減,當實時的溫濕度超過最高或者低于最低,蜂鳴器會報警。完整的程序和電路圖在壓縮包里面,51程序用keil4打開,電路圖是altium designer畫的,下面有源文件。
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit Data=P1^0;   
uchar rec_dat[13]="000000000000";   
extern void InitLcd1602();
uchar showset[16]="000000000000";
int wendu=0;
int shidu=0;
sbit shezhi=P2^0;
sbit jia=P2^1;
sbit jian=P2^2;
sbit beep=P3^7;
int wendul=5;
int wenduh=30;
int shidul=30;
int shiduh=60;
int change=0;
uchar key_can;  
extern void LcdShowStr(unsigned char x, unsigned char y, unsigned char *str);
void DHT11_delay_us(uchar n)
{
    while(--n);
}
void DHT11_delay_ms(uint z)
{
   uint i,j;
   for(i=z;i>0;i--)
      for(j=110;j>0;j--);
}
void DHT11_start()
{
   Data=1;
   DHT11_delay_us(2);
   Data=0;
   DHT11_delay_ms(20);   
   Data=1;
   DHT11_delay_us(30);
}
uchar DHT11_rec_byte()   
{
   uchar i,dat=0;
  for(i=0;i<8;i++)   
   {         
      while(!Data);   
      DHT11_delay_us(8);   
      dat<<=1;         
      if(Data==1)   
         dat+=1;
      while(Data);      
    }  
    return dat;
}
void DHT11_receive()   
{
    uchar R_H,R_L,T_H,T_L,RH,RL,TH,TL,revise;
    DHT11_start();
    if(Data==0)
    {
        while(Data==0);   
        DHT11_delay_us(40);  
        R_H=DHT11_rec_byte();   
        R_L=DHT11_rec_byte();   
        T_H=DHT11_rec_byte();   
        T_L=DHT11_rec_byte();   
        revise=DHT11_rec_byte();
        DHT11_delay_us(25);   
        if((R_H+R_L+T_H+T_L)==revise)   
        {
            RH=R_H;
            RL=R_L;
            TH=T_H;
            TL=T_L;
        }
    shidu=RH;
    wendu=TH;
    rec_dat[0]='H';
    rec_dat[1]=':';
    rec_dat[2]='0'+(RH/10);
        rec_dat[3]='0'+(RH%10);
        rec_dat[4]='R';
        rec_dat[5]='H';
        rec_dat[6]=' ';
        rec_dat[7]=' ';
   
    rec_dat[8]='T';
    rec_dat[9]=':';
        rec_dat[10]='0'+(TH/10);
        rec_dat[11]='0'+(TH%10);
        rec_dat[12]='C';
    }
}

void main()
{   
   InitLcd1602();  
   while(1)
   {   
       DHT11_delay_ms(500);   
       DHT11_receive();
   
    if(shezhi==0)
    {
     DHT11_delay_ms(2);
     if(shezhi==0)
    {
      change++;
      if(change>3)
      {
      change=0;
      
      }
     
      }
     }
   
    if(change==0)
    {
     if(jia==0)
     {
      DHT11_delay_ms(2);
        if(jia==0)
        {
        shidul++;
       if(shidul>99)
       {
        shidul=99;
        
       }
     
        }
        }
      
      if(jian==0)
     {
      DHT11_delay_ms(2);
        if(jian==0)
        {
        shidul--;
       if(shidul<0)
       {
        shidul=0;
        
       }
     
        }
        }
    }
   
    if(change==1)
    {
     if(jia==0)
     {
      DHT11_delay_ms(2);
        if(jia==0)
        {
        shiduh++;
       if(shiduh>99)
       {
        shiduh=99;
        
       }
     
        }
        }
      
      if(jian==0)
     {
      DHT11_delay_ms(2);
        if(jian==0)
        {
        shiduh--;
       if(shiduh<0)
       {
        shiduh=0;
        
       }
     
        }
        }
    }
   
   
   
    if(change==2)
    {
     if(jia==0)
     {
      DHT11_delay_ms(2);
        if(jia==0)
        {
        wendul++;
       if(wendul>99)
       {
        wendul=99;
        
       }
     
        }
        }
      
      if(jian==0)
     {
      DHT11_delay_ms(2);
        if(jian==0)
        {
        wendul--;
       if(wendul<0)
       {
        wendul=0;
        
       }
     
        }
        }
    }
   
    if(change==3)
    {
     if(jia==0)
     {
      DHT11_delay_ms(2);
        if(jia==0)
        {
        wenduh++;
       if(wenduh>99)
       {
        wenduh=99;
        
       }
     
        }
        }
      
      if(jian==0)
     {
      DHT11_delay_ms(2);
        if(jian==0)
        {
        wenduh--;
       if(wenduh<0)
       {
        wenduh=0;
        
       }
     
        }
        }
    }

      showset[0]='L';
    showset[1]=':';
    showset[2]='0'+(shidul/10);
        showset[3]='0'+(shidul%10);
   
      showset[4]='H';
    showset[5]=':';
    showset[6]='0'+(shiduh/10);
        showset[7]='0'+(shiduh%10);
   
    showset[8]='L';
    showset[9]=':';
        showset[10]='0'+(wendul/10);
        showset[11]='0'+(wendul%10);
       showset[12]='L';
    showset[13]=':';
        showset[14]='0'+(wenduh/10);
        showset[15]='0'+(wenduh%10);
   
    if((shidu< shidul )|| (shidu>shiduh))
    {
     beep=0;
     
    }
    else if((wendu< wendul )|| (wendu>wenduh))
    {
     beep=0;
    }
    else
    {
     beep=1;
    }
    LcdShowStr(0,1,showset);  //顯示設定的最高和最低濕度
   LcdShowStr(0,0,rec_dat);  //顯示實時濕度         
   }
}

IMG_20200316_221927.jpg (2.83 MB, 下載次數: 77)

IMG_20200316_221927.jpg

基于51單片機的dht11溫濕度采集程序.zip

48.96 KB, 下載次數: 250, 下載積分: 黑幣 -5

基于51單片機的dht11溫濕度采集電路.zip

191.56 KB, 下載次數: 166, 下載積分: 黑幣 -5


作者: 52hz92    時間: 2020-3-26 18:26
為啥第一行顯示不出來

作者: zhangjinfeng123    時間: 2020-3-31 00:23
52hz92 發表于 2020-3-26 18:26
為啥第一行顯示不出來

數據口得改  p1.1
作者: yuefxw    時間: 2020-5-5 12:18
樓主,為啥不顯示呢,小白請指導

作者: 羊羊羊羊1111    時間: 2020-5-14 16:47
不能顯示呀,能幫忙解決一下嗎
作者: 已飛的鷹    時間: 2020-5-15 17:19
不錯的,謝謝樓主發的資料
作者: 干掉蒂    時間: 2020-5-16 15:39
有proteus仿真圖嗎
作者: 000001233    時間: 2020-10-15 22:18
可以實現嗎
作者: 000001233    時間: 2020-10-15 23:05
為什么仿真不出來呀?

作者: yzj555    時間: 2020-10-19 20:17
so nice
作者: 1023536640    時間: 2020-12-15 23:50
我用的AT89C52在PROTEUS上仿真,引腳都改好了,LCD上第二行能很順利顯示,第一行就是一直在顯示rec_dat的初始值,研究之后發現似乎是DHT11輸出過來的數據一直是零網上說時序有問題我又不會調時序,它到底是不是DHT11數據的事,求助求助




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 最新黄色毛片 | 久久精品国产久精国产 | 国产精品久久久久久久久久 | 国产精品91视频 | 久久精品欧美一区二区三区不卡 | 中文字幕日韩一区 | 欧美色综合一区二区三区 | 国产精品成人一区二区 | 成人影院在线视频 | 天堂在线www| 国产一区二区三区免费视频 | 日韩视频一区二区三区 | 亚洲视频三区 | 亚洲成人av在线播放 | 九九热在线免费视频 | 欧美激情综合色综合啪啪五月 | 欧美精品日韩精品 | 在线看片国产 | 久久小视频 | 久久精品欧美一区二区三区不卡 | 成人在线中文字幕 | 国产日批| 91麻豆精品国产91久久久更新资源速度超快 | 国产在线精品一区二区 | 偷派自拍| 3级毛片 | 成人欧美日韩一区二区三区 | 91视频久久 | 综合久久av| 天堂在线91 | 日韩欧美国产一区二区 | 中文字幕在线视频一区二区三区 | 欧美a在线 | 99爱在线免费观看 | 成人午夜性成交 | 久日精品 | 99久久精品免费看国产四区 | 亚洲成av | 国产成人一区在线 | 成人欧美一区二区三区视频xxx | 一级a性色生活片久久毛片波多野 |