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

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

QQ登錄

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

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

單片機(jī)DHT11溫濕度檢測(cè)器程序仿真 超閾值電阻絲模擬加熱 水泵加濕 電機(jī)風(fēng)扇降溫

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
AT89C52單片機(jī)作為數(shù)據(jù)處理器,DHT11采集溫濕度數(shù)據(jù),按鍵調(diào)整溫濕度報(bào)警閾值,LCD12864來(lái)進(jìn)行顯示溫濕度實(shí)時(shí)數(shù)據(jù)和報(bào)警閾值,當(dāng)DHT11檢測(cè)到的溫度高于報(bào)警閾值的時(shí)候,電阻絲進(jìn)行模擬加熱,當(dāng)檢測(cè)到的溫度低于報(bào)警閾值的時(shí)候,風(fēng)扇開(kāi)始進(jìn)行降溫;當(dāng)檢測(cè)到的DHT11濕度低于報(bào)警閾值的時(shí)候,水泵進(jìn)行模擬加濕,當(dāng)檢測(cè)到的DHT11濕度高于報(bào)警閾值的時(shí)候,蜂鳴器進(jìn)行鳴叫

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
#include "config.h"
#include "lcd12864.h"
#include "dht11.h"
#include "stdio.h"
#include "intrins.h"
#include "math.h"
#include "uart.h"
#include "key.h"

uint  t  = 20;
uint  z  = 40;


unsigned char tempH,tempL,humiH,humiL;


/*******************************************************************************
* 函 數(shù) 名       : Display
* 函數(shù)功能                 : 顯示溫濕度閾值
*******************************************************************************/


void Display(void)
{
        uchar t_Buffer[3];
        uchar z_Buffer[3];
        delay_ms(100);
        t_Buffer[0] = t/10+0x30;
        t_Buffer[1] = t%10+0x30;
        t_Buffer[2] = '\0';
        Write_String(2,72,0,t_Buffer);
        delay_ms(100);
        z_Buffer[0] = z/10+0x30;
        z_Buffer[1] = z%10+0x30;
        z_Buffer[2] = '\0';
        Write_String(6,72,0,z_Buffer);
}

/*******************************************************************************
* 函 數(shù) 名       : key_press
* 函數(shù)功能                 : 檢測(cè)獨(dú)立按鍵是否按下,按下則返回對(duì)應(yīng)鍵值
* 輸    入       : mode=0:?jiǎn)未螔呙璋存I
                                   mode=1:連續(xù)掃描按鍵
* 輸    出             :
                                         KEY1_PRESS:K1按下溫度閾值加1
                                   KEY2_PRESS:K2按下溫度閾值減1
                                   KEY3_PRESS:K3按下濕度閾值加1
                                   KEY4_PRESS:K4按下濕度閾值減1
                                   KEY_UNPRESS:未有按鍵按下
*******************************************************************************/
void key_press()
{
        uchar key = 0;
        key = key_scan(1);
        if (key==KEY1_PRESS)
        {
                if(t<100)
                        t++;
        }
        else if (key==KEY2_PRESS)
        {
                if (t>0)
                t--;
        }
        if (key==KEY3_PRESS)
        {
                if(z<100)
                        z++;
        }
        else if (key==KEY4_PRESS)
        {
                if (z>0)
                z--;
        }
}




void baojing(void)
{
        {

                if (tempH > t)
                {
                        Fengsan = 0;
                        Relay = 1;
                }
                else
                {
                        Fengsan = 1;
                        Relay = 0;
                }
        }
        {

                if (humiH > z)
                {
                        Suibeng = 1;
                        Beep = 1;
                }
                else
                {
                        Suibeng        = 0;
                        Beep = 0;
                }
        }
}
               
/*******************************************************************************
* 函 數(shù) 名       : 主函數(shù)
*******************************************************************************/
void main()
{
        uchar temp_buf[3],humi_buf[3];
        UartInit();
        dht11_rst();
        if(dht11_check()<0)
        {
                printf("DHT11 ERROR!\r\n");
        }
        else
        {
                printf("DHT11 OK\r\n");
        }
        
//        EA = 1;
        Init_12864();
        Qin();
        Write_String(0,0,0,"溫度");
        Write_String(0,32,0,":");
        Write_String(0,60,0,"℃");
        Write_String(2,0,0,"溫度閾值");
        Write_String(2,64,0,":");
        Write_String(2,90,0,"℃");

        Write_String(4,0,0,"濕度");
        Write_String(4,32,0,":");
        Write_String(4,60,0,"%RH");
        Write_String(6,0,0,"濕度閾值");
        Write_String(6,64,0,":");
        Write_String(6,90,0,"%RH");
        
        
        while(1)
        {
                Display();
                key_press();
                dht11_Read_Data(&tempH,&tempL,&humiH,&humiL);
                delay_ms(500);
//                Write_String(2,40,0,"&tempH");
                temp_buf[0]=tempH/10+0x30;
                temp_buf[1]=tempH%10+0x30;
                humi_buf[0]=humiH/10+0x30;
                humi_buf[1]=humiH%10+0x30;
                Write_String(0,40,0,temp_buf);
                Write_String(4,40,0,humi_buf);
                baojing();
//                printf("TEMP:%bu.%bu HUMI:%bu.%bu",tempH,tempL,humiH,humiL);
//                printf ("\r\n");
                printf(" 當(dāng)前溫度:%bu.%bu",tempH,tempL);
                delay_ms(5);
                printf ("\r\n");
                delay_ms(5);
            printf(" 當(dāng)前濕度:%bu.%bu",humiH,humiL);
                delay_ms(5);
        printf ("\r\n");
                delay_ms(5);
        }
}

Keil5代碼與Proteus8.13仿真下載:
溫濕度檢測(cè)(12864).zip (173.46 KB, 下載次數(shù): 89)

評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: av天空| 国产精品久久久久久久久久 | 亚洲一区二区三区桃乃木香奈 | 九色.com| 一区二区三区视频在线观看 | 另类一区 | 91精品国产91久久久久久密臀 | 精品国产乱码久久久久久影片 | 精品视频一区二区 | 国产精品theporn | 亚洲高清三级 | 欧美一二三四成人免费视频 | 亚洲欧美日韩精品久久亚洲区 | 免费电影av| 一区二区播放 | 人人精品| 日韩超碰在线 | 久久久久亚洲 | 欧美激情精品久久久久久免费 | 午夜a√| 91视频大全 | 精品国产18久久久久久二百 | 亚洲最新在线 | 久久婷婷av | 国产精品久久久久久久免费大片 | 国产精品久久久久无码av | 亚洲在线一区二区 | 午夜精品在线观看 | 亚洲精品一区中文字幕乱码 | 91在线视频一区 | 在线欧美小视频 | 亚洲午夜av久久乱码 | 在线a视频网站 | 台湾a级理论片在线观看 | 久久精点视频 | 日韩欧美网 | 久久久青草婷婷精品综合日韩 | 精品一区二区三区四区外站 | 在线a视频| 中文字幕在线一区 | 日韩av在线一区二区 |