在工业生产和日常生活中,对温度控制系统的要求,主要是保证温度在一定温度范围内变化,稳定性好,不振荡,对系统的快速性要求不高。以下简单分析了单片机 温度控制系统设计过程及实现方法。现场温度经温度传感器采样后变换为模拟电压信号,经低通滤波滤掉干扰信号后送放大器,信号放大后送模/数转换器转换为数 字信号送单片机,单片机根据输入的温度控制范围通过继电器控制加热设备完成温度的控制。本系统的测温范围为0℃~99℃,启动单片机温度控制系统后首先按 下第一个按键开始最低温度的设置,这时数码管显示温度数值,每隔一秒温度数值增加一度,当满足用户温度设置最低值时再按一下第一个按键完成最低温度的设 置,依次类推通过第二个按键完成最高温度的设置。然后温度检测系统根据用户设定的温度范围完成一定范围的温度控制。
温度检测的设计
系统测温采用AD590温度传感器,AD590是美国模拟器件公司生产的单片集成两端感温电流源。它的主要特性如下:
1、流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数;即: ,式中:Ir—流过器件(AD590)的电流,单位为mA;T—热力学温度,单位为K。
2、AD590的测温范围为-55℃~+150℃;
3、AD590的电源电压范围为4V~30V;
4、输出电阻为710MW;
5、精度高。
AD590温度传感器输出信号经放大电路放大10倍,再送入模/数转换器ADC0804,转换后送单片机。根据AD590温度传感器特性以及放大10倍后 的电压值与现场温度的比较发现,实际温度转换后送入单片机的值与按键输入数值之间有一定的差值,模/数转换器送入单片机的数值是按键输入值得2.5倍。由 于单片机不能进行小数乘法运算,所以先对按键输入进行乘5,然后根据运算结果及程序状态字的状态再进行循环右移一位,如果溢出标志位为低电平时直接对累加 器进行一次带进位循环右移,如果溢出标志位为高电平时,先对进位标准位CY位置为高电平,然后再进行一次带进位循环右移,通过上述操作使按键输入的温度值 与模/数转换器送入单片机的温度值相统一。
软件编程
单片机温度控制系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能实现对温度的控制,需要给单片机编写程序,下面给出了温度控制系统的编程方法。
ORG 00H
START:ANL P1,#00H;显示00
JB P3.4 ,$ ;T0=0?有键按下?
CALL DELAY1 ;消除抖动
JNB P3.4 ,$;T0=1?放下?
MOV R0 ,#00;计温指针初值
L1: MOV A , R0 ;计温指针载入ACC
MOV P1 , A ;输出至P1显示
MOV R5 , #10 ;延时1秒
A1:MOV R6 , #200
D1:MOV R7 , #248 ;0.5毫秒
JNB P3.4 ,L2 ;第2次按下T0?
DJNZ R7,$
DJNZ R6,D1
DJNZ R5,A1
INC A
DA A
MOV R0 , A
JMP L1
L2:CALL DELAY1 ;第2次按消除抖动
JB P3.4 ,L3 ;放开了没?是则
;跳至L3停止
JMP L2
L3: MOV A ,R0
CALL CHANGE
MOV 31H , A ;下限温度存入31H
JB P3.5 ,$ ;T1=0?有键按下?
CALL DELAY1 ;消除抖动
JNB P3.5 ,$ ;T1=1?放开?
MOV R0 ,#00 ;计温指针初值
L4:MOV A ,RO ;计温指针载入ACC
MOV P1 , A ;显示00
MOV R5 ,#10 ;延时1秒
A2:MOV R6 ,#200
D2:MOV R7 ,#248 ;0.5毫秒
JNB P3.5 ,L5 ;第二次按下T1?