随着我国福利制度的改革,供暖制度也发生了相应的变化。在供暖体制中,传统的以住宅使用面积计算取暖费的方式受到了越来越多住户的质疑。例如:在供暖季节内,同样面积的住户,由于家里有人的时间不相等,而且由于楼层关系,各家的实际室内温度也不相同,但是按照传统的方法,必须缴纳相等的取暖费,这就带来了矛盾。国家建设部正在实施供暖制度改革,实现对热能按实际使用量收费。本文给出了一种基于HT46R65单片机的智能IC卡预付费热能表的设计方案。
1 工作原理
该热能表用于热水作为传热媒介的户用采暖系统,计量热水通过进水管道和回水管道所释放的热量;主要由流量计(水表)、数字式温度传感器、非接触式IC卡读卡模块(ZLG500)、液晶显示模块等组成。原理是根据流量计提供的流经管道的热水体积和配对温度传感器测量进水与回水的温度数据送至计算器,计算出消耗的热能,热能数据经处理后在LCD上显示出来。非接触式IC卡被识别后读出卡中的热能数值,然后把卡中的热能数据清零。随着使用的热能量增加,剩余的热能量相应减小。当剩余的热能量为零时,水表阀门自动关闭,停止供暖,等待用户购暖充值,重新开启供暖。
消耗热能Q的计算公式如下:
![](http://www.mcu99.com/Article/UploadFile/200806/20080606171351834.jpg)
其中:C为水的比热容(C=0.011 67 kWh/L·℃);V为流过采暖设备的热水体积;t进水、t回水为流过采暖设备的两个温度。
剩余热能Q2=Q1-Q(Q1为用户所购买热能和),一段时间内屏幕所能显示的总消耗热能Q3=∑Q。
2 热能表结构
2.1 硬件部分
硬件部分主要由HT46R65、电源模块、时钟电路、温度传感器DS18B20、水表流量计、键盘和液晶LCD显示电路、读卡器、阀门电机控制电路等部分组成。外围组件与MCU的相互关系如图1所示,其中ZLG500与HT46R65的接线如图2所示。
![](http://www.mcu99.com/Article/UploadFile/200806/20080606171351535.jpg)
下面对图1中各部分进行简单说明。
温度采集模块:采用2片Dallas公司的DS18B20温度传感器,分别采集进水温度和回水温度。DS18B20属于单总线(1-Wire)数字式温度传感器,具有结构简单,操作灵活,无须外接电路,对电源电压波动不敏感(在保证温度转换精度为±0.5℃的情况下,电源电压可为+3.3~+5.5 V)等优点。
流量检测模块:用干簧管传感器水表来检测热水流量。每当流过水管的水量达到1 L时,产生一个脉冲信号;可以通过中断或查询的方法来检测脉冲信号,然后根据采集的温度来计算消耗的热能量。
读卡模块:采用ZLG500,用来读取非接触式IC卡中的热能数据(对热能表充值);然后与剩余的热能相加存到热能寄存器中,并在读卡成功后将卡中的数据清零。驱动蜂鸣器响表示读卡成功。
控制阀门电机模块:利用HT46R65的两个端口直接驱动电机。若正向通电,则开启电机;反之,则关闭电机,平时端口都设定为低电平。若热能寄存器的值为零,则关闭阀门;否则,阀门是打开的。
键盘和液晶显示模块:液晶用于显示一些相关的信息(如热能和温度),按键用来切换显示信息。充分利用HT单片机的液晶显示驱动模块,直接驱动液晶显示屏,不必购买集成的液晶显示模块,降低了成本。
热能表主要功能是对用户的实际热能使用量进行计量。用户购买的热能存储在非接触式IC卡中,然后读卡对表进行充值。通过这种方式缴纳取暖费,用多少支付多少,用完后自动关闭供暖。该热能表能快速、直观地将剩余热能量、消耗的热能量、进水温度和回水温度显示在LCD上,用户使用方便,也便于供暖部门管理和收取取暖费。
2.2 软件部分
软件部分由数个子模块组成。C语言主程序中内嵌了读卡模块通信、读卡后数据传输、温度采集、热能计算以及液晶显示数个汇编程序,充分利用了HT-IDE3000的混合语言编程环境。软件流程如图3所示。在计算消耗的热能量过程中,Q=C?V?△t。假设△t=26℃,V=1 L,则Q=0.011 67×1×26=0.303 42 kWh。HT-IDE3000不支持浮点数运算操作,如果直接计算然后累加,则带来很大的舍去误差。为了提高计算的精度,在程序中编写了大量浮点数处理和计算的程序:把一个数转换成相应的3字节浮点数、浮点数减法、浮点数乘法、浮点数加法,把浮点数转换成相应的数值进行显示等。浮点数运算具有计算精度高、表示的数值范围大等优点。浮点数运算的法则说明如下:浮点数加减法执行前需要对齐阶码,然后尾数相加减;浮点数乘法是尾数相乘,阶码相加。以ZLG500与HT46R65之间通信的汇编程序模块为例,简单说明如下(系统的晶振频率为4 MHz):汇编程序SPI_INIT将SPI接口初始化为空闲状态,接SS线的外部中断1为下降沿触发,且将定时器1配置成SPI接口的看门狗定时器。写数据时,首先是MCU在SS线上产生一个下降沿,发出请求数据传输的信号;等待ZLG500响应后,本次数据传输开始,ZLG500在SCLK为高时读取SDA-TA线上的数据。传输完毕后,MCU在SS线上产生一个上升沿结束本次传输。(具体程序略——编者注。)
![](http://www.mcu99.com/Article/UploadFile/200806/20080606171351903.jpg)
3 热能表的功能
热能表具有如下功能:
①测取进水和回水管道中热水的温度。
②计算热能Q、Q2、Q3。
③带键盘操作和LCD显示,通过按键切换屏幕显示的内容。显示的数据有t高温、t低温、Q2、Q3。
④自动开启或关闭供暖。
⑤HT46R65单片机和ZLG500读卡模块之间建立连接和通信,及时、准确地读卡和写卡,实现预付费功能。
结 语
试验证明,本热能表能准确计算用户消耗的热能量,实现了先交费后使用的功能,并在2006年天津市“盛群”杯竞赛中获一等奖;但仍有一些需要改进的地方,如灵敏度不够高。该热能表安装操作简单,计算准确,实现了按实际热能使用量收取暖费。采用非接触式IC卡预付费技术,是一种发展趋势,既方便用户,也解决了长期困扰供应部门的“收费难”问题,可广泛应用于集中供热、分户计量的采暖设施中。