功能说明: 1.DS1302模块实时显示时间(可通过程序初始化显示时间) 2.DHT11温湿度测量 3.按键设定定时报警时间,并将设定值存储至24C02中(掉电后可恢复之前设定数据) 4.LCD1602显示相关信息
注意事项:
处理器:STC89C51/STC89C52
显示屏:LCD1602
ROM存储:24C02
时间显示:DS1302
温湿度测量:DHT11
按键调整报警时间
相关引脚连线中文注释
#define LCD_DATA P0
sbit RS=P2^7;
sbit RW=P2^6;
sbit EN=P2^5;
sbit key1=P1^5;
sbit key2=P1^6;
sbit key3=P1^7;
sbit SCLK=P1^2;
sbit DSIO=P1^3;
sbit RST=P1^4;
uchar code READ_RTC_ADDR[7] = {0x81, 0x83, 0x85, 0x87, 0x89, 0x8b, 0x8d};
uchar code WRITE_RTC_ADDR[7] = {0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c};
uchar TIME[7] = {0, 0x46, 0x16, 0x08, 0x03, 0x01, 0x21};
uchar warn_hour,real_hour;
sbit dat=P2^2;
uchar DHT11[5],RTflag=0;
uchar FLAG;
sbit SDA=P1^1;
sbit SCL=P1^0;
sbit beep=P2^0;
uchar beep_state=1;
sbit led=P2^1;
主函数代码
void
main()
{
lcd_init();
init_2402();
warn_hour =read_data(0);
while(1)
{
Ds1302ReadTime();
LcdDisplay();
key_scan();
DHT11_5();
dis_str(12,0,"H:");dis_shu(14,0,warn_hour);
dis_str(9,1,"S");dis_shu(10,1,DHT11[0]);
dis_str(13,1,"T");dis_shu(14,1,DHT11[2]);
warn();
}
}
全部资料链接见评论区,有问题请留言~ 作者:amusen 时间:2022.4 祝好!
|