龚丹丹 史文丽
摘 要:现在的水温控制系统多采用模拟温度传感器、A/D转换器及单片机组成的传输系统。这种系统安装复杂,成本也高不说,它的反复加热系统对我们的饮水质量也大打折扣,本文针对AT89C51单片机为控制核心,采用典型大惯性的PID闭环控制装置,自动控温,使其保持温度恒定。
关键词:AT89C51单片机;温度控制;DS18B20
基于单片机的饮水机温度控制系统设计,是通过温度传感器和单片机对饮水机的智能控制,以解决传统控制水温对电力资源和水资源的浪费,同时又使饮用水达到饮用的标准。温度过高或者是过低,都会使水资源失去应有的作用,也丧失了很多营养物质,从而同时造成了电力资源和水资源的巨大浪费,特别是在当前的全球能源极度匮乏,而国家倡导节约水资源的情况下,我们更应该掌握好对水温的控制,才能把身边的水电资源更好的利用起来,这同样也是对自己的负责。
1 项目背景
随着人们对饮水机的需求变高的同时,我们自然而然的对饮水质量问题就产生了更多的关注,而现在的饮水设备大多都没有自动控温系统,有的只是自动加热,但是水的矿物质等营养成分在反复加热的过程中就大大的流失了,基于这个问题,本文给出了合理的软件设计来解决。基于单片机饮水机的温度智能控制系统,可以智能的实时检测饮水机水箱的水温,当水温低于设定的温度时,饮水机将加热水箱中的水,当高于设定的时候,饮水机将对水箱中的水停止加温。这样既节约了能源又为人们的使用提供了便捷。
2 设计部分
⑴系统方案设计。本论文设计了一种以AT89C51单片机为核心部件,采用DS18B20的高精度数据采集系统,这个系统的最大有点在于可以实时检测饮水机水箱的水温,并且可以通过数码管显示(也即3位LED数码管)饮水机水箱水温度数,而且可以预防二次加热。系统的电路设计主要由以下几部分组成:①控制部分主芯片采用单片机AT89C51;②显示部分采用3位LED数码管以动态扫描方式实现温度显示;③温度采集部分采用DS18B20温度传感器;④加热控制部分采用继电器电路;⑤时钟电路;⑥复位电路;⑦按键输入这部分就不用说了,这个是必不可少的。在这里就不再赘述。
⑵系统软件设计。系统的软件设计本人主要采用C语言,对单片机的各项功能用编程来实现。主程序对模块进行初始化,而后调用读温度、处理温度、显示、继电器电路,用的是循环查询方式来显示和控制温度。
1)系统主程序流程图。本软件设计采用循环查询来处理各个模块,温度是缓慢变化量,所以可以满足性能要求。程序流程:当你选择了打开饮水机之后,程序内部进行初始化操作,将数据传送给DS18B20系统,系统调用数据来处理子程序,继而显示子程序,最后是继电器控制子程序,但是饮水机没有停止工作,只要没有给它结束命令,它会在继电器控制子程序语句执行完之后继续初始化操作,然后循环进行。如图1所示
2)读取DS18B20温度模块子程序。每次对DS18B20操作时多要按照DS18B20中的协议进行。初始化DS18B20→发ROM功能命令→发存储器操作命令→处理数据。程序流程图如图2
3)数据处理子程序。由于DS18B20转换后的代码并不是实际的温度值,所以要进行数据处理。首先程序判断当前饮水机内水温是否为零下,如果是,则DS18B20保存的是温度的补码,需要对其低八位取反加一变成原码。处理过后把DS18B20的温度复制到单片机的RAM中,里面已经是温度值的Hex码了,然后转换Hex码到BCD码,分别把小数位,个位,十位的BCD码存入RAM中。
3 总结
本设计在元器件选择上尽量做到使硬件电路简单,充分利用软件编程来弥补元器件精度不足的缺点。完成了以AT89C51单片机为核心的温度控制系统的设计。整个系统实现了多项功能,其中包括:温度采集部分、显示部分、驱动部分等,基本实现了设计任务的要求,并且电路简单,功能全,易于控制操作,还能扩展很多功能。同时,由于时间及个人能力有限的问题,本系统的设计还存在很多不足和需要改进的地方,如:采集部分的误差较大,控制算法还需进一步完善等。
[参考文献]
[1]唐朔飞.计算机组成原理.高等教育出版社.2008.
[2]汪新民,刘若慧.C语言基础案例教程.北京大学出版社.2010.
[3]周文.AT89C51-AT89S51性能简介[J],2008.4.
[4]赵永杰.基于DS18B20的温度测量系统[J].2008.