盐浴炉的温度控制
第25卷第6期
2004年11月
零陵学院
JournalofLinglingUniversity VoI.25No.6
NOV.2O04
盐浴炉的温度控制
宁勇姜红权
(湖南科技学院电子
与物理系:湖南永州425006)
摘要:现代许多工业中都需要对温度参故进行有效控制,以实现产品性能优f匕通
将溢度控制与单片机的使 过蝎{呈,
用相结合,可以达到性能优化的目的本文主要研究了利用单片机对炉温进行自动拄制的-/~:-/方絮
关键词:单片机:温度控制:盐浴炉'
中图分类号:0414.1文献标识码:A文章编号:167卜9697(2004)06—0088—03 1,引言
温度是:亡艺lfJ的一个重要控制指标.在冶金,化工机械等各类I2业t?泛使…各种jJlJ热静,,烘箱,温箱等,它们均
需对温度进行控制.茌文所研究的对象盐浴炉的温度控制,本文所采『fj的办法足
目 利}仃单片机对盐浴炉的温度进行控制.
前利用单片机对温度进行控制的
要足基于PID算法或者是模糊控制理论
上实现的.本文通过对片机进行编,
利用特别设定的算法,去调整盐浴炉的
加热功率,把炉温控制在设定值的附近.
2,总体设计
对于小功率的盐浴炉,我们通常采 flj单相交流电,使用矾闸管渭功模块米 挖制加热功率,图1为单片机盐浴炉温 度控制器的结构框图.该控制器彳『温 度控制功能,H】户可以设定所需婴的温 度.在系统启动后,它会根据实测温度 与设定温度之间的差值控制品俐管调助 模块,从而控制炉的加热功,宰,使温度 保持在设定侦.,【,温度超过没定卡fc的一 定范围,会发m报臀信.
3,硬件电路实现
该控制器将利不】8052做一控机,外 接一片2764做程序存储器,地址锁仃器 选用74LS373.使用一个蜂呜器做温度 异常报警器,AD574芯片作数模转换器, 8279片作键盘示接口电路.通过热 电偶对盐浴炉的温度进行采样,所得到 的采样温度通过放大电路放火,变成 0—1OV的电压,从数模转换器的20VIN 输入,转换为数0:量,与程序l}I所r的 温J耍数字对照表(tempdat[200])丰ll比 较,温度范…为o-一2ooo摄氏度.濉世 ?收稿【Ij9】:2004—08—25
?肇金项}1:测『fj科技学院院级iI趔. ___?-_?_^.一.?-?_____?_一 一
一一?亘报警I
片
微
机:)Ij逻—t止可,
lI
电源
图1单片机盐炉温度控制器方框图
图2硬件结构图
88
数值对照表可由实际的实验测得.采用折线查找法,查找出与该数字量差值最小的两个值.软件程序将这两个数字之问的
值均分为十等份,用实际的数字量与这十个值相比较,其中最接近的那个值就是所测得的温度值设与这个数字量差值最小的
两个值分别为temp.dat[n],temp.dat[n+1】;设在这两个数字量之间与实际数字量最接近的值足I一等份巾的第K个,则我们得到
的温度值就是10n+k摄氏度,其中N大于0小于等于199,K大于等于0小于等于9.得到的温度值I}j扩展的8279芯片送
数码显示管.8279还扩展了键盘接口,采用单片机的外0中断输入方式,用于没定温度值的输入.每示一次温度值程序
就会对该温度值进行判断,当温度值高于设定值的10%时,单片机通过蜂呜器进行报警.盐浴炉内的温度flj品管调功模
块来控制.晶匝管调功模块由单片机通过定时器0输出一个占空比可变的脉冲来控制.当测得的温度比设定温度高时,输出
的脉冲占空比减小,从而使晶匝管在一个脉冲周期内的导通时间减少.这样就使加热功率减小,从而使盐浴炉的温度降低;
反之已然.通过循环控制使温度控制在设定的温度附近.
4,软件实现
全部软件由主程序和外部中断,定时器零中断组成,用c语言实现.在运行状态时,每循环一次程序便采样一次(时
间间隔非常短),并把温度值送到显示缓冲区.每采样一次,便比较一次实际温度与没定温度的差值,并计算输出脉冲在一
个周期时间内的占空比.以下是主程序
图和主程序:
#include"reg51.h" sbitP1—
2P12
#definecom8279XBYTE[0XDFFF】 sbitP13P13
#definedat8279XBY'I~[0XDFFE】 #defineSTART574XBY'I~[0XFFF】 #definedeathXBYTE[0XFFFD】 #definedeatlXBYTE[0XFFFF】 sbitP1—
0P10
#defineuclearunsignedchar
main
fchartime---O;per;al;a2;
inttempO,i.j,m,temp;
intcodetemp—
dat[200];
com8279=Ox00; com8279=0x34; com8279=Oxc3; TM0D=OX02;
TH0=0X00;
TL0=0X00;
a1=100;a2=0;
TR0=1;
IE=OX83;
while(1)
(counttemp();
m=read—temp():
temp=search—temp(m);
void—disp(temp);
if(temp>temp0)
(per=(per+a2)0.5:al=per;) if(temp<temp0)
{per=(per+a1)0.5;a2=per) elseif(temp>temp01.1) {P1—3=1;l
else{P1—3=0;))
89
voidcount_temp(void) {START574--0x00;
while(pl_忙1);)
intreadtemp(void)
{……)
voidcontrol(void)intermpt f石me++;
ifffime=-~er)
{P1_2--0;)
elseif(time==l00)
(P1_2=1;time=0;))
voidkeyin(void)intermpt0 {……l
intsearch—
temp(intk)
{uchariIj;;
for(I--0;;I<200:I++)
if(ktemp—dat[i])
break;
forO--o;j<lO,j++)
if(ktemp_dat[I一1】+0.1(temp—dat[I]一temp—dat[I一1】)J)
break;
k=I1州;
returnk;l
voiddisp(intdis)
{……l】
5,结论
由于程序一p利用了温度数值对照表,就大大的简化了测温电路和放大电路的误差校正.而温度数值对照表只能由实验测
量得到.关于实验部分将在后续工作中进行.
参考文献:
【1】马忠梅.单片机的C语言程序设计【M】.北京航空航天大学出版社,1999. 【21何立民.MCS一51系列单片机应用系统设计系统配置与接口技术[MI.北京航空航天大学出版祉,1990.
【3】李小武.用单片微机8051设计的防盗报警系统【J】.零陵学院,2004. 【4】彭英雄,吴敏.基于OPC技术的温度控制系统设计与应用【J】.控制工程,2003. 【5】徐风霞.AT89C51单片机温度控制系统【J】.齐齐哈尔大学(自然科学版),2004. Temperature-controllingOfTheSaltBathFurnace NINGYongJIANGHong?quan
(Departmentofelectronicengineeringandphysics,HunanUniversityofScienceandEngine
ering,Yongzhou425006)
Abstruct:Inmoderntimes,itisnecessarytocontroltemperatureefficiently.InSOmanydiffer
entindustriesinordertOoptimize
thefanctionofdesigns.Weofenachievetheintentionbythewayofcombiningtemperature—controllingwithsingle—chip
microcomputer.Thisarticledescribesthedeignoftemperature—controllingautomaticallyoffurnacewithhelpofSIM.
Keywords:single—chipmicrocomputer;temperature—controlling;thesaltbathfurnace