基于单片机的智能加湿器设计
开始读取显示信息,并在信号电平跳变到下降沿的时候执行指令[4]。温湿度传感器连接到单片机的P1.2脚,它采用的数据传输格式是单总线格式,可以单次输出高达40位的数据,此次设计只显示温度和湿度的整数部分,因此只读取整个数据的八位湿度整数部分与八位温度整数部分。
选择的具体实施方案;系统具备自动加湿和手动加湿两种模式,用户可以根据自身需要来选择,且能够手动更改相对湿度的最优值;单片机通过温湿度传感器检测空气中的温度和湿度数据,并将测得的数据送入主控模块,主控模块可以将测得的实时湿度与用户设计的最佳相对湿度进行对比,以此来决定是否需要加湿;主控模块可以根据水位的高低来判断是否需要报警,当需要报警时,主控模块不但控制报警模块发出报警信号,而且控制加湿器关闭加湿;运用液晶显示器显示出室内空气的实时温度和湿度,且将相对湿度的最优值显示出来;利用LED灯演示加湿和水位高低。
2.2 单片机模块
2.2.1 单片机介绍
本次设计的系统运用的中心控制元件是STC89C52单片机,STC89C52是深圳宏晶科技公司开发、TSMC公司生产的一种增强8051内核单片。其采用了基于Flash的在线编程技术,在对单片机编程写软件时无需采用专用编程器,可以通过PC直接对STC系列单片机进行编程,使单片机应用系统的开发变得更加简单[7]。STC系列单片机性能优秀,其编程十分方便,非常适合初学者使用,最重要的是它比较低廉。该芯片具备8 bit CPU与在线可编程Flash,应用该芯片的嵌入式控制系统变得更加高效、流畅。STC系列单片机的正常工作电压为3.3V~5.5V,如图2.2是STC89C52的实物图。
图2.2 STC89C52实物图
6
基于单片机的智能加湿器设计
STC单片机产品种类十分繁多,现有超过百种的单片机。STC单片机按照工作速度和内部配置的差异,分为许多系列的产品。根据运行速度能够分为12T/6T和1T系列产品。所谓1T是指单片机运行一个机器周期只需要一个时钟周期,运行速度大大加快。STC89、STC90和STC11/10系列属于基本配置,而STC12/15系列产品增加了PWM、A/D和SPI等接口模块。每个系列产品的差异主要是片内资源数量上的差异。在单片机选型时,应该根据控制的实际需求,选择合适的单片机,即单片内部资源要尽量满足控制系统要求,而减少外部接口电路,保证单片机应用系统的高可靠性和高性价比。我们现在使用比较的多的是STC89C51/STC89C52等。如图2.3是STC89C52的管脚分布图。
图2.3 STC89C52管脚图
单片机是一个功能很强大的芯片,在此芯片上人们把计算机的一些主要组成部件都集中起来,如中央处理器、定时/计数器和I/0接口电路等部件,同时集成在一个小小的芯片上,可以说单片机就是一个微型化的计算机。所以,想拥有一个单片机控制系统的话,我们只需要为单片机添加适当的软件及外部设备。
2.2.2 单片机的特点
(1)开发周期短,易于生产,性价比较高。
(2)芯片更加微型化,抗干扰能力很强,可靠性能良好。 (3)功能完善,接口多。
(4)低功耗、低电压。一般在5~3V的电源电压范围内单片机都可以正常工作,1~2V是其工作的最低电压,低于此电压后单片机就不再工作。
7
基于单片机的智能加湿器设计
(5)总线多样,易于扩展。单片机的外部结构采用的是三大总线结构,运用此结构能够更加方便的对应用系统功能进行扩展,使的开发应用系统变得更加方便、快捷。外部总线增加I2C和SPI串行总线,应用者可以根据自己的需求进行扩展[5]。
C52单片机的主要功能特性如表2.1所示:
表2.1 STC89C52功能特性表
主要功能特性 可应用MCS51的指令编译 32个双向I/O口 看门狗定时器 3个16位定时器/计数器 1个6向量2级中断结构 8K可编译Flash ROM 512字节RAM 内置4K BEEPROM MAX810 全双工串行口 系统的掉电或空闲模式低功耗 可以设置休眠和唤醒功能 在实际电路中用到了STC89C52的部分引脚,其主要的引脚和功能为: (1)电源管脚(2根) VCC:正极,接+5V电源。 GND:负极,接地线。 (2)外接晶振管脚(2根) XTALl:时钟电路的输入脚。 XTAL2: 时钟电路的输出脚。 (3)控制管脚(2根)
RSTNPP:复位管脚,当端口信号为‘1’时单片机会执行复位操作。 EA:程序存储器选择端口。接低电平时,ROM读操作只能在在外部程序存储器中进行;接高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。在该电路中,将其接负极。
(4)可编程I/O管脚(32根)
STC89C52单片机有P0、P1、P2、P3四个8位的并行输入/输出口,每个端口可以按字节或位进行输入输出,4个并行口一共有32根端口线。
P0口:P0口是一个漏极开路型双向输入/输出口,输出能力较强能驱动8个TTL门电路,经常被作为地址/数据分时复用总线使用。内部没有上拉电阻,使用时需添加外部上拉电阻。
8
基于单片机的智能加湿器设计
P1口:Pl口的输入/输出口为8位的双向输入/输出口,通常作为通用输入/输出口使用,在4个I/O口中,它的功能比较单一,只能作为输入/输出使用。电路的内部有上拉电阻,与场效应管共同组成输出驱动电路。因此,P1口作为输出口使用时,已经能向外提供推拉电流负载,无需再外接上拉电阻。
P2口:P2口是内部自带上拉电阻,功能复用口。
P3口:P3口是和P2口功能基本一样。P3口不仅可以用作通用输入/输出口,还具备第二功能,当P3口的部分口作为第二功能时,剩下的引脚可以单独作为输入/输出口使用[6]。
2.2.3 单片机最小系统
(1)时钟电路
STC89C52内部拥有一个振荡器,它是由高增益反相放大器构成的,但是要形成时钟脉冲,在拥有振荡器的同时外部还需要增加电路。引脚XTAL1连接到内部放大器的输入端,引脚XTAL2连接到放大器的输出端。时钟信号是由自激振荡器发出的。引脚XTAL1与引脚XTAL2连接到外部晶体振荡器,且与电容和晶振组成的并联谐振回路相连,构成稳定的自激振荡器。晶体振荡器的震荡频率不是固定值,它的频率范围为1.2~12MHz,常用的晶振频率是12MHz。电路中的电容值在5~30pF范围内都可以选择,电容的大小在时钟电路中起到对频率的微调作用。在本次设计中采用振荡频率为12MHz的晶体振荡器,使用22pF的电容。时钟电路如图2.4所示: C122pFX1CRYSTALC222pFU119XTAL1R410k18XTAL2C3 图2.4 时钟电路 (2)复位及复位电路 复位是单片机的初始化操作。其主要功能是把PC地址初始化为0000H,使单片机从0000H单元重新开始执行程序。复位是单片机系统的初始化操作,9 基于单片机的智能加湿器设计
单片机系统在上电启动后都需要先进行复位操作,使系统处于一个确定的初始化状态。当单片机因为各种因素导致系统死机时,可以按下复位键进行复位,使单片机系统回归到初始状态,且从初始状态开始工作[7]。如图2.5所示电路的复位电路: 1922pFXTAL1R410k18XTAL2C3910uFRSTR2220293031PSENALE 图2.5 复位电路 RST引脚的功能是控制复位信号输入。当RET管脚信号为‘1’且维持2个机器周期时,复位信号有效,单片机系统才会完成复位操作。如果选择使用的晶振频率为12MHz,想要成功完成复位的话,RET端的高电平就应该维持超过2us即两个机器周期的时间。单片机的复位方式有两种:上电复位和按键复位。上电加按键复位电路比上电复位多了一个复位开关。
本次设计采用按键复位电路,其复位电路如图2.5所示。按下复位按钮后,电流经过220欧的电阻与RET端口直接相连,复位端引脚信号变为‘1’;当复位按钮弹起后,电流从10K?电阻和10uF的电容所在的电路通过,电容恢复到充电状态,复位端发出复位正脉冲信号,该信号持续的时间与电阻与电容电路的时间常数有关。
2.3 传感器模块
2.3.1 温湿度传感器选择方案
方案一:一般情况下,我们检测温度的时候都会用热敏元器件来检测,如热电阻和热敏电阻。其中热电阻的工作原理为:热电阻的电阻值会随温度的变化出现大的波动,当温度升高时电阻的大小也会增大,并且电阻值会随着温度按照近似的线性关系而缓慢变化。热敏电阻的工作原理是热敏电阻的电阻值与温度成非线性关系,并随着温度的升高而迅速变化。一般情况下电阻值与温度呈负指数关系,温度越高电阻值下降的越快,只有少量才具有正温度系数[8]。
10