一.简介
本温度控制和显示系统是一个闭环反馈控制系统,它用温度传感器将检测到的温度信号经放大,a/d转换后送入计算机中,与设定值进行比较,得到偏差。对此偏差按pid算法进行修正,返回对应工况下的可控硅导通时间,调节电热丝的有效加热功率,从而实现对铁块的温度控制。
系统采用at89c52芯片为cpu,外扩了8k的数据存储器6264。at89c52是美国atmel公司生产的低电压,高性能的cmos 8位单片机,片内含8k的可反复擦写的只读程序存储器(perom)和256bytes的随机存取数据存储器(ram),器件采用atmel公司的高密度,非易失性存储技术生产,与标准的mcs-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(cpu)和flash存储单元,功能强大at89c52单片机适用于许多较为复杂控制应用场合。
at89c52的主要性能参数有:
·与mcs-51产品指令和引脚完全兼容。
·8k可重擦写的闪速存储器。
·1000次擦写周期。
·全静态操作:0hz-24mhz。
·三级加密程序存储器。
·256×8字节内部ram。
·32个可编程i/o口线。
·3个16位的定时/计数器。
·8个中断源。
·可编程串行uart通道。
·低功耗空闲和掉电模式。
at89c52提供以下标准功能:8k字节的flash闪速存储器,256字节的内部ram,32个i/o口线,3个16位的定时/计数器,一个6向量两极中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,at89c52可降至0hz的静态逻辑操作,并支持两种软件可选的节电工作模式:空闲方式停止cpu的工作,但允许ram,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存ram中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。
二.控制系统的原理
本温度控制和显示系统中,单片机系统用控制对铁块的加热时间来控制铁块的温度,铁块的温度经检测,放大,校正和a/d转换后送入单片机,由单片机计算当前值,然后根据pid控制规律返回可控硅导通的脉冲个数tn,通过比较tn和当前可控硅导通的脉冲个数决定打开关闭双向可控硅。铁块的温度给定和pid控制器参数设定用单片机系统的键盘来实现。控制系统结构框图如下:
系统的数据采集主要是对铁块现时温度的检测转换,温度的检测由铂电阻完成,用电桥得到差动值,经差动放大器放大后,送入a/d转换器进行转换,最后送入处理器处理。
温度传感器和信号放大电路如下图所示:
我们使用电桥读取铂电阻的输出信号,图中tl431电路部分为供桥电压产生电路,因为供桥电源的变化几乎是一比一的反映到电桥电压输出,所以供桥电源的稳定与否直接影响到温度采样的精度。当系统有一精度足够的+10v电源时,tl431电路部分可以省略。电桥部分桥上臂电阻选22kω,右下臂电阻选100ω,电桥输出电压为:
(1)
假设系统温度变化范围为0-120℃,则根据(1)式得电桥输出电压范围约为:0-20mv。
信号放大部分属于v-v放大,前面我们已经知道电桥的输出电压为0-20 mv,而a/d转换的输入电压为-5v-+5v,我们选用单极性输入+3v,这样可以确定放大器的增益为150倍(3v/20 mv)。放大器的极数与单极放大器的带宽增益有关,由于铁块控制系统中测量速度不是主要的,也就是说带宽问题不予考虑,如果我们选用带宽增益积较大的芯片,则使用单极放大就足够了。在这里我们选用差分式斩波稳零高精度运算放大器icl7650。一级放大接成双端差分输入,单端输出形式。放大器接成t型反馈网络,则放大器的放大倍数为:
(2)
在应用时,各元件阻值可按照上图中选取,实际放大倍数应该根据系统需要通过微调rv2得到。
a/d转换芯片选择首先取决于控制系统对分辨率的要求,在本系统中要求达到控制温度范围为20~100摄氏度,控制精度为0.25摄氏度,则分辨率为:
100/0.25=400
若选用8位的a/d转换则分辨率为256,不能满足要求,故需要选用转换位数更高的芯片。本系统选用12位的a/d转换芯片icl7109,该芯片是双积分型的,具有精度高,低噪声,低漂移,具有防尖峰干扰能力,价格低廉,不过由于是双积分型,故转换速度较慢,转换时间为30ms,但在本系统中已经足够。icl7109有14位输出,低12位为a/d转换值输出,or为溢出标志输出,当转换值溢出时该位输出高电平;pol为极性输出,输入电压信号大于零时该位输出高电平。14根数据线与单片机数据总线的接法为:b1~b8分别接p0.1~p0.7,b9~b12,or和pol分别接p0.1~p0.5,如下图所示。cpu对a/d转换数据的读取通过依次选通lben和hben端口两步完成。由于用3-8译码器sel1和sel2来选通lben和hben。所以可以得到a/d转换数据的地址为:
ic