1、主要功能

该系统由AT89C51单片机+LCD1602模块+DHT11温湿度传感器模块+DS1302时间模块+电机驱动模块+报警模块构成。

可实现功能:
1、LCD1602显示温度+湿度+时间
2、DHT11采集温湿度数据
3、DS1302采集时间数据
4、通过按键来调整温湿度上下限报警值
5、超出限制时蜂鸣器和LED光电报警,对应继电器驱动电机转动,进行加热/降温/除湿/加湿

2、仿真

protues 仿真使用的是8.10版本,由于该软件版本迭代原因,不能确保其他版本软件能够正常运行,请安装好对应软件(版本一致或者高于这个版本都可以)

在这里插入图片描述

3、程序代码

只是放上来了部分代码,仅供参考。

在这里插入图片描述

/******************************************************
** 函数名:key_scan
** 描述  :按键扫描
** 输入  :无
** 输出  :无
******************************************************/
void key_scan(void)
{
	static unsigned char key_in_flag = 0;//按键按下标志
	unsigned char key_l;//存储扫描到行列值。
	key_value = 20;//按键值清除
	if((P3 & 0x0f) != 0x0f)//按键按下
	{
		delay_ms(1);//按键消抖动
		if(((P3 & 0x0f) != 0x0f) && (key_in_flag == 1))
		{
			key_in_flag = 0;//松手检测防止一直触发
			P3 = 0x0f;
            //delay_ms(1);//按键消抖动
			key_l = P3;//扫描得到按键值
			switch(key_l)
			{
				//获取按键值
				case 0x0e:
				{
					key_value = 1;
				}
				break;
				case 0x0d:
				{
					key_value = 2;
				}
				break;
				case 0x0b:
				{
					key_value = 3;
				}
				break;
				//case 0x70:
				//break;
			}
		}
	}
	else
	{
		key_in_flag = 1;//(按键松开标志)
	}

}
/*******************************************************************************
* 函 数 名         : LcdWriteCom
* 函数功能		   : 向LCD写入一个字节的命令
* 输    入         : u8com
* 输    出         : 无
*******************************************************************************/
void lcd_wri_com(unsigned char com)	  //写入命令
{
	E = 0;	 //使能清零
	RS = 0;	 //选择写入命令
	RW = 0;	 //选择写入

	DB = com;
	delay_ms(1);

	E = 1;	 //写入时序
	delay_ms(5);
	E = 0;
}
void main(void)
{
	 get_1302(time_1302);//获取时间
	 change(); //时间转换
	 init_all_hardware();//初始化硬件,IO和定时器
	 while(1)
	 {
		 get_1302(time_1302);//获取时间
		 change(); //时间转换
		 if(temp ==0)
		 {
			 wri_string(1,0,times);//初始化显示
		 }
		 key_scan();//按键扫描
		 key_service();//按键服务处理函数
		 time_service();//时间处理函数
	 }
}

4、原理图

在这里插入图片描述

5、参考报告

内含5k字,21页的相关报告一份,纯手打,内容一致

在这里插入图片描述

6、常见问题汇总

里面包含了我对各个模块的详细解析,可以结合代码一起理解。如果正巧老师问题多,这个可以帮到你哦。(不定时更新,讲解模块也会越来越多)

在这里插入图片描述

7、资源获取

在这里插入图片描述

本项目包含的所有文件都可以在公z号:今天也不想打工,回复“51温湿度检测”获取!

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