基于STC89C51单片机的电加热水装置温度控制系统

(整期优先)网络出版时间:2018-07-17
/ 3

基于STC89C51单片机的电加热水装置温度控制系统

杨辰超

(上海兰宝热水器制造有限公司上海200063)

摘要:本文主要叙述一款基于ST89C51单片机作为控制芯片,ST89C51单片机开发板作为开发环境,应用C51编程语言,制作的电加热水装置温度控制系统。控制系统的输入端使用DS18B20传感器。另一个输入端使用可调节停止加热温度与回差值按键的输入;系统输出使用数码管显示输出,及蜂鸣器报警输出。该种类型控制系统性价比较高,是各行业类似的水、液体、空气加热装置温度控制系统使用频率较高的一种控制方式。

关键词:ST89C51单片机;数码管显示;DS18B20传感器;电加热水装置

引言

工业生产很多工序离不开加热装置。如今使用单片机作为加热装置的控制系统变得越来越流行。在工业用加热、热水循环、管路蒸汽等装置的温度显示、调节与控制上,我们随处可见到单片机的身影。过去苦于专业知识与信息通讯的壁垒,工厂里如要添置和单片机控制系统或是PLC等相关的热源设备,可能往往不得不寻求专业的自动化设计公司来设计制作。即便是资历较高电工或是无线电爱好者,虽然可能对继电器、接触器控制会比较熟悉,但由于单片机对电子、电路以及汇编语言编程的专业有一定的基础要求,这类集成度较高的自动化控制电路可能也会让他们却步。而在信息通讯高度发达的今天,电子电路、单片机、自动化控制技术等课程被上传上了网络,供爱好者或从业者学习、交流。由此单片机控制技术也不再是很多爱好者的禁区。工厂里若需要一个电加热水装置,其中所用到的单片机控制系统完全可以借助网络的开源程序,自己应用C51程序语言编写程序,并且进行调试。本文就结合自己的实践经历,以ST89C51单片机为基础,设计开发的一款“电加热水装置”(下称“装置”)温度控制系统,交流一些设计开发过程中的经验。

1设计硬件及工作条件

鉴于装置的主要功能是加热,首要的就是显示温度。其次是考虑装置启动必须具备的条件。在装置启动后,要能够设置启动加热和停止加热的条件。

1.1显示输出的设计

应用开发板上已有的LED数码管显示器,作为温度的显示输出。鉴于加热装置加热的介质是水,温度不会到百位数。使用三位数码管,精确到十分位。

1.2温度传感器的选择

因为装置加热的介质是水,故传感器的测温范围只要满足0℃~99℃即可。多数传感器基本都可以满足。在传感器的选择上,有CU50、PT100和DS18B20。其中CU50、PT100为模拟温度传感器,其自身阻值随温度的变化而发生线性变化,是非电量的物理量的模拟量。需要通过A/D数模转换将连续的模拟量转换为离散的数字量,让单片机获取后通过LED数码管显示输出。

DS18B20是数字化温度传感器,可以直接将环境温度转化成数字信号,以数字码方式串行输出。与单片机连接时仅需要一条口线即可实现双向通信。不需要通过A/D数模转换器及任何外围元件。故选择DS18B20作为控制系统的传感器,可相对减少一定的工作量。

1.3装置启动使用的必要条件

根据装置的功能及使用方式进行分析,要设定装置启动使用的必要条件:1)为防止电加热器干烧而导致损坏,装置必须在水位完全没过电加热器的时候方能工作;2)为防止加热时产生膨胀导致压力过大而造成危险事故,装置必须在内部压力小于0.45Mpa的情况下方能工作;3)为防止加热过程中,因温度过高而产生水的汽化,装置必须在95℃以内的温度方能使用;装置在启动后,先判断是否满足启动使用的三个必要条件。

如果满足启动使用的三个必要条件任何一个不满足,控制系统必须使主控动力电路断电、蜂鸣器报警,并且控制器需复位重启。

1.4设置加热输出端口供电的条件

通过传感器感测水温,判断装置内的水温是否低于设置的目标水温。如果低于设置的目标水温则加热输出端口供电,若高于设置水温则加热输出端口不供电。电磁阀输出端口条件,与加热输出端口供电的条件无异。我们暂时考虑向继电器、接触器输出信号使驱动,暂时不考虑向SSR固态继电器的输出信号。

设置P13、P14为加热输出端口。

sbitheater1=P1^3;/*加热1继电器对应的端口为P13;*/

sbitheater2=P1^4;/*加热2继电器对应的端口为P14;*/

voidheating()

{heater1=1;/*启动加热1;*/

heater2=1;/*启动加热2;*/

}

1.5设置控制按键

控制器使用四个按键输入,分别是控制器启动按键,温度设定按键,温度数值的加、减按键。

2控制系统各组成部分与单片机端口组合

控制系统的LED数码管显示器、DS18B20数字化温度传感器和按键控制,并不是简单地将单片机的引脚和几个硬件的引脚通过杜邦线的公母头对接上就行了的。必须要根据各部分硬件的工作原理,通过程序代码在单片机上定义相对应的端口,并对这些端口编写程序,使单片机可以辨认这些硬件,在单片机启动后,可对这些硬件进行驱动及操作。

