資源簡介
三個按鍵設置溫濕度報警上下限,使用DHT11溫濕度傳感器測量環境溫濕度,并在LCD1602上顯示,使用蜂鳴器進行報警,可以斷電保存設置好的溫濕度上下限值。

代碼片段和文件信息
#include? ?????????//調用單片機頭文件
#define?uchar?unsigned?char??//無符號字符型?宏定義 變量范圍0~255
#define?uint??unsigned?int ?//無符號整型?宏定義 變量范圍0~65535
#include
#include?“eeprom52.h“
sbit?beep?=?P1^4;???//蜂鳴器IO口定義
uchar?a_a;
bit?flag_300ms?;
//??按鍵的IO變量的定義
uchar?key_can; ?//按鍵值的變量
uchar?menu_shudu?=?20;??//用來控制連加的速度
uchar?menu_1;????????//菜單設計的變量
uint?t_high?=?30t_low?=?10; //溫度報警參數
uint?s_high?=?30s_low?=?10; //濕度報警參數
uchar?flag_w_bj_enflag_s_bj_en;
bit?flag_lj_en; ?//按鍵連加使能
bit?flag_lj_3_en; ?//按鍵連3次連加后使能?加的數就越大了?
uchar?key_timeflag_value;??????//用做連加的中間變量
bit?key_500ms?;
uchar?flag_clock; ????//溫度報警變量
uchar?flag_fuzi;????????//用做菜單內的初始化的
/***************************************************************
*?名稱?:?delay_1ms()
*?功能?:?延時1ms函數
*?輸入?:?q
*?輸出?:?無
****************************************************************/
void?delay_1ms(uint?q)
{
uint?ij;
for(i=0;i for(j=0;j<120;j++);
}
sbit?dht11=P1^5; ?//溫度傳感器IO口定義
uchar?table_dht11[5]={12345};
/******************把數據保存到單片機內部eeprom中******************/
void?write_eeprom() //保存數據
{
SectorErase(0x2000);
byte_write(0x2000?t_high);
byte_write(0x2001?t_low);
byte_write(0x2002?s_high);
byte_write(0x2003?s_low);
byte_write(0x2055?a_a);
}
?/******************把數據從單片機內部eeprom中讀出來*****************/
void?read_eeprom() ?//讀出保存數據
{
t_high?=?byte_read(0x2000);
t_low??=?byte_read(0x2001);??
s_high?=?byte_read(0x2002);
s_low??=?byte_read(0x2003);
a_a????=?byte_read(0x2055);
}
///**************開機自檢eeprom初始化*****************/
void?init_eeprom() ?////開始初始化保存的數據
{
read_eeprom(); ?//讀出保存數據
if(a_a?!=?2) //新的單片機初始單片機內問eeprom
{
t_high?=?40t_low?=?10;
s_high?=?95s_low?=?10;
a_a?=?2;
write_eeprom(); //保存數據
}
}
#include?“lcd1602.h“
//#include?“menu.h“
/*************定時器0初始化程序***************/
void?time_init() ??
{
EA???=?1; ? ??//開總中斷
TMOD?=?0X01; ??//定時器0、定時器1工作方式1
ET0??=?1; ??//開定時器0中斷?
TR0??=?1; ??//允許定時器0定時
}
/********************獨立按鍵程序*****************/
uchar?key_can; ?//按鍵值
void?key() ?????//獨立按鍵程序
{
static?uchar?key_new;
key_can?=?20;???????????????//按鍵值還原
P3?|=?0xf0;
if((P3?&?0xf0)?!=?0xf0) //按鍵按下
{
delay_1ms(1); ????? //按鍵消抖動
if(((P3?&?0xf0)?!=?0xf0)?&&?(key_new?==?1))
{ //確認是按鍵按下
key_new?=?0;
switch(P3?&?0xf0)
{
case?0xd0:?key_can?=?3;?break; ???//得到k1鍵值
case?0xb0:?key_can?=?2;?break; ???//得到K2鍵值
case?0x70:?key_can?=?1;?break; ???//得到k3鍵值
}
}
}
else?
key_new?=?1;
}
/****************按鍵顯示函數***************/
void?key_with()
{
if(key_can?==?1) ???//設置鍵
{
menu_1?++;
if(menu_1?>?4)
{
menu_1?=?0;
init_1602();??//lcd1602初始化
}
if(menu_1?==?1) ?//初始化顯示
{
write_string(10“?WH:????WL:?????“);
write_string(20“?SH:??%?SL:??%??“);
write_zifu(160xdf); ??//顯示度
write_zifu(1130xdf); ??//顯示度
write_sfm2(14t_high); ??//
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-04-12?22:32??基于51單片機的DHT11溫濕度測量報警系統\
?????文件???????21849??2014-02-25?23:35??基于51單片機的DHT11溫濕度測量報警系統\dht11_1602
?????文件???????19994??2014-02-25?23:35??基于51單片機的DHT11溫濕度測量報警系統\dht11_1602.LST
?????文件???????30333??2014-02-25?23:35??基于51單片機的DHT11溫濕度測量報警系統\dht11_1602.M51
?????文件???????26407??2014-02-25?23:35??基于51單片機的DHT11溫濕度測量報警系統\dht11_1602.OBJ
?????文件????????8451??2014-01-16?19:17??基于51單片機的DHT11溫濕度測量報警系統\dht11_1602.c
?????文件????????5818??2014-02-25?23:35??基于51單片機的DHT11溫濕度測量報警系統\dht11_1602.hex
?????文件??????????52??2014-02-25?23:35??基于51單片機的DHT11溫濕度測量報警系統\dht11_1602.lnp
?????文件?????????210??2015-04-12?22:32??基于51單片機的DHT11溫濕度測量報警系統\dht11_1602.plg
?????文件???????59029??2015-04-12?22:32??基于51單片機的DHT11溫濕度測量報警系統\dht11_1602.uvopt
?????文件???????13243??2012-12-19?16:28??基于51單片機的DHT11溫濕度測量報警系統\dht11_1602.uvproj
?????文件???????60977??2014-09-25?22:39??基于51單片機的DHT11溫濕度測量報警系統\dht11_1602_uvopt.bak
?????文件???????13412??2012-12-17?12:11??基于51單片機的DHT11溫濕度測量報警系統\dht11_1602_uvproj.bak
?????文件????????3047??2014-01-16?19:13??基于51單片機的DHT11溫濕度測量報警系統\eeprom52.h
?????文件????????2424??2014-01-16?19:13??基于51單片機的DHT11溫濕度測量報警系統\lcd1602.h
?????文件???????47009??2019-04-23?11:01??基于51單片機的DHT11溫濕度測量報警系統.rar
?????文件?????????142??2019-04-24?22:02??說明.txt
- 上一篇:使用單片機獨立按鍵實現加減
- 下一篇:初中數學課件打包2
評論
共有 條評論