开篇:润墨网以专业的文秘视角,为您筛选了一篇水温控制系统的实践x范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
[摘要] 由于单片机的精确控制能力,在许多领域得到了广泛的研究和应用,在这里,我有这样一个设想,运用单片机结合AD590传感器的性能,设想实现水温控制系统。其中包括了温度检测,加热控制,数据显示等功能。
[关键词] 单片机 控制 水温 AD590
一、设计目标
温度设定范围为40℃~90℃,最小区分度l℃,标定误差不大于1℃;用十进制数码显示水的实际温度;环境温度降低时,温度控制的静态误差不大于1℃。
二、AD590温度传感器简介
AD590是美国AD公司生产的单片集成两端感温电流源。它的测温范围为一55℃~+150℃,工作电压范围为4 V~30 V,可以承受44 V正向电压和20 v反向电压,输出电阻为710 MΩ。误差为士0.3℃。AD590为电流输出型器件,必须利用接口电路将其电流信号转换为电压信号,再经过A/D转换器转换成数字信号,提供给单片机处理。图1-1电路可将输出电流转换成0 V~5 V的模拟电压。
图1-1 温度采集电路
三、硬件电路
硬件电路由单片机、温度检测模块、加热控制模块、键盘设定模块及数据显示模块构成。
1.单片机选择
由于系统对控制精度的要求不高,所以选用内部具有程序存储器芯片的AT89C51就可以满足要求了。
2.温度检测模块
温度检测模块由温度传感器、信号放大器及A/D转换器组成。由AD590将温度转换成电流信号再经信号放大器得到对应的模拟电压,再经ADC0809转换后接入单片机。
3.加热控制模块
加热控制信号经反相器反相后,驱动固态继电器(SSR)工作,从而接通或断开加热丝两譬的电源,实现对水的加热控制。加热控制电路如图1-3所示。为了使加热控制更加精确,系统采用了三组加热电炉丝组合实现,当温差小于5℃,仅L组加热丝工作;当温差在5℃~l0℃之间时,采用A、B两组加热控制;当温差大于l0℃时,采用A、B、C三组加热控制。
4.键盘设定模块及数据显示模块
键盘扫描由11个按键及3位LED共阳极显示器组成。通过Pl、P2口直接驱动键盘,为简化显示接口,这里采用串行口扩展LED显示器,如图l-2所示。
四、软件设计
1.程序结构设计
(1)主程序
用于进行初始化处理,包括各端口的初始化、定时/计数器的设定、中断允许的设定等。同时进行键盘的扫描输入。
(2)定时中断服务程序
通过单片机内部的定时器T0进行50 ms定时,再通过寄存器R6进行计数,以实现l s定时中断的要求。进入中断服务程序之后,可进行当前温度的检测及显示,根据所测值与设定值的比较结果进行温度控制。图1-5为中断服务程序流程图
(3)温度检测程序
温度检测采用每1 S定时采样一次的方式,为了实现温度的准确检测,采用了平均值滤波法以抗干扰。即连续4次起动ADC0809进行A/D转换,求取转换结果的平均值,存入指定单元,以得到检测温度值。
图1-2 水温控制系统硬件原理图
(4)温度控制程序
通过比较键盘设定值与温度检测值之间的差别,按照一定的控制规律,控制输出口线的状态,实现3组加热丝的控制。
(5)温度显示程序
在每次温度检测之后,进行一次温度显示刷新。在进行温度设定时,显示所设定的温度值。
2.主要程序模块清单
0RG 0000H
AJMPMAIN
ORG000BH
AJMP TOINT
0RG 0030H
MAIN:MOVSP,#60H
MOVPl,#OFFH
MOVSCON,#00H
MOVTMOD,#01H
MOVTH0,#3CH
MOV TL0,#0B0H
MOV R6,#14H
MOV5DH,#00H
MOV5EH,#00H
MOV5FH,#00H
ACALL DISP
SETBET0
SETBEA
SETB TR0
LM0:ACALL KEYSCAN
AJMPLM0
TOINT:MOVTH0,#3CH
MOV TL0,#0B0H
DJNZ R6,TOEND
CLR TR0
CLREA
MOVR6,#14H
ACALL llADC
ACALL XSCL
ACALL DISP
ACALL TCONT
SETB TR0
SETBEA
TOEND:RETI
TADC:MOV50H,#00H
MOVB,#00H
MOV R7,#04H;
MOVDPTR,#7FFFH
TT0:MOVX @DPTR,A
JBP3.2,$
MOVX A,@DPTR
ADDA,50H
MOV50H,A
JNC TTl
INCB
TTl:DJNZ R7,TT0
CLRC
XCHA,B
RRCA
XCHA,B
RRCA
CLRC
XCHA,B
RRCA
XCHA,B
RRCA
MOV50H,A
PET
TCONT:MOVA,51H
CLRC
SUBBA,50H
MOVR0,A
JNCCCPR
MOV Pl,#0FFH
AJMPCONEND
CCPR:MOVA,R0
SUBBA,#19H
JCCCPRl
MOV Pl,#0F8H
AJMPCONEND
CCPR1:MOVA.R0
SUBBA,#0CH
JCCCPR2
MOV Pl,#0FCH
AJMPCONEND
CCPR2:MOV Pl.#OFEH
CONEND:RET
DISP:MOVR2,#03H
MOVRl,#5DH
SETBPl.3
DL0:MOVA,@R1
MOVDPTR,#TAB
MOVC A,@A+DPTR
MOVSBUF,A
DLl:JNB Tl,DLl
CLR Tl
INC Rl
DJNZR2,DL0
RET
TAB:DB OCOH,0F9H,0A4H,0BOH,99H
DB 92H,82H,0F8H,80H,90H