APP下载

基于AT89C51 的智能加湿器的设计与仿真

2023-02-23王莉陆安江

电子设计工程 2023年4期
关键词:加湿器低电平温湿度

王莉,陆安江

(贵州大学大数据与信息工程学院,贵州贵阳 550025)

随着科学技术的快速发展,人们的生活水平也逐步提高。人们更注重生活品质,加湿器的出现满足了人们创造生活空间相对湿度的条件[1]。在日常生活和工业生产中,加湿器控制湿度时要准确且有效,同时还要确保其安全性能[2]。常规加湿器无法检测室内的温湿度,调节湿度的功能比较差,缺乏对水位的检测管理且容易出现加湿过度和干烧的情况,需要手动操作控制,无法自动加湿,还存在一系列安全隐患。由于空调等供暖或者制冷设施会导致皮肤缺水引起干燥,还易引发感冒、咳嗽等症状,在工业生产中对产品的质量也会有所影响,因此需要一款加湿器使空气温湿度平衡,以呵护人体健康,确保产品质量。文中基于AT89C51 单片机设计的智能加湿器,可以根据用户的实际需求进行灵活调节,同时兼具实用性强、成本低、安全性高等优点,尤为重要的是,为家庭及工厂提供有效的湿度检测及智能控制,使得人们的生活更加便利。

1 系统硬件设计

1.1 硬件设计的整体思路

该设计以AT89C51 单片机为智能温湿度控制系统的核心,实时测量室内温湿度,最佳相对湿度可以根据用户的需要设置,并且能够根据环境温湿度的变化进行自动调节,使得设定的温湿度基本保持不变。温湿度传感器DHT11 采集温湿度信号,然后转换为数字信号,并通过单片机AT89C51 对测得的数据进行分析和处理,与测得值比较,控制加湿功能,并在LCD1602 上显示当前以及设定的温湿度数值,当前温湿度低于最佳相对湿度值时则开始加湿,高于最佳相对湿度时则停止加湿。外加时钟电路、键盘电路和报警电路,除了可以根据用户需求设置最佳相对湿度值外,还可以通过按键切换它的工作模式。加湿器的加湿功能启动后,绿色LED 灯亮时代表开始加湿。在整个过程中,如果输入端为“水位低”信号,则与水位检测相配置的蜂鸣器报警,加湿器立即停止加湿以防干烧。模式选择、水位加减和湿度加减通过按键进行设定,操作方便,同时用户可通过指示灯显示查阅各状态。

把显示模块中单片机的P0口与LCD 的数据输入口D1-D7 连接,RW 接地表示写入数据,LCD 的数据写入设计为E 接高脉冲时读取信息,下降沿时开始执行指令。RS 接高电平和低电平时分别表示选择写数据操作和选择写指令操作,传感器上的DATA 口连接在单片机的P2.4 上,串行接口采用单总线数据格式,对数据采用双向传输,高位先输出,一次可完整输出40 bit 数据,单片机对前八位湿度整数的部分进行读取[3]。系统总体方案的整体框图如图1 所示。

图1 系统整体框图

1.2 单片机模块

该系统采用AT89C51 作为控制电路的核心器件。AT89C51 单片机是ATMEL 公司出品的一款与MCS51兼容的单片机,提供4 kB的Flash存储器,128字节内部RAM,32 个可编程I/O 线,2 个16 位定时器,一个中断系统,一个串行通信口,片内震荡器和时钟电路[4-5]。AT89C51 内部含有高增益反相放大器,可以构成振荡器,放大器的输入端和输出端引脚分别为RXD 和TXD。时钟产生有内部方式和外部方式两种,在RXD 和TXD 引脚上可外接定时元件,定时元件通常采用石英晶体和电容组成的并联谐振回路,内部振荡器的时钟电路产生自激振荡。晶体振荡频率范围为1.2~12 MHz,通过微调频率可以调节电容值的大小,范围为5~30 pF,工作电压在4.5~5.5 V 之间。该设计采用12 MHz 晶振,30 pF 电容,5 V 供电。

