目录
具体实现功能
系统由STC89C52单片机+AT24c02芯片+LCD1602液晶显示屏+继电器模块+按键模块+报警模块构成。
具体实现功能:
1、LCD1602液晶显示,第一行显示当前的温度和湿度,第二行显示相应的冷、热、干、湿;
2、AT24c02芯片掉电存储设置的上下限;
3、四个按键为设置、加、减、确定,实现了温湿度范围的调节;
4、采用温湿度传感器DHT11,温度测量范围0℃--50℃,湿度测量范围20%RH—90%RH;
5、当超过温湿度设置范围时,蜂鸣器响起,相应指示灯闪烁以报警;
6、当温度或湿度超过范围后,报警信号灯点亮同时相应的继电器吸合。
设计介绍
51单片机简介
51单片是一种低功耗、高性能CMOS-8位微控制器,具有8K可编程Flash存储器,使得其为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
51系列单片机具有以下标准功能:
8k字节Flash,512字节RAM,
32位I/O口线,看门狗定时器,
内置4KB EEPROM,
MAX810复位电路,
三个16位定时器/计数器,
一个6向量2级中断结构,
全双工串行口。
另外, 51系列在空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机停止工作,直到下一个中断或硬件复位为止。本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。
设计思路
文献研究法:搜集整理相关研究资料,阅读文献,为研究做准备;
调查研究法:通过调查、分析、具体实验等方法,发现相关存在问题和解决办法;
比较分析法:比较不同设计的具体原理,以及同一类传感器性能的区别,分析系统的研究现状与发展前景;
软硬件设计法:通过软硬件设计实现硬件,最后测试各项功能是否满足要求。
设计内容
原理图(AD19)
本系统原理图设计采用Altium Designer19,具体如图。
程序(Keil5)
本设计利用KEIL5软件实现程序设计,主函数如下:
/********************************************************************
* 名称 : 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");
TH=rdeeprom(0);
Delay1(20);
TL=rdeeprom(1);
Delay1(20);
HH=rdeeprom(2);
Delay1(20);
HL=rdeeprom(3);
Mode=0;
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)
{
Led_jiangwen = 0;
hot=1;
Led_shengwen = 1;
cold=0;
// BJ=1;
}
else if(temperature<TL)
{
Led_shengwen = 0;
cold=1;
Led_jiangwen = 1;
hot=0;
buzz=0;
// BJ=1;
}
else
{
Led_jiangwen=1;
Led_shengwen=1;
hot=0;
cold=0;
buzz=1;
}
if (humidity > HH)
{
Led_qushi = 0;
humid=1;
Led_jiashi = 1;
dry=0;
// BJ=1;
}
else if(humidity<HL)
{
Led_jiashi = 0;
dry=1;
Led_qushi = 1;
humid=0;
// BJ=1;
}
else
{
Led_qushi=1;
Led_jiashi=1;
humid=0;
dry=0;
}
}
else
{
Led_shengwen=1;
Led_jiangwen=1;
Led_jiashi=1;
Led_qushi=1;
hot=0;
cold=0;
humid=0;
dry=0;
BJ=0;
}
}
display();
KEY();
}
}
代码运行截图:
仿真实现(protues8.7)
本设计利用protues8.7软件实现仿真设计。
全部资料
全部资料包括程序(注释)、AD原理图、PCB源文件、protues仿真、参考论文、程序讲解、仿真讲解、仿真视频、原理图讲解、资料使用介绍等,全网最全!!
资料获取:【腾讯文档】24-基于51单片机的温湿度检测及调节系统
https://docs.qq.com/doc/DSVVQeUprYUtYRnVx