流量积算仪 定量控制

流量积算仪 定量控制AT89C55WD在智能流量积算仪中的应用
ATMEL公司推出的带有看门狗功能的单片机AT89C55WD带有20K的程序存储器 , 是8051系列中一款较为先进的产品 , 其看门狗功能可以大大提高产品的稳定性 , 大容量的内部程序存储器可以容纳功能丰富的软件 。下面简要介绍以A51为开发工具 , 以AT89C55WD单片机为核心 , 开发流量积算控制仪的设计和实现方法 。
一、流量积算控制仪总体布局
流量积算仪有5个输入通道:分别为流量L、压力补偿P、热电偶TC、热电阻Pt100、频率F 。由通道开关控制 。流量积算仪的基本工作原理是:通过输入信号电路把各种模拟信号经通道开关送入A/D转换器 , 转换成数字信号(频率信号直接由微处理器进行计数) , 微处理器根据采样的结果和数字设定内容进行计算比较后显示及控制输出 。
(图1)原理方框图
(图2)总体功能图
二、系统电路构成
流量积算控制仪电路由单片机AT89C55WD、5+8位LED显示电路、通道开关TC4052电路、A/D采集电路、数据存储电路AT24C04、电源管理电路IMP708、变送输出电路TLC465、AD694、开关量输出电路、键盘和电源及馈电输出等电路组成 , 下面简要介绍各个组成部分 。

1.单片机AT89C55WD及电路组成
单片机AT89C55WD通过P0.0~P0.3驱动3D1显示驱动芯片HD7279 , 再去驱动5位数码管 , 显示瞬时流量PV值;同时驱动5个按键和8个LED指示灯 。通过P0.4~P0.7驱动3D2显示驱动芯片HD7279 , 再去驱动8位数码管 , 显示流量累积值SV 。通过P1.0~P1.3控制CS5523 A/D转换器采集数据 。将采集到的数据通过一系列的运算处理 , 如图3所示 , 并将运算结果通过显窗口分别将瞬时值和积算值显示出来 , 同时点亮相应的指示灯 。由于突发事件停电 , 会造成数据丢失 。为了避免数据丢失 , 我们采用了IMP708芯片进行掉电保护 , 当电压下降到708阀值(如4.6伏)时 , 将相关数据存入AT24C04中 , 电源恢复后 , 重新加载这些数据 。另外键盘数据和流量积算值等也存储在AT24C04中 。
2.显示和键盘电路
在积算仪中使用LED 数码管显示器 , 瞬时流量值的显示采用2只四联LG3641AG共阴数码管 , 积算流量值的显示采用1只四联LG5641AG和一只LG5611共阴数码管 。其驱动芯片是2支HD7279 , 既解决了13位数码管的驱动 , 同时又解决了5个按键、8个指示灯的驱动 。HD7279是一款LED数码管和键盘接口芯片: 可驱动8位LED数码管和64键键盘 , SPI接口 , 外围元件非常少 。与单片机接口采用SPI串行接口方式 , 方便实用 。
3. A/D采集电路
A/D采集电路主要由16-bit的CS5523构成 , 该芯片是SPI串行接口 , 具有片选端 。而4个通道的输入则选用了TC4052进行控制 。
4.看门狗电路
AT89C55WD与MCS-51相兼容 , 可对内核进行1000次的电擦写 , 其电压、电流和功耗都比较小 , 带有20K的可重写快闪存储器和硬件看门狗定时器 。
看门狗定时器是在系统软件崩溃后进行恢复的一种方法 , WDT由13位计数器和看门狗复位特殊功能寄存器(WDTRST SFR)组成 , 在缺省设置下 , 系统复位时即关闭 。要使WDT有效 , 用户必须向0A6H单元的WDTRST SFR顺序写入01EH和0E1H 。当WDT有效 , 计数器每经过一个机器周期后加1 , 除了硬件或WDT溢出复位 , 没有任何方法可使WDT无效 。当计数器溢出 , WDT就在RST引脚产生一个复位的高脉冲 。
要使WDT持续有效 , 就必须每隔一定时间往WDTRST写入01EH和0E1H来避免WDT溢出 。当WDT的13位计数器计数至8191(1FFFH)时 , 计数器便溢出 , 引起设备的复位 。这就意味着用户必须至少每8191个机器周期复位WDT一次 。使WDT复位 , 必须向只写寄存器WDTRST写入01EH和0E1H 。当WDT溢出时在RST引脚产生一个复位的高电平脉冲 , 持续时间为:98×TOSC  , TOSC=1/FOSC 。为了充分利用WDT , 在要求防止WDT溢出复位时 , 应每隔一定周期写WDTRST一次 。
下面给出一个例程:
将看门狗定时器放在T1中 , 每中断一次 , 需50ms , 当计数器 , 计满1秒给R19加1 。当主程序或子程序在10秒之内还未对R19清0 , 说明程序可能“跑飞” , 此时看门狗使能 , 将AT89C55WD复位 , 从地址0000H处开始执行 。