基于51单片机温湿度检测报警系统

目录

具体实现功能

设计介绍

51单片机简介

设计思路

设计内容

原理图(AD19)

​编辑

程序(Keil5)

仿真实现(protues8.7)

全部资料


具体实现功能

由STC89C51/52单片机+DHT11温湿度传感器+LCD1602液晶显示屏+按键模块+报警模块构成。

具体功能:

1、LCD1602液晶显示,第一行显示当前的温度和湿度,第二行显示相应的冷、热、干、湿;

2、四个按键为设置、加、减、确定,用于温湿度报警值的设置;

3、采用温湿度传感器DHT11,温度测量范围0℃-50℃,湿度测量范围20%RH—90%RH;

4、当超过温湿度设置范围时,蜂鸣器响起,相应指示灯亮。

设计介绍

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");
    
   
	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;
			//		BJ=1;
				}
				else if(temperature<TL)
				{
					Led2 = 0;
					cold=1;
					Led1 = 1;
					hot=0;
					buzz=0;
			//		BJ=1;
				}			      
				else
				{
					Led1=1;
					Led2=1;
					hot=0;
					cold=0;
					buzz=1;
				}
				if (humidity > HH)
				{
					Led3 = 0;
					humid=1;
					Led4 = 1;
					dry=0;
			//		BJ=1;
				}
				else if(humidity<HL)
				{
					Led4 = 0;
					dry=1;
					Led3 = 1;
					humid=0;
			//		BJ=1;
				}		
				else
				{
					Led3=1;
					Led4=1;
					humid=0;
					dry=0;
				}	
			 }
			 else
			 {
			 	Led2=1;
				Led1=1;
				Led4=1;
				Led3=1;
				hot=0;
				cold=0;
				humid=0;
				dry=0;
				BJ=0;
			 }	
		}
		display();
		KEY();
	}	
}

代码运行截图:

仿真实现(protues8.7)

本设计利用protues8.7软件实现仿真设计。

全部资料

全部资料包括原理图和PCB源文件(AD19)、程序(Keil5)、protues仿真(protues8.7)、设计报告(仅供参考,非一对一)、仿真视频、开发资料、实物图、实物讲解、资料使用介绍视频、仿真讲解视频、原理图讲解视频、程序讲解视频、仿真视频、单片机最小系统介绍等,全网最全!

资料获取:
https://docs.qq.com/doc/DSVFaRnVTekJ2UWNR

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值