標(biāo)題: 單片機(jī)基于1602的溫濕度(DHT11)報(bào)警系統(tǒng)源程序 [打印本頁(yè)]

作者: 楓樹(shù)566    時(shí)間: 2019-7-14 21:49
標(biāo)題: 單片機(jī)基于1602的溫濕度(DHT11)報(bào)警系統(tǒng)源程序

/*********************************************************************************
*                   實(shí)驗(yàn):DHT11溫濕度傳感器(按鍵有些遲鈍)
* 步驟及現(xiàn)象:程序下載前,選擇stc-isp的IRC頻率:12MHz。下載完成后,1602第
*   一行顯示:“Temperature:30C”第二行顯示:“Humidity    :09RH”。這時(shí)
*   按按鍵0(sw1),進(jìn)入溫濕度上下限設(shè)置界面,1602第一行顯示:“TH:30  TL:15  1 ”
*   第二行顯示:“HH:15  HL:05    ”,溫度上下限(TH、TL),濕度上下限(HH、HL)。   
*   第一行最右側(cè)那個(gè)1表示此時(shí)可以對(duì)溫度上限進(jìn)行設(shè)置(按按鍵2(sw9)加,按按鍵3
*   (sw13)減);這時(shí)按按鍵1(sw5),第一行最右側(cè)1變成數(shù)字2,表示此時(shí)可以對(duì)溫 度
*   下限,進(jìn)行設(shè)置(加減與上同);再按按鍵1,這時(shí)第一行最右側(cè)數(shù)字消失,而第二     
*   行最右側(cè)出現(xiàn)數(shù)字3,表示此時(shí)可以對(duì)濕度上限進(jìn)行設(shè)置;接著按按鍵1,數(shù)字3變成
*   數(shù)字4,這時(shí)設(shè)置濕度下限。當(dāng)數(shù)字是4時(shí),再按一次按鍵1,退出界限設(shè)置界面;在   
*   界限設(shè)置界面無(wú)論數(shù)字是幾,按按鍵0都可以退出設(shè)置界面。
*********************************************************************************/
#include <stc8.h>
#include "1602.h"
#include "displayandset.h"
#include "key.h"

sbit beep = P1^3;                           // 蜂鳴器
bit flg = 0;                                      // 清屏標(biāo)志位
extern unsigned char rhh,rhl,rth,rtl,rcc;   // 用于接收DHT11測(cè)得的數(shù)據(jù)
extern uchar tempH, tempL, humiH, humiL;    // 用于設(shè)置溫濕度上下限

void Timer0Init(void)                // 5毫秒@12.000MHz
{
        AUXR |= 0x80;                      // 定時(shí)器時(shí)鐘1T模式
        TMOD &= 0xF0;                    // 設(shè)置定時(shí)器模式
        TL0 = 0xA0;                        // 設(shè)置定時(shí)初值
        TH0 = 0x15;                        // 設(shè)置定時(shí)初值
        TF0 = 0;                                // 清除TF0標(biāo)志
        TR0 = 1;                                // 定時(shí)器0開(kāi)始計(jì)時(shí)
        ET0 = 1;
        EA = 1;
}
/********** 主函數(shù) **********/
void main()
{
        uchar keyvalue=16;           // 用于接收鍵值
        LCD_Init();                        // 1602初始化
        Timer0Init();                     // 定時(shí)器0初始化
        while(1)
        {               
                keyvalue = key_scan();   // 獲取按鍵值
                if(keyvalue==0)              // 按按鍵0,進(jìn)入設(shè)置界面
                        setHL();        
                main_Display();              // 不按按鍵,進(jìn)入顯示溫濕度界面
                if(rhh > humiH || rhh < humiL || rth > tempH || rth < tempL) // 報(bào)警
                        beep = ~beep;        // 蜂鳴器電平翻轉(zhuǎn)
                else
                        beep = 1;
        }
}

void T0_isr() interrupt 1
{
        static uchar i=0;
        i++;                         // 進(jìn)一次中斷加1,5ms進(jìn)一次中斷
        if(i == 200)              // 進(jìn)200次中斷,即1s
        {
                i = 0;
                flg = 1;              // 清屏標(biāo)志置1
        }
        else
                flg = 0;
}


全部資料51hei下載地址:
基于1602的溫濕度報(bào)警系統(tǒng).rar (88.9 KB, 下載次數(shù): 89)




作者: Mr.zqy    時(shí)間: 2020-4-27 08:16
這個(gè)可以用stc89c52做嗎?
作者: 楓樹(shù)566    時(shí)間: 2020-4-30 18:54
Mr.zqy 發(fā)表于 2020-4-27 08:16
這個(gè)可以用stc89c52做嗎?

可以,有DHT11模塊就行
作者: 天道酬情    時(shí)間: 2020-5-1 12:53
元?dú)饧@么多?
作者: 楓樹(shù)566    時(shí)間: 2020-5-1 23:27
天道酬情 發(fā)表于 2020-5-1 12:53
元?dú)饧@么多?

不就一個(gè)DHT11和LCD1602?
作者: 1473708750    時(shí)間: 2020-5-11 23:41
有仿真嗎
作者: 楓樹(shù)566    時(shí)間: 2020-5-14 22:45
1473708750 發(fā)表于 2020-5-11 23:41
有仿真嗎

沒(méi)有            




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