游泳池一般是用太阳能热水器和电热水器联合恒定水温的。天晴时,主要靠太阳能热水器供热,辅助电热水器加热;阴天下雨时,主要是靠电热水器维持水温。电热水器一般有8个,每个功率是9kW。每个电热水器需配一只空气开关,为了减轻对电网的冲击,合闸时要顺序延时开启,关闸时也要分别关闭。而且要根据预先设定的温度进行自动保温控制。为此,笔者用AT89C2051设计了游泳池保温控制器,电路如附图所示。

一、电路构成
电路由主控电路、两个独立的电源、电热水器空气开关驱动电路(光耦4N25、继电器等)、水温检测电路、EEP-ROM电路、显示电路和按键等组成。
二、功能特点
该电路上电复位后开始检测水温,并进行显示,10s后进入控温操作。单片机将测得的水温值与预先设定值进行比较,若高于设定值,则继续进行测量显示工作;若低于设定值减2℃以下,则顺序延时启动8台电热水器进行电加热,显示停止;当水温升到设定值减去2℃以上时,顺序延时关闭4台电热水器,待升高到设定值时,顺序延时关闭余下的4台电热水器,使得系统恢复到显示测量状态。水温设定值可临时由按键输入并存储在EEPROM中,显示器采用数码管显示2位数字,测温精度达±1℃。
该电路的I/O口线采用分时复用技术,减少了元器件,降低了生产成本。另外,驱动部分采用光耦隔离增强了系统的可靠性。
三、电路工作原理
1.主控电路:
由IC2单片机(AT89C2051),复位电路(C4)、振荡电路等组成。
2.两个独立电源:
一路+5V供给整机电路,另一路12V供给8个继电器使用。
3.测温电路:
当系统上电复位后,单片机循环执行测量水温,并进行显示操作。测温电路由R4、R5、RT1、C8、R2、R3、C7和以P1.0、P1.1为输入的AT89C2051内部模拟比较器组成。测温传感器采用负温度系数热敏电阻RT1,由R4、R5、RT1组成的分压电路为P1.1(模拟比较器负输入端)提供温度采样电平,P1.0为参考电压输入端(正端),接C7、R3等元件,参考比较电压由软件配合R3、R2、P1.4等产生。
4.电热水器空气开关驱动电路:
由8只光耦U1~U8、R14~R21、VD14~VD21、VD13、R13、VT9、VT1~VT8、R22~R37、VD5~VD12及8个继电器组成,并由单片机9条I/O口线控制,其中8条与显示电路共用,实现分时复用。当用于驱动时不能显示,用于显示时也不能再用于驱动,由P1.7、VD13、R13、VT9来实现转换。当系统测得水温低于设定值减2℃时,先使8路控制端送出高电平,再使P1.7变0,VT9导通,然后使P3.2为低电平,U1导通,K1得电,电热水器1加热,延时10s后,再使P3.3为低电平,开启第二个电热水器,……,依次开启第8个电热水器;当温度达到设定值减2℃时,再使P1.5为高电平,使VT8截止关闭第8台电热水器,延时10s再关第7台,依次再关第6、5台;当温度达到设定值时顺序延时关闭余下的4台,并使P1.7为高电平,系统回到显示状态。若经一段时间水温又冷却到设定值减2℃以下时,则系统又重新进入下一循环加热过程,实现了保温控制。
5.显示电路:
由于游泳池水温一般变化范围是0℃~50℃,故用两只数码管显示温度值能满足要求,系统调试时还可显示其他参数。这部分电路由LED1、LED2、R6~R12构成,共阴接法。用于显示时必须使P1.7为电平以切断与驱动电路的联系。
6.按键输入电路:
SB1为设置调试键,按一次进入调试状态,再按一次恢复正常状态;SB2为显示、修改、输入键,在调试状态下,可显示修改片内RAM中的内容;SB3为保存键(关机键),按该键可将RAM中的内容存放在EEPROM中,在加热状态中可实现人工延时关机;SB4为复位键。SB1~SB3所连I/O口线是分时复用的,由软件实现。
四、软件设计思路
软件设计共分为:主程序、测温子程序、显示子程序、T0定时中断程序、控制驱动子程序、按键扫描子程序等6部分。这里只介绍一下测温程序的设计原理,其他部分设计比较常规(略)。
由于游泳池水温的变化是一个缓慢的过程,所以温度的采样与控制设计为一秒一次。温度采样过程为:先使P1.4为0,C7通过R3放电,延时40ms后C7放电完成,P1.0的电位为0,这时模拟比较器输出端P3.6电位为0,将检测次数计数器清零,然后将P1.4置高电平,Vcc通过R2、R3向C7充电,每20μs检测一次P3.6是否变高,次数由检测次数计数器累计。当P1.0的电位升到与P1.1相等时,P3.6变高电平,此时P1.0的电压就是待测电压值,待测电压值与水温有对应关系,这样就建立了水温与计数器检测次数的对应关系。用实验方法测出从0℃~50℃间的计数器检测次数值,由程序查表方式来完成水温值的转换。实践证明此法控温误差能达到±1℃。
(李书印)