关于数字温度传感器,显示器的初始化程序直接调用,本文主要是模块化设计,程序设计简单,硬件电路较为合理。如图14所示。
图14 主程序框图
4. 系统仿真与调试
4.1 Protues 和 Keil的联合调试
用Protues新建一个工程,选择新建文件,把要找的元器件放在上面,然后依据原理画出电路图。画完后进行电器规则检查,无误后就可以进行保存。
Protues产品包含了革新的VSM技术,用户可以对基于微处理器设计连接的元器件一起仿真,可以根据键盘、显示器等动态模型对外设进行交互仿真[11,12]。利用Keil可以仿真程序,然后将编译的程序下载到单片机中进行仿真。在程序调试中主要有两种需要调试,按键调试和LED显示调试。按键调试时,应先按下确认键,然后再按加减键否则液晶不能正常显示温度。在指示灯调试时,由于LED灯亮度不够,经过观察发现用单片机输出为1时驱动负载太弱,所以应改用低电平触发,外接上拉电阻就可以正常驱动LED灯了。
4.2 系统仿真
如图15所示:第一屏显示的是当前温度,第二、三屏分别显示报警温度、设定温度。第一行分别是temperrature()、high temp、set temp。第二行显示的都是当前检测的温度。当水温小于设定温度时,电加热模块就开始运行加热水温,直到温度达到设定值,若水温高于65℃时,则蜂鸣器开始报警,并且电加热停止。
图15 仿真图
图16 仿真图
当前温度假设45℃,通过按键设定为50℃,这时就会加热(LED黄灯就亮了代表加热模块)。仿真图如图16所示。
报警温度也用LCD1602显示,当水温大于65℃时,蜂鸣器会一直响(用LED灯亮表示),这时加热模块D1停止工作。仿真图如图17所示。
图17 总体仿真图
以上所示结果:基于AT89S52单片机设计的智能温度控制系统,经过调试后,基本满足设计要求。
5. 结束语
本文采用AT89S52为控制核心的智能热水器控制系统,经设计完成后可以满足要求。首先由数字温度传感器DS18B20采集温度后,经单片机处理,送入液晶显示LCD1602显示。其中检测的温度精度为1 ºC。单片机根据当前的温度值来控制加热、报警等。当按键设定的温度值大于当前检测水温时,单片机就控制加热输出,使之温度上升,加热到设定值。当前温度大于设定值,则不做处理,热水器自动冷却降温,如果水温高于65 ºC时,停止加热,蜂鸣器报警。温度预设值为45ºC,通过按键可调。设计还有不完善的地方,比如附加定时功能、水位监测等,有待进一步改进和完善。 AT89S52单片机智能热水器控制系统的设计+源代码+电路图(5):http://www.youerw.com/zidonghua/lunwen_1498.html