某些应用场合需要监测温度,要求温度保持在一定范围内。例如农作物温床育苗在20℃~30℃,家禽孵化在37℃~40℃,菌种培育在23℃~28℃。而普通单向超温报警难以满足要求,因此,提出一种利用温度传感器与单片机应用系统的双向超温控温系统设计方案。该系统设计能显示超下限或超上限温度,且可预置超温点。
2系统设计原理
图l所示为系统设计框图。首先通过键盘输入温度允许变化的上下限值,在正常情况下,应保持温度介于上下限值之间,当温度高于上限值时,则降温并报警;当温度低于下限值时,则升温并报警。
热敏电阻采用半导体感温元件,它具有负电阻温度特性,当温度升高时,电阻值减小。为此向热敏电阻施加恒定电流,测量电阻两端电压,然后通过测温公式求得温度:T=T0-KUT,其中T为被测温度,T0为与热敏电阻特性有关的温度参数,K为与热敏电阻特性有关的系数,UT为热敏电阻两端的电压。K和T0为常数测得热敏电阻两端的电压,可计算热敏电阻的环境温度。这样就将电阻随温度的变化转换为电压随温度的变化,该电压再经A/D转换器转换变成数字量,通过软件计算出温度值。
3硬件电路
本系统设计是由AT89C2051单片机、AD574A、可编程键盘与接口器件8279、温度传感器、LED显示器、看门狗电路等组成。
3.1AT89C2051单片机
AT89C205l是ATMEL公司生产的高性价比的8位单片机,该器件采用80C3l内核指令系统,与MCS一51完全兼容;内含2KB的Flash可作为用户程序存储器和128字节的随机存取数据存储器(RAM);内含2个程序加密位,可防止程序非法读出,安全性好;其低压、高性能CMOS的8位机与MCS一5l指令和输出引脚相兼容,构成一个最小的测量系统;有20个引脚,15个双向输入/输出(I/O)端口,其中Pl是一个完整的8位双向I/O口,2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,1个模拟比较放大器;AT89C2051的时钟频率可为零,即具备可用软件设置的睡眠省电功能,系统的唤醒方式有RAM、定时/计数器、串行口和外中断口,系统唤醒后即进入继续工作状态;省电模式中,冻结片内RAM,时钟停止振荡,所有功能停止,直至系统被硬件复位才可继续运行。基于AT89C2051具有诸多性能,因此,本系统设计采用AT89C205l作为控制器。
3.2A/D转换器AD574A
本系统设计采用ADI公司生产的12位逐次逼近式A/D转换器AD574A。AD574A片内包含高精度的参考电压和时钟电路,具有外接元件数目少,功耗低等,以及具有自动校零和自动极性转换等功能,使其在无需任何外部电路和时钟信号的条件下,完成A/D转换,其转换时间为35μs。
3.3掉电保护电路与看门狗电路
为了使系统工作可靠并保存设定数据,系统需要具有复位功能。掉电保护电路与系统复位电路利用MAX813L监控电路,在软件的配合下监控电源电压、CPU的工作状态。一旦出现死机、程序“跑飞”死循环或电源电压降到系统设定位值等故障时,就需要系统复位。MAX813L与AT89C205l的连接如图2所示。MR经过一个复位按钮接地。该监控电路的主要功能为:系统上电复位,电源上电时,当电源电压超过复位门限电压4.65V时,复位端可输出200ms的复位信号,系统复位;监测 5V的电源:当 5V电源正常时,RESET输出低电平,单片机正常工作;当 5V电源电压降至 4.65V以下时,RESET输出高电平,单片机复位;看门狗定时器被清零,WDO维持高电平:当程序“跑飞”或死机时,CPU不能在1.6s内给出“喂狗”信号,WDO跳变为低电平,由于MR端有一个内部250mA的上拉电流,D导通,MR获得有效低电平,RESET输出复位脉冲,单片机复位,看门狗定时器被清零,WDO又恢复为高电平。手动复位:如果需要对系统进行手动复位,只要按下手动复位按钮,就能对系统进行有效复位。
3.4HD7279简介
HD7279可支持64键盘和8位数码管动态显示,与传统的键盘显示器件8279相比,外围元件数目少,HD7279的CS、CLK、DATA、KEY信号线分别与AT89C205l的P1.O~P1-3端口相连,分时复用P1.0~P1.3端口线,大大节省CPUI/0端口资源;HD7279内部含有译码器,可直接接收BCD码或十六进制码,并具有两种译码方式。此外,还具有多种控制指令,如左移、右移、闪烁、消隐、段寻址等;具有自动消除按键抖动并识别按键代码的功能,软件编程时无需键盘的消抖动程序,而且HD7279A的控制指令使得软件编程更简单。故选用HD7279A作为驱动键盘矩阵。扫描键盘时,如果有按键按下,直接通过读键盘数据指令即可在LED上显示键入的键值,而无需通过AT89C205l端口线控制键盘输入。单片机接收键入的键值以控制所采样量。HD7279可广泛应用于微型控制器、智能仪表、控制面板和家用电器等。
3.5系统硬件设计
图3中AT89C205l的Pl与AD574A的高8位数据线直接相连,AD574A的低4位数据线与单片机的高半4位P1.4~P1.7直接相连,读取数据是依据单片机的控制线分时选通。P3.4接AD574A的字节短周期控制线(A0),P3.5接读转换数据控制引脚(R/C)。这样只能输出8位,故12/8的数据模式选择端直接接地,输出的控制信号通过单片机的串口P3.1驱动升温或降温控制电路。采用10V量程的输入模式,故AD574A的10VIN为被测电压的输入端,AT89C205l的P3.6接AD574A的片选CS,转换器使用±12V电源电压供电,工作电压为 5V。P3.7输出报警信号,驱动一只发光二极管报警。工作状态指示信号端STS与AT89C2051的P3.2相连,当STS=l时,转换器处于转换状态;当STS=0时,表明转换结束。因此,通过该信号判断A/D转换器的工作状态,用于单片机的中断或查询信号。当AT89C205l的P3.2查询到STS端转换结束信号后,先将转换的12位A/D数据的高8位写入AT89C205l,然后再写入低4位。无论AD574A处于启动、转换和输出结果的何种状态,其使能端CE都必须为1,因此CE端接 5V。上述为AD574A的全控状态时,AD574A的CE、12/8、CS、R/C和A0对其工作状态的控制过程如下:
当CE=l、CS=0时,AD574A则正常工作;当AD574A处于工作模式,R/C=0时A/D转换;R/C=1时读取数据。12/8和AO用于控制启动转换方式和数据输出格式。A0=0时,按完整12位数据方式启动;当AO=1时,则按8位A/D转换方式启动。当R/C=l,即当AD574A处于数据状态时,A0和12/8控制数据输出状态的格式。当12/8=l时,数据以12位并行方式输出;当l2/8=0时,数据以8位分两次输出。当AO=O时,输出转换数据的高8位,AO=l时输出A/D转换数据的低4位,这4位占1个字节的高半字节,低半字节补零。如果需AD574A工作于单一模式,只需将CE、12/8端接 5V电源,CS和A0接至OV,仅用R/C控制A/D转换的启动和数据输出。当R/C=O时,启动A/D转换器。经35μs后,STS=1,表明A/D转换结束,此时R/C置1,即可从数据端读取数据。
4系统软件设计
系统软件设计采用模块化结构。整个温度测控过程由主程序、温度测量子程序、定时中断子程序、A/D转换程序、显示子程序等组成。各模块分别只有一个入口和出口,各模块间相互独立,避免因某功能模块出现异常而导致整个系统瘫痪。这里仅给出主程序流程图(图4)和温度测量子程序的流程图(图5)。
5结语
该系统设计的创新点是采用温度范围为 10℃~ 1.50℃的热敏电阻。该电阻具有灵敏度高,体积小、重量轻,热惯性小,寿命长及价格便宜等优点,而AT89C205l是一个功能强大的单片机.适用于节能减排的电器控制,应用广泛。