单片机首先要进行复位操作,把PC 初始化为0000H,单片机执行程序从0000H 单元开始,当程序由于运行或操作出现错误时,系统会变为死锁状态,按复位键重新启动即可解决问题。高电平对于复位信号有效(超过2 μs 可完成复位操作),其有效时间应持续24 个振荡周期以上[6],单片机的输入端是RST引脚,使用频率为12 MHz 的晶振。

1.3 传感器模块

该系统采用的DHT11 是可以同时检测温度和湿度的数字传感器,通过单总线传输协议,传感器的数据被单片机以8 位二进制的编码方式读取。DHT11 的电源电压为3.0~5.5 V,温湿度测量值的范围分别为0~50 ℃、20%~90%RH[7-8]。DHT11 具有灵敏度高、线性好、功能全等优点,且功耗小、体积小,连接方法简单[9]。DHT11 采用单总线数据格式和微处理器保持通信和同步,接口简单且无需校准。一次通信时间约4 ms,分辨率为8 bit,足以满足日常环境温湿度的检测要求。在测量湿度时,为了减少周围温度变化的影响,尽可能在温度相对稳定的环境中检测湿度。

DHT11 内部包含NTC 测温元件和电阻式测湿元件各一个,可与高性能的8 位单片机相连,和单片机等微处理器构成简单的电路可以实时检测室内相对温湿度。因此DHT11 和单片机之间仅需一个I/O口,利用简单的单总线就可以实现通信,节省资源并且减少了对单片机的I/O 口的占用。其数据编码方式为8 位二进制,输出为数字信号,可减少单片机预处理信号的负担和用户工作量。DHT11 一次完整的数据传输为40 bit,其中湿度整数数据、温度小数数据、校验的数据格式、湿度小数数据、温度整数数据均为8 位,先输出高位。在传送数据无误时,8 位的校验数据和湿度整数数据是相同的。DHT11 数字温湿度传感器在上电后需等待1 s 以上,不稳定状态期间,不向AT89C51 单片机发送任何指令[10]。DHT11通过DATA 引脚与微处理器之间进行通信和同步,通过DATA 实现,单次通信时间约为4 ms。温湿度传感器原理图如图2 所示。

图2 温湿度传感器原理图

1.4 液晶显示模块

该设计显示部分所采用的LCD1602 液晶显示器是字符型液晶显示模块,能够显示字母、数字以及符号[11]。LCD1602 液晶显示器为电路中的显示部分,可预设最佳相对湿度并显示室内的湿度。LCD1602可以显示2 行共16 个字符,通常有14 条(无背光)或16 条(带背光)引脚线[12],有8 位数据线总线D0-D7和三个控制端口R/W、RS、EN[13],工作电压为5 V,工作电流为2.0 mA,并且可以调节字符对比度。

液晶显示器的D0-D7 口和单片机的双向I/O 口P1 口相连,它是8 位漏极开路型,常用于地址/数据总线复用口。当它作为输出口时,每个引脚可吸收8TTL 门电流,逻辑门电路可以被驱动。当P1 口的管脚写1 时,高阻抗输入端,访问程序存储器时和外部数据存储器时,内部上拉电阻会被激活,作为数据/地址的第八位。由于需要外接上拉电阻,所以需要排阻连接到单片机AT89C51 上。LCD1602 液晶显示器与单片机连接的原理图如图3 所示。

图3 液晶显示器与单片机连接原理图

1.5 报警电路模块

报警电路采用有源蜂鸣器,其驱动发声简单,通电就能持续发声。蜂鸣器的发声原理是电流通过电磁线圈时产生磁场,从而驱动振动膜发声,因此需要一定的电流。在水位按键将低水位信号传给单片机后,蜂鸣器报警以防干烧。由于单片机I/O 引脚输出电流较小,TTL 电平的输出几乎驱动不了蜂鸣器,因此添加一个PNP 型三极管构成电流放大电路驱动蜂鸣器。该报警电路由一个三极管和一个蜂鸣器组成,当单片机检测到水位低时,则三极管导通,蜂鸣器报警,如果水位正常则三极管截止。

1.6 键盘电路模块

键盘分为独立式按键和矩阵式按键[14]。由于该设计需要的按键数目较少,故选择独立式按键。按键与单片机之间的引脚,在按键弹起时处于高电平,在按键按下时处于低电平。湿度键K1、K2 分别用于增加、降低设定的数值,K3、K4 进行水位高低的操作。

