目录
具体实现功能
具体功能:
(1)DHT22温湿度传感器实时检测当前温湿度值,并用LCD1602显示;
(2)可按键设置温湿度报警值,超过报警值蜂鸣器响,相应的指示灯亮;
(3)可通过串口实时传输温湿度值。

仿真演示视频:
146-基于51单片机的DHT22温湿度检测及串口传输系统
设计介绍

51单片机简介
51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。
本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。

资料内容
仿真实现(protues8.7)
本设计利用protues8.7软件实现仿真设计,具体如图。

程序(Keil5)
本设计利用KEIL5软件实现程序设计。
主函数如下:
///////////////////////////////////////////////////
/********************************************************************
* 名称 : Main()
* 功能 : 主函数
***********************************************************************/
void main()
{
UsartInit();
L1602_init();
L1602_string(1,1," Temp: . C ");
L1602_string(2,1," Humi: . % ");
bit_flag=0;
while(1)
{
RH();
bit_flag=U8T_data_H&0x80;
if(bit_flag)
{
temperature = ((U8T_data_H& 0x7F)<<8)+U8T_data_L; //读出温湿度,只取整数部分
}
else
{
temperature = (U8T_data_H<<8)+U8T_data_L; //读出温湿度,只取整数部分
}
humidity = (U8RH_data_H<<8)+U8RH_data_L;
if ((temperature/10>TH)&&(bit_flag==0))
{
Led1 = 0;
}
else
{
Led1 = 1;
}
if((temperature/10<TL)||(bit_flag==1))
{
Led2 = 0;
}
else
{
Led2 = 1;
}
if ((humidity/10) > HH)
{
Led3 = 0;
Led4 = 1;
}
else if((humidity/10) <HL)
{
Led4 = 0;
Led3 = 1;
}
else
{
Led3=1;
Led4=1;
}
if(((temperature/10) > TH)||((temperature/10)<TL)||((humidity/10) > HH)||((humidity/10) <HL)||(bit_flag==1))
{
buzz=0;
}
else
{
buzz=1;
}
display();
KEY();
}
}
程序运行结果如图:

全部内容
全部资料包括程序(keil5)、protues仿真(protues8.7)、设计说明、答辩PPT、开发资料、资料使用介绍、仿真视频、最小系统介绍视频等。
