久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
基于51單片機(jī)的dht11+1602溫濕度檢測程序
[打印本頁]
作者:
anan111
時(shí)間:
2019-12-12 13:19
標(biāo)題:
基于51單片機(jī)的dht11+1602溫濕度檢測程序
按照代碼連接硬件,lcd屏將顯示溫濕度和范圍,四個(gè)按鍵可以完成加減控制標(biāo)準(zhǔn)溫濕度范圍,超出范圍將報(bào)警,也可以加入繼電器,控制加濕器等等。
單片機(jī)源程序如下:
#include <reg52.h>
#include "1602.h"
#include "dht.h"
#include "2402.h"
//定義三個(gè)LED燈
sbit Led_qushi=P1^6; //去濕燈
sbit Led_jiangwen=P1^5; //降溫?zé)?br />
sbit fmq=P1^3; //蜂鳴器
sbit Key_TH1 = P3^2;
sbit Key_TH2 = P3^3;
sbit Key_HH1 = P3^4;
sbit Key_HH2 = P3^5;
//定義標(biāo)識
volatile bit FlagStartRH = 0; //開始溫濕度轉(zhuǎn)換標(biāo)志
volatile bit FlagKeyPress = 0; //有鍵按下
volatile bit fmqt = 0;
volatile bit fmqh = 0;
//定義溫濕度傳感器用外部變量
extern U8 U8FLAG,k;
extern U8 U8count,U8temp;
extern U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;
extern U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;
extern U8 U8comdata;
extern U8 count, count_r;
U16 temp;
S16 temperature, humidity;
S16 idata TH, HH; //溫度上限和濕度上限
char * pSave;
U8 keyvalue, keyTH1, keyTH2, keyHH1, keyHH2;
//定義變量
U16 RHCounter;
//數(shù)據(jù)初始化
void Data_Init()
{
RHCounter = 0;
Led_qushi = 1;
Led_jiangwen = 1;
TH = 40;
HH = 85;
keyvalue = 0;
keyTH1 = 1;
keyTH2 = 1;
keyHH1 = 1;
keyHH2 = 1;
}
//定時(shí)器0初始化
void Timer0_Init()
{
ET0 = 1; //允許定時(shí)器0中斷
TMOD = 1; //定時(shí)器工作方式選擇
TL0 = 0x06;
TH0 = 0xf8; //定時(shí)器賦予初值
TR0 = 1; //啟動(dòng)定時(shí)器
}
//定時(shí)器0中斷
void Timer0_ISR (void) interrupt 1 using 0
{
TL0 = 0x06;
TH0 = 0xf8; //定時(shí)器賦予初值
//每2秒鐘啟動(dòng)一次溫濕度轉(zhuǎn)換
RHCounter ++;
if (RHCounter >= 1000)
{
FlagStartRH = 1;
RHCounter = 0;
}
}
//存入設(shè)定值、
void Save_Setting()
{
pSave = (char *)&TH; //地址低位對應(yīng)低8位,高位對應(yīng)高8位
wrteeprom(0, *pSave); //存溫度上限值TH低8位
DELAY(500);
pSave ++;
wrteeprom(1, *pSave); //存溫度上限值TH高8位
DELAY(500);
pSave = (char *)&HH;
wrteeprom(2, *pSave); //存濕度上限值RH低8位
DELAY(500);
pSave ++;
wrteeprom(3, *pSave); //存濕度上限值RH高8位
DELAY(500);
}
//載入設(shè)定值、
void Load_Setting()
{
pSave = (char *)&TH;
*pSave++ = rdeeprom(0);
*pSave = rdeeprom(1);
pSave = (char *)&HH;
*pSave++ = rdeeprom(2);
*pSave = rdeeprom(3);
if ((TH>99)||(TH<0)) TH = 40;
if ((HH>99)||(HH<0)) HH = 85;
}
void KeyProcess(uint num)
{
switch (num)
{
case 1:
if (TH<99) TH++;
L1602_char(1, 15, TH/10+48);
L1602_char(1, 16, TH%10+48);
break;
case 2:
if (TH>1) TH--;
L1602_char(1, 15, TH/10+48);
L1602_char(1, 16, TH%10+48);
break;
case 3:
if (HH<99) HH++;
L1602_char(2, 15, HH/10+48);
L1602_char(2, 16, HH%10+48);
break;
case 4:
if (HH>1) HH--;
L1602_char(2, 15, HH/10+48);
L1602_char(2, 16, HH%10+48);
break;
default:
break;
}
Save_Setting();
}
/********************************************************************
* 名稱 : Main()
* 功能 : 主函數(shù)
***********************************************************************/
void main()
{
U16 i, j, testnum;
EA = 0;
Timer0_Init(); //定時(shí)器0初始化
Data_Init();
EA = 1;
L1602_init();
L1602_string(1,1,"Hua Hua`s Design");
L1602_string(2,1,"HaHaHaHa");
//延時(shí)
for (i=0;i<700;i++)
for (j=0;j<700;j++)
{;}
//清屏
L1602_string(1,1," ");
L1602_string(2,1," ");
L1602_string(1,1,"Tem: C TH:");
L1602_string(2,1,"Hum: % HH:");
//載入溫度上限和濕度上限設(shè)定值
Load_Setting();
L1602_char(1, 15, TH/10+48);
L1602_char(1, 16, TH%10+48);
L1602_char(2, 15, HH/10+48);
L1602_char(2, 16, HH%10+48);
while(1)
{
//溫濕度轉(zhuǎn)換標(biāo)志檢查
if (FlagStartRH == 1)
{
TR0 = 0;
testnum = RH();
FlagStartRH = 0;
TR0 = 1;
//讀出溫濕度,只取整數(shù)部分
humidity = U8RH_data_H;
temperature = U8T_data_H;
//顯示溫濕度
L1602_int(1,5,temperature);
L1602_int(2,5,humidity);
}
//溫濕度控制
if (temperature > TH)
{
Led_jiangwen = 0;
fmqt=1;
}
else
{
Led_jiangwen = 1;
fmqt=0;
} //降溫
if (humidity > HH)
{
Led_qushi = 0;
fmqh=1;
}
else
{
Led_qushi = 1;
fmqh=0;
} //去濕
if((fmqt==1)||(fmqh==1))
fmq=0;
else
fmq=1;
//鍵盤查詢,在彈起時(shí)響應(yīng)
if ((Key_TH1)&&(keyTH1==0)) {FlagKeyPress = 1; keyvalue = 1;}
else if ((Key_TH2)&&(keyTH2==0)) {FlagKeyPress = 1; keyvalue = 2;}
else if ((Key_HH1)&&(keyHH1==0)) {FlagKeyPress = 1; keyvalue = 3;}
else if ((Key_HH2)&&(keyHH2==0)) {FlagKeyPress = 1; keyvalue = 4;}
if (FlagKeyPress == 1)
{
KeyProcess(keyvalue);
FlagKeyPress = 0;
}
if (!Key_TH1) keyTH1 = 0;
else keyTH1 = 1;
if (!Key_TH2) keyTH2 = 0;
else keyTH2 = 1;
if (!Key_HH1) keyHH1 = 0;
else keyHH1 = 1;
if (!Key_HH2) keyHH2 = 0;
else keyHH2 = 1;
}
}
復(fù)制代碼
所有資料51hei提供下載:
溫濕度檢測程序.zip
(82.08 KB, 下載次數(shù): 55)
2019-12-12 13:06 上傳
點(diǎn)擊文件名下載附件
51單片機(jī)
下載積分: 黑幣 -5
作者:
進(jìn)擊的小伙伴。
時(shí)間:
2020-3-19 19:41
有仿真圖嗎
作者:
yet233
時(shí)間:
2025-5-11 20:01
晶振參數(shù)給個(gè)
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
av一区二区三区在线观看
|
1级毛片
|
亚洲高清视频在线观看
|
精品国产一区二区三区性色
|
91免费看片
|
草樱av
|
中文字幕在线三区
|
欧美大片在线观看
|
欧美日韩成人一区二区
|
久婷婷
|
欧美日韩精品一区二区
|
成人欧美一区二区三区色青冈
|
人人九九精
|
免费精品国产
|
欧美视频成人
|
日韩在线中文字幕
|
天天看夜夜
|
国产免费一区二区
|
四季久久免费一区二区三区四区
|
最新中文字幕在线
|
亚洲精品综合一区二区
|
亚洲精品日韩一区二区电影
|
毛片毛片毛片毛片毛片
|
国产精品久久影院
|
国产97色
|
日韩免费一区二区
|
欧美日韩在线观看视频
|
日韩精品免费在线观看
|
亚洲一区二区中文字幕
|
日韩精品一区二区三区视频播放
|
国产一级特黄视频
|
久久蜜桃av一区二区天堂
|
天天综合天天
|
超碰av人人
|
亚洲免费大片
|
亚洲精品在线视频
|
日韩久久久久久久久久久
|
国产精品亚洲欧美日韩一区在线
|
九热在线
|
免费在线观看一区二区
|
av男人的天堂在线
|