2.1LED数码管显示器的驱动设置

LED数码管显示器的内部结构分为共阴极和共阳极。显示结构分为段显示(7段、米字型等)和点阵显示(5x8、8x8点阵等)。根据1.1中所述,使用三位数码管,精确到十分位的要求。我们使用共阴极、两个7段显、一个7段加一个点显示的LED数码管组成显示器。LED显示器的两种工作方式为静态显示和动态显示。由于静态显示会占用较多的单片机输出端口,成本较高。动态显示是将所有为数码管的段选线并联在一起,由位选线控制哪一位数码管有效,以动态扫描显示的方式即轮流向各位数码管送出字形码和相应的位选选亮数码管。可简化硬件电路。

驱动点亮LED数码管通常有使用三极管驱动或使用的是74HC573锁存器驱动。在所使用的这款开发板上,是用2个74HC573锁存器驱动。给定的段选口和位选口分别是P26和P27。

先在头文件下分别申明U1、U2两个锁存器的锁存端在P26口和P27口,具体到代码段中如下:

sbitdula=P2^6;/*申明U1锁存器的锁存端在P26口*/

sbitdula=P2^7;/*申明U2锁存器的锁存端在P27口*/

然后在数据显示函数中打开U1、U2锁存端。对十分位、个位和百位三位数码管通过P0口作位选赋值与段选赋值。具体到代码段中如下:

vioddisplay()/*数据显示程序函数*/

{dula=0;/*关闭U1锁存端*/

P0=table[dat];/*将从温度显示函数中获取的编码赋给P0口*/

dula=1;/*打开U1锁存端*/

wela=0;/*关闭U2锁存端*/

i=0XFF;/*消影*/

i=i&(~((0X01)<<(num)));/*用i存储位选数据*/

P0=i;/*将从所选择亮起的位置赋给P0口*/

wela=1;/*打开U2锁存端*/

wela=0;/*关闭U2锁存端*/}

2.2DS18B20传感器温度采集功能的设置

DS18B20数字传感器电压范围在3.0V—5.5V。测温范围-55℃—+125℃。可编程分辨率为0.5℃、0.25℃、0.125℃、0.0625℃。在-10℃~+85℃范围内其测温准确度为±0.5℃。它有两种封装方式,三

2.5压力控制

装置所使用的压力控制装置是常闭机械式压力控制器触点开关。两个接线端,一段连接单片机I/O端口,另一端接GND,常闭状态。只要装置内部水压使得压力控制器内部机械承受压力超过限制范围,即将断开内部的常闭触点。这种压力控制器不需要对其产生的压力模拟量进行获取,只要设置一个给定的压力值,只要装置内部压力超过这个给定的压力值,常闭触点一断开,单片机通过I/O口的信号,即可判断是否触发蜂鸣器报警与并使加热的I/O口失电,切断装置的加热电源。

设置P12为压力控制器对单片机的信号输入口。并且,输入为“0”时触发蜂鸣器与报警程序。

sbitpressure=P1^2;

voidpressure()

{if(pressure==0)

alarm();

elsereturn1;

}

2.6极低水位

由于装置所用的水并不是经过反渗透处理过得纯净水,一般都是自来水。所以,不需要考虑水的电导率是否太低而导致金属探针失效。故极低水位采用普通的不锈钢探针,不需要使用浮球式的水位电极。

水位电极只要一不接触到水,即可向单片机I/O口发出信号,并判断是否触发蜂鸣器报警与使加热的I/O口失电,切断装置的加热电源。

设置P13为压力控制器对单片机的信号输入口。并且,输入为“0”时触发蜂鸣器与报警程序。

sbitlevel=P1^3;

voidlevel()

{if(level==0)

alarm();

elsereturn1;

}

2.7main()主程序

作为第二部分的最后,我们把主程序的框架写出来。具体如下:

main()

{while((temperature<95℃)&pressure()&level())

{heating();

/*满足水温晓宇95℃,压力小于0.45Mpa,水位没过加热器,即开始加热*/

}

}

3结束语

整个装置控制系统的设计过程,是基于STC51单片机。由于该款单片机在市面上的应用较广,故资料查找与程序编写较易借鉴同类设计。本文在叙述过程中,以整个制作的电加热水装置温度控制系统作为主线,逐次叙述了与STC51单片机中与LED数码管显示模块、温度传感器模块、按键控制模块、I/O输入输出的衔接与应用。希望能在同行业中提供一点参考。

参考文献:

[1]闫宗梅.基于74HC573锁存器的LED数码管的应用教学.《中国电子商务》,2014(4):296-296.

[2]郭天祥.新概念51单片机C语言教程.电子工业出版社.2015年9.

[3]王长涛.韩忠华.夏兴华.单片机原理及应用—C语言程序设计与实现.人民邮电出版社.2014年1月.

[4]李全利.单片机原理及接口技术.高等教育出版社.2014年12月.

[5]杨汝清.机电控制技术.科学出版社.2011年1月.