具体实现功能:
由STC89C51/52单片机+DHT11温湿度传感器+LCD1602液晶显示屏+按键模块+报警模块构成。
具体功能:
1、LCD1602液晶显示,第一行显示当前的温度和湿度,第二行显示相应的冷、热、干、湿;
2、四个按键为设置、加、减、确定,用于温湿度报警值的设置;
3、采用温湿度传感器DHT11,温度测量范围0℃-50℃,湿度测量范围20%RH—90%RH;
4、当超过温湿度设置范围时,蜂鸣器响起,相应指示灯亮。

仿真演示视频(实物功能和仿真类似):
设计介绍

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

设计方案
设计方案如下:
DHT11检测空气中的温度值、湿度值,利用单片机进行数据处理后通过LCD1602实时显示,并根据按键设定的报警阈值进行报警处理。
单片机类设计论文参考模板:
毕设无忧|单片机类毕设论文模板
资料内容
原理图和PCB(AD19)
本系统原理图和PCB设计采用Altium Designer19,具体如图。
注1:请使用Altium Designer19直接打开资料中的工程文件(资料中已说明打开方式),若要求使用其他版本软件,请谨慎购买!
注2:此设计需按照原理图制作实物,不可直接烧录到任何开发板中运行(需要修改程序)!


Altium Designer19软件安装包下载链接:
Altium Designer19安装破解教程(内附安装包)
51单片机常用元器件封装下载链接:
资料分享|51单片机常用元器件封装库
Altium Designer19教程:
AD19简易教程(原理图的绘制)
实用技巧|AD19快捷键大全
仿真实现(protues8.7)
本设计利用protues8.7软件实现仿真设计,具体如图。
注1:请使用protues8.7直接打开资料中的工程文件(资料中已说明打开方式),若要求使用其他版本软件,请谨慎购买!
注2:由于仿真软件限制,仿真设计和实物设计无法百分百对应!!

protues8.7软件资料:
proteus8.7安装及破解教程(内附安装包)
若仿真中遇到问题,请参照以下文章解决:
protues仿真常见问题解决方案
Protues8.7简易教程
程序(Keil5)
本设计利用KEIL5软件实现程序设计。
注:请使用KEIL C51直接打开资料中的工程文件(资料中已说明打开方式),若要求使用其他版本软件,请谨慎购买!!
主程序如下:
/********************************************************************
* 名称 : Main()
* 功能 : 主函数
***********************************************************************/
void main()
{
uint i, j, testnum;
EA = 0;
Timer0_Init();
Data_Init();
EA = 1;
L1602_init();
L1602_string(1,1," Welcome to T&H ");
L1602_string(2,1," Control System!");
for (i=0;i<1000;i++)
for (j=0;j<1000;j++)
{;}
L1602_string(1,1," ");
L1602_string(2,1," ");
L1602_string(1,1,"Tem: C Hum: %");
L1602_string(2,1,"Good environment")
while(1)
{
if (FlagStartRH == 1) //温湿度转换标志检查
{
TR0 = 0;
testnum = RH();
FlagStartRH = 0;
TR0 = 1;
humidity = U8RH_data_H; //读出温湿度,只取整数部分
temperature = U8T_data_H;
if(Mode==0) //温湿度控制
{
if (temperature > TH)
{
Led1 = 0;
hot=1;
Led2 = 1;
cold=0;
}
else if(temperature HH)
{
Led3 = 0;
humid=1;
Led4 = 1;
dry=0;
}
else if(humidity
程序运行结果如图:

审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !