基于51单片机DHT11 加湿器系统设计

毕设帮助、开题指导、技术解答(有偿)见文末。

目录

摘要

一、硬件方案

二、设计功能

三、实物图

四、原理图

五、PCB图 

六、Proteus仿真

七、程序

部分代码

八、资料包括


摘要

本次设计是采用MSC-51系列单片机中的AT89S51和DHT11构成的低成本的温湿度的检测控制系统单片机AT89S51是一款低消耗、高性能的CMOS8位单片机,由于它强大的功能和低价位,因此在很多领域都是用它。DHT11温湿度传感器是一款含有已校准数字输出的温湿度复合传感器,传感器包括一个电阻式感湿原件和一个NTC测温元件,该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。设计主要包括硬件电路的设计和系统软件的设计。

硬件电路主要包括单片机、温湿度传感器、显示模块、报警器以及控制设备5部分。其中DHT11温湿度传感器及1602字符型液晶模块构成系统显示模块;测温湿度控制电路由温湿度传感器和预设温度值比较报警电路组成;用户根据需要预先输入预设值,当实际测量的温湿度不符合预设的温湿度标准时,发出报警信号(蜂鸣器蜂鸣),启动相应控制。

软件部分包括了主程序、显示子程序、测温湿度子程序。   

  

关键词:AT89S51;DHT11;温湿度传感器

一、硬件方案

51单片机+最小系统+DHT11湿度传感器+LCD1602液晶+加湿器+继电器+按键+蜂鸣器设计而成。

二、设计功能

1.本设计基于STC89C51/52(与AT89S51/52、AT89C51/52通用)

2.设计自带单片机上电复位电路、手动复位电路(复位按键)、晶振电路(给单片机提供时钟周期)。

3.采集LCD1602液晶显示,第一行显示环境湿度值,第二行显示湿度的上下限值。

4.当DHT11传感器测出来的湿度小于设定的湿度下限值时继电器工作控制加湿器工作加湿,当大于湿度上限值时继电器关闭加湿器停止加湿。

5.当湿度小于设置的湿度下限值时蜂鸣器和指示灯产生声光报警提示,当大于下限值时会自动取消报警,当产生报警时可以手动取消报警,但不会影响加湿器的工作。

6.可通过按键设置湿度的上下限报警值并具有掉电保存功能,保存在STC单片机内部,上电无需重新设置参数。

7.具有手动模式,当湿度在上下限之间时,可以手动打开和关闭加湿器。

三、实物图

基于51单片机DHT11 加湿器系统设计_第1张图片

四、原理图

基于51单片机DHT11 加湿器系统设计_第2张图片



五、PCB图 

基于51单片机DHT11 加湿器系统设计_第3张图片

六、Proteus仿真

基于51单片机DHT11 加湿器系统设计_第4张图片

七、程序

基于51单片机DHT11 加湿器系统设计_第5张图片

部分代码

 LCDEN=1;
  LCDdelay(5);
  LCDEN=0;
}
//写数据
void write_data(uchar date)
{
  LCDRS=1;
//	LCD_WriteData(date);
  P0=date;
  LCDdelay(5);
  LCDEN=1;
  LCDdelay(5);
  LCDEN=0;
}
 
/*------------------------------------------------
              选择写入位置
------------------------------------------------*/
void SelectPosition(unsigned char x,unsigned char y) 
{     
	if (x == 0) 
	{     
		write_com(0x80 + y);     //表示第一行
	}
	else 
	{      
		write_com(0xC0 + y);      //表示第二行
	}        
}
/*------------------------------------------------
              写入字符串函数
------------------------------------------------*/
void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) 
{     
	SelectPosition(x,y) ;
	while (*s) 
	{     
		write_data( *s);     
		s ++;     
	}
}
//========================================================================
// 函数: void LCD_Write_Char(u8 x,u8 y,u16 s,u8 l)
// 应用: LCD_Write_Char(0,1,366,4) ;
// 描述: 在第0行第一个字节位置显示366的后4位,显示结果为 0366
// 参数: x:行,y:列,s:要显示的字,l:显示的位数
// 返回: none.
// 版本: VER1.0
// 日期: 2013-4-1
// 备注: 最大显示65535
//========================================================================
void LCD_Write_Char(u8 x,u8 y,u16 s,u8 l) 
{     
	SelectPosition(x,y) ;
 
	if(l>=5)
		write_data(0x30+s/10000%10);	//万位
	if(l>=4)
		write_data(0x30+s/1000%10);		//千位
	if(l>=3)
		write_data(0x30+s/100%10);		//百位
	if(l>=2)
		write_data(0x30+s/10%10);			//十位
	if(l>=1)
		write_data(0x30+s%10);		//个位
 
}
/*1602指令简介
  write_com(0x38);//屏幕初始化
  write_com(0x0c);//打开显示 无光标 无光标闪烁
  write_com(0x0d);//打开显示 阴影闪烁
  write_com(0x0d);//打开显示 阴影闪烁
*/
//1602初始化
void Init1602()
{
  uchar i=0;
  write_com(0x38);//屏幕初始化
  write_com(0x0c);//打开显示 无光标 无光标闪烁

八、资料包括

基于51单片机DHT11 加湿器系统设计_第6张图片

需要完整的资料可以点击下面的名片,找我要资源压缩包的百度网盘下载地址及提取码。

你可能感兴趣的:(51单片机,嵌入式硬件,单片机)