基于51单片机温湿度检测报警系统(Proteus仿真+Keil源码+设计文档+原理图等)附下载链接!DHT11
提供对应的Proteus仿真电路图,Keil程序源码(C语言),原理图,模块资料、元件清单、程序流程图等电子资料参考学习,文末附全部资料的下载链接。
01设计要求
设计一个基于51单片机温湿度检测报警系统:
功能1:DHT11采集环境温湿度;
功能2:使用LCD1602实时显示温湿度;
功能3:设计按键单元,可调节温湿度上下限阈值;
功能4:设计报警单元,实现对超限温湿度监控报警。
02系统概述
系统通过SHT11温湿度传感器感应周围环境的温度和湿度,利用51单片机对采样到的温湿度数据进行读取处理,并传输到LCD1602液晶实时显示。
此外,用户还可通过按键对温湿度上下限阈值进行设定,超出阈值会报警。
03Proteus仿真

04示例代码
#include <reg52.h>
#include <intrins.h>
// 引脚定义
sbit DHT11 = P1^2;
sbit Key_TU = P3^2; sbit Key_TD = P3^3;
sbit Key_HU = P3^4; sbit Key_HD = P3^5;
sbit Led_Jiangwen = P1^5; sbit Led_Qushi = P1^4;
sbit Buzz = P2^0;
sbit I2C_SCL = P1^0; sbit I2C_SDA = P1^1;
unsigned char temp, humi;
unsigned char AlarmTH, AlarmHH;
// 报警判断逻辑
void AlarmJudge(void)
{
Led_Jiangwen = (temp > AlarmTH) ? 0 : 1;
Led_Qushi = (humi > AlarmHH) ? 0 : 1;
if(Led_Jiangwen==0 || Led_Qushi==0)
{
Buzz=0; DelayMs(50); Buzz=1; DelayMs(50);
Buzz=0; DelayMs(50); Buzz=1; DelayMs(50);
}
}
// 按键扫描+阈值存储
void KeyScanf(void)
{
if(Key_TU==0 && AlarmTH<99){ AlarmTH++; SetLcdCursor(0,14); ShowLcdNum(AlarmTH); DelayMs(350); }
if(Key_TD==0 && AlarmTH>0){ AlarmTH--; SetLcdCursor(0,14); ShowLcdNum(AlarmTH); DelayMs(350); }
if(Key_HU==0 && AlarmHH<99){ AlarmHH++; SetLcdCursor(1,14); ShowLcdNum(AlarmHH); DelayMs(350); }
if(Key_HD==0 && AlarmHH>0){ AlarmHH--; SetLcdCursor(1,14); ShowLcdNum(AlarmHH); DelayMs(350); }
WriteE2PROM(AlarmTH,0x01);
WriteE2PROM(AlarmHH,0x02);
}
// 主程序整体业务流程
void main(void)
{
unsigned int i;
// 1. 外设初始化
LcdInit();
DelayMs(2000);
// 2. 上电读取EEPROM保存的报警阈值,异常给默认值
AlarmTH = ReadE2PROM(0x01);
AlarmHH = ReadE2PROM(0x02);
if(AlarmTH<=0 || AlarmTH>100) AlarmTH=40;
if(AlarmHH<=0 || AlarmHH>100) AlarmHH=80;
SetLcdCursor(0,14); ShowLcdNum(AlarmTH);
SetLcdCursor(1,14); ShowLcdNum(AlarmHH);
// 3. 主循环:采集→显示→报警→循环扫描按键
while(1)
{
ReadDhtData();
SetLcdCursor(0,5); ShowLcdNum(temp);
SetLcdCursor(1,5); ShowLcdNum(humi);
AlarmJudge();
for(i=0;i<400;i++){ KeyScanf(); DelayMs(1); }
}
}
05原理图

注:
源码使用Keil4或Keil5打开
仿真使用的是Proteus8.13及以上版本,版本过低可能会打不开。
06资料获取
1)项目完整资料获取链接:
2)Keil、Proteus各个版本安装包:

浙公网安备 33010602011771号