找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機基于1602的溫濕度(DHT11)報警系統(tǒng)源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:427492 發(fā)表于 2019-7-14 21:49 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式

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

void Timer0Init(void)                // 5毫秒@12.000MHz
{
        AUXR |= 0x80;                      // 定時器時鐘1T模式
        TMOD &= 0xF0;                    // 設(shè)置定時器模式
        TL0 = 0xA0;                        // 設(shè)置定時初值
        TH0 = 0x15;                        // 設(shè)置定時初值
        TF0 = 0;                                // 清除TF0標(biāo)志
        TR0 = 1;                                // 定時器0開始計時
        ET0 = 1;
        EA = 1;
}
/********** 主函數(shù) **********/
void main()
{
        uchar keyvalue=16;           // 用于接收鍵值
        LCD_Init();                        // 1602初始化
        Timer0Init();                     // 定時器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) // 報警
                        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的溫濕度報警系統(tǒng).rar (88.9 KB, 下載次數(shù): 89)



評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:738997 發(fā)表于 2020-4-27 08:16 來自手機 | 只看該作者
這個可以用stc89c52做嗎?
回復(fù)

使用道具 舉報

板凳
ID:427492 發(fā)表于 2020-4-30 18:54 | 只看該作者
Mr.zqy 發(fā)表于 2020-4-27 08:16
這個可以用stc89c52做嗎?

可以,有DHT11模塊就行
回復(fù)

使用道具 舉報

地板
ID:612563 發(fā)表于 2020-5-1 12:53 來自手機 | 只看該作者
元氣件這么多?
回復(fù)

使用道具 舉報

5#
ID:427492 發(fā)表于 2020-5-1 23:27 | 只看該作者

不就一個DHT11和LCD1602?
回復(fù)

使用道具 舉報

6#
ID:409436 發(fā)表于 2020-5-11 23:41 | 只看該作者
有仿真嗎
回復(fù)

使用道具 舉報

7#
ID:427492 發(fā)表于 2020-5-14 22:45 | 只看該作者

沒有            
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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