欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機DHT11+AT24C02濕度控制電風扇報警程序
[打印本頁]
作者:
mengyuan
時間:
2019-1-22 11:33
標題:
單片機DHT11+AT24C02濕度控制電風扇報警程序
花了幾個小時做了一個濕度報警,做了一個濕度報警現在分享給大家.引腳定義,已經存在制作前閱讀里面了
編寫環境Keil5
引腳定義
濕度計引腳定義
蜂鳴器 P2^0
LED報警燈 P1^6
風扇 P1^5
按鍵1 P3^4
按鍵2 P3^5
Dht11數據線 P1^7
AT24C02:
SCL P1^0
SDA P1^1
LCD1602
E P2^7
RW P2^6
RS P2^5
數據線 P0
編寫時間2019.1.22
濕度上限+AT24C02+蜂鳴器+風扇+LCD1602
單片機源程序如下:
#include <reg52.h>
#include "1602.h"
#include "dht.h"
#include "2402.h"
sbit speaker=P2^0;
//定義LED燈
sbit Led_qushi=P1^6; //去濕燈
sbit fan=P1^5;
sbit Key_HH1 = P3^4;
sbit Key_HH2 = P3^5;
//定義標識
volatile bit FlagStartRH = 0; //開始溫濕度轉換標志
volatile bit FlagKeyPress = 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 humidity;
S16 idata HH; //濕度上限
char * pSave;
//定義變量
U16 RHCounter;
//數據初始化
void Data_Init() {
RHCounter = 0;
Led_qushi = 1;
HH = 85;
}
//定時器0初始化
void Timer0_Init() {
ET0 = 1; //允許定時器0中斷
TMOD = 1; //定時器工作方式選擇
TL0 = 0x06;
TH0 = 0xf8; //定時器賦予初值
TR0 = 1; //啟動定時器
}
//定時器0中斷
void Timer0_ISR (void) interrupt 1 using 0 {
TL0 = 0x06;
TH0 = 0xf8; //定時器賦予初值
//每2秒鐘啟動一次溫濕度轉換
RHCounter ++;
if (RHCounter >= 1000) {
FlagStartRH = 1;
RHCounter = 0;
}
}
//存入設定值、
void Save_Setting() {
pSave = (char *)&HH;
wrteeprom(2, *pSave); //存濕度上限值RH低8位
DELAY(500);
pSave ++;
wrteeprom(3, *pSave); //存濕度上限值RH高8位
DELAY(500);
}
//載入設定值、
void Load_Setting() {
pSave = (char *)&HH;
*pSave++ = rdeeprom(2);
*pSave = rdeeprom(3);
if ((HH>99)||(HH<0)) HH = 99;
}
/********************************************************************
* 名稱 : Main()
* 功能 : 主函數
***********************************************************************/
void main() {
U16 i, j, testnum;
EA = 0;
Timer0_Init(); //定時器0初始化
Data_Init();
EA = 1;
L1602_init();
// L1602_string(1,1," Welcome to H ");
//延時
for (i=0; i<500; i++)
for (j=0; j<1000; j++)
{;}
//清屏
L1602_string(1,1,"Sd: % H: % ");
//載入濕度上限設定值
Load_Setting();
L1602_char(1, 13, HH/10+48);
L1602_char(1, 14, HH%10+48);
while(1) {
//溫濕度轉換標志檢查
if (FlagStartRH == 1) { //定時器
TR0 = 0;
testnum = RH();
FlagStartRH = 0;
//讀出濕度,只取整數部分
TR0 = 1;
humidity = U8RH_data_H;
//顯示濕度
L1602_int(1,2,humidity);
}
if (!Key_HH1) { //上下限處理
DELAY(5000);
DELAY(5000);
DELAY(5000);
DELAY(5000);
DELAY(5000);
DELAY(5000);
if (!Key_HH1) {
if(HH>0)
HH--;
else HH=0;
L1602_char(1, 13, HH/10+48);
L1602_char(1, 14, HH%10+48);
Save_Setting();
}
}
if (!Key_HH2) {
DELAY(5000);
DELAY(5000);
DELAY(5000);
DELAY(5000);
DELAY(5000);
DELAY(5000);
if (!Key_HH2) {
if(HH>99)
HH=99;
else HH++;
L1602_char(1, 13, HH/10+48);
L1602_char(1, 14, HH%10+48);
Save_Setting();
}
}
if (humidity > HH) {
fan=0;
Led_qushi = 1; //濕度燈打開
speaker=0;
DELAY(5000);
Led_qushi = 0; //濕度燈打開
speaker=1;
DELAY(5000);
} else {
fan=1;
}
}
}
復制代碼
所有資料51hei提供下載:
濕度上限 AT24C02 蜂鳴器 風扇 LCD6022019.1.22.rar
(58.7 KB, 下載次數: 32)
2019-1-22 11:38 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1