基于AD590的温度智能控制系统的设计
发布时间:2009-10-27 作者:马玲官,张荣福,张军
1 温度控制系统的总体结构
单片机温度控制系统的原理框图如图1所示。温 度信息由温度传感器测量并转换成微安级的电流信 号,经过信号处理电路将弱电流信号转换为单片机可 以处理的电压信号,输入到A /D转换器(ADC0804)转 换成数字信号输入主机(单片机87C51) 。为进一步提 高测量精度,A /D转换时对信号进行数字滤波。此信 号经过数字滤波、标度转换和单片机数据处理后,一方 面通过数码管将温度显示出来;另一方面,将该温度值 与设定的温度范围值进行比较,根据其偏差值的情况 自动调整电暖的开通情况,用于调整婴儿体表的温度。 在电暖断开,而婴儿体表温度值仍然高于正常范围时 (所穿衣服太多或婴儿发烧) ,报警器发出声音报警, 提示采取相应的调整措施。

2 系统硬件选择和设计 系统的硬件结构主要由温度检测电路、A /D转换 电路、控制芯片、数字显示电路、电暖控制和报警电路 等部分组成。
2. 1 温度检测电路的设计
本系统选用温度传感器AD590 构成测温系统。 AD590是一种电压输入、电流输出型集成温度传感 器,测温范围为- 55℃~150℃,非线性误差在±0. 30℃, 其输出电流与绝对温度成正比,温度每升高1K( K为 开尔文温度) , 输出电流就增加1μA。如图2 是 AD 590的封装形式和基本应用电路,其输出电流I =(273 + T)μA。本设计中串联电阻的阻值选用10kΩ, 所以输出电压V + = (2730 + 10T)mV。

2. 2 核心控制芯片的选择
87C51单片机价格低廉,输入输出口丰富,无需再 另外扩展,简化了外围电路。128B内部RAM, 4KB内 部ROM,程序存储空间大,防止由于程序过大而造成 存储空间不够;另外由于前期开发需要多次的写入、擦 除,而87C51可以完成1000次写/擦,故满足要求。其 引脚和指令系统都与MCS - 51兼容,具有系统硬件设 计简单、软件设计方便等特点,因而本设计选用87C51 单片机作为主控元件。
2. 3 A /D转换电路的设计
本设计选用ADC0804芯片,它的标准工作电压为 5V,具有三态输出,易于与单片机一起工作,允许0~ 5V的模拟电压输入。
ADC0804的数据线D0~D7直接与单片机的总线 P3口相连, ADC0804 对输入的电压信号进行模数转 换,要求CPU 从P3 口提取A /D 转换完成后的数字 量。ADC0804的WR连接87C51的P1. 7, ADC0804 的 INTR连接87C51的P1. 6, CS、RD都接地。当WR及CS 脚都为0,则会使INTR引脚复位为1,而且使A /D转换 电路完成准备工作。经过100ns以后,若WR及CS两脚 中有任一脚恢复为1,则A /D转换电路进入工作状态, 开始将模拟输入电压转换为8位的数字信号。转换完 成时,会将数字信号保存在锁存器,并使INTR脚输出 为0,表示已转换完毕。若使WR及CS脚都为0,则三 态缓冲器导通,将数字信号从DB7~DB0送出。数字 输出信号DB与模拟输入电压的关系为:
DB = 51V + 87C51执行如下程序可以启动ADC0804工作。
START: CLR P1. 7
SETB P1. 7
若87C51执行下列程序,则可以从ADC0804输入 A /D转换后的数字量。
READ:MOV A, P3 MOV @R1, A
2. 4 数字显示电路
AD590的温度测量范围为- 55℃~150℃。本系 统用于测控婴儿体表温度,因此取常用的温度部分,不 考虑小数部分,即0℃~50℃,共需2个发光二极管数 码显示器(LED) ,采用共阴极静态显示。使用87C51 单片机的P0口作为信号输出口,外接BCD码译码器 4511,控制数码显示管的显示器。
2. 5 电暖控制和报警电路系统的设计
当婴儿体表温度的测量值高于给定的适宜温度 上限时,单片机由A /D 芯片读取信息,通过软件设 计,置P1. 5 = 1,此时关闭电暖设施以降低温度;当婴 儿体表温度的测量值低于适宜温度下限值时,单片机 置P1. 5 = 0,此时开通电暖设施以升高温度。在婴儿 体表温度高于警戒温度而电暖已经停止工作的情况下 (可能婴儿发烧或衣服太多) ,单片机置P1. 4 = 1 和 P1. 5 = 1,经过与门触发声音报警系统,提醒看护者进 行相关处理。
3 系统软件设计
用汇编语言进行单片机程序设计,采用结构化程 序设计思想:在总体设计中采用“自顶而下”( TOP - DOWN)的方法,在程序设计中采用模块化编程。把整 体任务分成一个个子任务,子任务再分子任务,逐层细 分,每个子程序都完成其规定的功能,明确输入输出, 将这些程序连接起来就构成整体流程图。
主流程图如图3 所示。首先是程序的初始化部 分,主要完成的任务是初始化数码管显示屏,初始化单 片机各端口状态和设初始值。初始化完成后,系统启 动A /D转换芯片工作,判断一组数据转换完成后,单 片机从P3口读入数字信号,并将所得温度值通过硬件 编码芯片4511在数码管上显示。随后单片机将采集 到的数字信号与预先设定的温度值做比较,根据比较 结果的不同,系统跳转到相应的处理子程序进行温度 调控。