2 系统软件设计

2.1 主程序设计

系统的程序设计包括温度检测模块、按键输入模块、显示模块、水位检测模块。系统上电初始化后,读取水位信号,判断是否蜂鸣报警,传感器读取温湿度并将数据送至单片机进行数据比对,如果输入水位低信号则蜂鸣报警且不再加湿。主程序流程图如图4 所示。

图4 主流程图

2.2 传感器模块设计

根据传感器的通信协议,首先由单片机的I/O 口产生激发信号,然后传感器控制数据线,单片机通过while 语句不间断地检查I/O 口的高低电平,得到准确的传输数据。

对湿度进行采集时,首先由P2.3 输出低电平,延时18 ms 后P2.3 输出高电平,延时40 ms 后,读P2.3引脚是否为低电平,若不是则继续读取,若是就开始执行判断从机80 μs 高电平是否结束,没结束就接着判断,若结束则接收单片机数据,并以十进制的方式存入到指定的数组中,数据采集结束后保持且持续进行。传感器模块的软件流程图如图5 所示。

图5 DHT11传感器模块流程图

2.3 液晶显示模块设计

在调用液晶显示模块时要先确认模块的忙标志为低电平(即不忙),才可以执行指令,而高电平时指令失效。首先将LCD1602 初始化,然后执行延时程序,等待数据采集,演示完成后先写入一些指令和显示字符的地址,单片机再向LCD 发送数据(即写数据),数据发送完成后,LCD 读取写入的地址并显示,最后返回。

3 Proteus仿真

设计采用的画图软件是EDA 软件仿真平台的Proteus,具有电路分析和系统仿真功能[15]。在编译方面,支持Keil 等多种编辑器,系统的原理图结合外围电路输入进行编程,运行以后可得到仿真效果。因其具有完备的电子开发环境,所以不需要借助虚拟测量工具,就可以判断系统的软硬件性能,从而优化了单片机的开发流程。Proteus 进行仿真调试的优点是弥补了元器件的缺乏,大幅简化了硬件的调试工作,开发成本低且效率高。

在Proteus 绘制完原理图后,载入到Keil[16-17]软件编译好的HEX 文件中,仿真运行后就可以看到实物的模拟运行状态和过程,可以检验出设计是否正确。在仿真运行过程中,通过每个接口的引脚旁边指示灯颜色可以比较直观地判断各个管脚的高低电平,蓝色和红色分别为低电平和高电平。该设计的部分程序如下。

在使用Proteus 仿真时通过单片机将DHT11 传感器采集的数据写入LCD1602 显示。上电之后加湿器默认是自动模式,最佳相对湿度默认为60%,此时湿度检测模块测得当前温湿度分别为30 ℃和26%,低于设置的最佳湿度值,从上电后的仿真图可以看出,绿色LED 灯变亮,加湿器开始加湿。当湿度相对于设置的最佳湿度过高5%和水位相对于设置的水位过低5%时报警电路均会进行报警,可以有效地防止加湿器的干烧和过度加湿。该设计最佳湿度可手动设置,且在任何状态下,只要输入水位低信号,就能报警并停止加湿,实现了智能防干烧功能。上电之后的仿真界面如图6 所示。

图6 仿真界面

4 结束语

文中设计的智能加湿器经过Proteus 仿真后,系统能可靠稳定运行,能够实现自动化的工作方式,而智能化的工作方式可以使电路更加节能,绿色环保的同时也确保了加湿器的安全性能。该设计也存在有待改善的地方,如没有精确的温度检测系统,不能根据环境的温度智能地调节所需要的湿度。但由于电路设计简单高效,器件成本低,仍具有比较好的市场前景。

猜你喜欢

加湿器低电平温湿度
Humi智能加湿器
基于AT89C51的数字型蚕用温湿度计的设计
基于DSP的多路温湿度监测系统
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图
加湿器帮你做个水润美人
基于温湿度控制的天气预测装置
浅谈物理电路与数字电路
蒸发冷却温湿度独立控制空调系统的应用
少了这七款加湿器,怎么过夏天?
最环保的扑克版空气加湿器