配色: 字号:
基于AT89S51单片机的温度控制系统设计22
2012-05-04 | 阅:  转:  |  分享 
  
基于AT89S51单片机的温度控制系统设计

陈妙芳,胡晓东

(浙江工业职业技术学院,浙江绍兴312000)

在对各种加热炉、热处理炉、反应炉和锅炉中温度进

行监测和控制中,采用单片机控制不仅具有控制方便、简

单和灵活性大等优点,而且可以大幅度提高被控温度的

技术指标,从而能够大大提高产品的质量和数量。本文主

要对英联公司生产的YL2000型传感器与检测技术实验

台-温度控制系统设计方案进行介绍。该控制系统以MS-

5l单片机为控制核心,采用增量式PID控制算法,实现对

温度的智能控制,测程为0℃~100℃,测量范围±0.2℃。同

时,具有超调量小、温度上升较快、稳定性好等优点。温度

控制箱结合其它控制器件可以完成Cu50温度传感器的

温度特性实验、热电阻Pt100温度特性实验、热电偶测温

实验、温度仪表PID控制实验、外部温度控制实验系统、

计算机温度PID控制实验等系列实验。

1温度控制系统设计方案

温度控制系统是以MS-5l单片机为控制核心,辅以采

样反馈电路、驱动电路、晶

闸管主电路对电炉炉温进

行控制的微机控制系统,

系统所用的加热方式为电

炉加热。温度控制系统采

用单闭环控制形式,其系

统结构框图如图1所示。具体工作过程为:将温度设定值

(即输入控制量)和温度反馈值送入控制电路,然后经过调

节器运算得到输出控制量,输出控制量控制驱动电路得到

控制电压施加到被控对象上,从而控制电加热炉内温度。

2温度控制系统硬件设计

温度控制系统硬件包括:AT89S51单片机最小系统

模块、A/D转换模块、D/A转换模块、晶闸管电路、驱动电

路以及其它外围电路。

2.1单片机选型

本文设计的温度控制系统主要应用于高校的实验课

堂教学,因此,该温度控制系统单片机采用ATMEL公司

生产的低功耗、高性能CMOS8位单片机AT89S51。

AT89S51完全兼容传统8051的指令系统和引脚,是一款

非常适合单片机初学者学习的机型,其网络资源丰富,应

用领域广泛,又与单片机教学课程学习紧密相关,选用该

单片机有利于学生对51系列单片机的进一步学习与灵

活应用。同时AT89S51型单片机具有在线编程功能,不

再需要启动像89C51那样的12V的VPP编程高压。

2.2A/D转换电路设计

温度控制系统

的A/D转换模块采

用ADC0804型8位

全MOSA/D转换

器。ADC0804芯片

内有三态数据输出

锁存器,电平与微处

理器兼容。输入方式为单通道,转换时间约为100μs,转

换时钟信号可以由内部施密特电路和外接RC电路构成

的震荡器产生,也可以直接由外部输入,频率范围为:100~

1460kHz,在本设计中ADC0804的时钟为最大输入频率。

ADC0804非线性误差为±1LSB,电源电压采用单+5V。其

控制信号时序如图2所示。

AD0804由于具有三态输出锁存器,可直接驱动数据

总线,故与AT89S51接口电路十分简单,直接连接成如

图3即可。当/CS与/WR同时有效时便启动A/D转换,延

时,等待转换结束,经DATA口送入单片机,再采集第二

个模拟量进行转换。

摘要:介绍了单片机AT89S51单片机在温度控制上的应用,从软硬件两方面阐述了温度控制系统的设计方案,并对

系统的A/D转换电路与D/A转换电路作了详细的说明,同时对数字增量式PID控制算法以及实现程序作了介绍。

关键词:温度控制系统;单片机;PID控制

中图分类号:TP273文献标识码:A文章编号:1002-2333(2009)01-0136-02

DesignofTemperatureControlSystemBasedonAT89S51Single-chipMicrocomputer

CHENMiao-fang,HUXiao-dong

(ZhejiangIndustryPolytechnicCollege,Shaoxing312000,China)

Abstract:ThispaperintroducestheapplicationofSingle-ChipMicrocomputerintemperaturecontrolsystem.The

designoftemperaturecontrolsystemwasdiscussedfromboththehardwareandsoftware.TheA/Dconversioncircuit

andtheD/Aconversioncircuitweregiven.AtthesametimetheincrementaldigitalPIDcontrolalgorithmand

realizationoftheprogramwereintroduced.

Keywords:temperaturecontrolsystem;microcomputer;PIDcontrolalgorithm

89S51

DAC0832

74LS464AD0804

温控电路

过零信号发生

传感器检测电路

电炉键盘与显示

图1系统结构框图

CS

WR

INTR

RD

DATA

OUT

DATA

100μs

高阻

图2ADC0804控制信号时序图

ACADEMICCOMMUNICATION

学术交流

理论/研发/设计/制造

机械工程师2009年第1期

136

!!!!!!!!!!

AD0804转换器的零点无需调整,而输入电压的范围

可以通过调整V

REF/2

端处的电压加以改变。V

REF/2

端电压应

为输入电压的1/2。例如该系统中输入电压为5V,则在



REF/2

端应加上2.5V电压。根据AD0804的外围电路所示

得:V

REF/2

=

2k

2k+2k

v

in

=

1

2

v

in

(1)

由于该系统测量的温度范围是0-100℃,由变送器把

温度信号转换为0-5V的电信号,送入0804,由于0804

是8位模数转换器,即0-5V被线性转换0-255字节变

化,因此其中具体的转换过程为:

每增加1℃,电压变化0.05V:

5V/100℃=0.05V/℃(2)

每变化1V,AD0804数据输出变化51字:

255bit/5V=51bit/V(3)

ADC0804与AT89S51的接口电路如图3所示。

2.3D/A转换电路设计

温度控制系统D/A转换芯片采用DAC0832。DAC0832

芯片是8位分辨率的D/A转换集成芯片,与微处理器完全兼

容,这个系列的芯片以其价格低廉、接口简单、转换控制容易

等优点,在单片机应用系统中得到了广泛的应用。

图4为单片机和DAC0832直通方式输出连接图,运

放输出电路输出电压为U

OUT

=-(D/256)V

REF

。如向

DAC0832传送的8位数据量40H(01000000B),则输出

电压U

OUT

=-(64/256)×5V=-1.25V,其输出过程可用MOV

P0,#40H一条指令完成。

3PID温度控制算法程序

3.1PID温度控制的算法

PID控制算法是温度控制系统软件的核心部分。本

设计采用增量式PID控制算法,其算式如下:

△U

n

=K

p

[(e

n

-e

n-1

)+(T/T

i

)e

n

+(T

d

/T)(e

n-2

e

n-1

+e

n-2

)](2)

式中,e

n

、e

n-1

、e

n-2

分别为第n次、n-1次和n-2次的偏差

值;K

p

、T

i

、T

d

分别为比例系数、积分系数和微分系数;T为

采样周期。

控制模块工作过程为:单片机每隔固定时间T将现场

温度与用户设定目标温度的差值带入增量式PID算法公

式,由公式输出量决定加热器功率大小。根据现场温度与

目标温度的偏差大则电压导通个数多,加热电路的加热功

率大,使温度的实测值与设定值的偏差迅速减少;反之,二

者的偏差小则电压导通个数小,加热电路加热功率减少,

直至目标值与实测

值相等,形成一个闭

环调节系统。

3.2PID温度控制

程序

增量式数字

PID控制算法程序流

程图,如图5所示。

数字赠量式PID

控制子程序如下:

typedefstructPID{

doubleSetPoint;//设定目标DesiredValue

doubleProportion;//比例常数ProportionalConst

doubleIntegral;//积分常数IntegralConst

doubleDerivative;//微分常数DerivativeConst

doubleLastError;//Error[-1]

doublePrevError;//Error[-2]

doubleSumError;//SumsofErrors

}PID;

doublePIDCalc(structPIDpp,doubleNextPoint)



doubledError,Error;

Error=pp->SetPoint-NextPoint;//偏差

pp->SumError+=Error;//积分

dError=pp->SumError-2pp->LastError+pp->PrevError;

//当前微分

pp->PrevError=pp->LastError;

pp->LastError=Error;

return(pp->ProportionError//比例项

+pp->Integralpp->SumError//积分项

+pp->DerivativedError//微分项

);



4结论

本文设计的温度控制系统具有成本低、控制可靠等

优点。经过实验验证该温度控制系统达到了预期的设计

要求。同时,该控制系统作为一个嵌入式温度控制系统也

适合其它的小型温度控制场合。

[参考文献]

[1]胡伟,季晓衡.单片机C程序设计及应用实例[M].北京:人民邮

电出版社,2003.

[2]潘新民,王燕芳.微型计算机控制技术[M].北京:电子工业出版

社,2006.(编辑明涛)

作者简介:陈妙芳(1982-),女,助理讲师,研究方向为机电一体化。

收稿日期:2008-10-28

P0

1

1

2

3

4

5

6

7

8

DATA

7

6

5

4

16

15

14

13

1

17

DA-VCC

2

0

VCCJ29

J5

2

1sbD10

D11

D12

D13

D14

D15

D16

msbD17

CS

Xfer

IC4DAC0832

V

c

c

Iout1

Iout2

Rfb

Vref

ILE

WR2

WR1

11

12

9

8

19

18

2

C11

100μF

+C19

104

R79

2k

R80

2k

J10

O1

1

2

A-OUT

图4单片机和DAC0832直通方式输出连接图









A/D

D/A

y

△u

y(k)

△u(k)

程序初始化

从A/D取数据y(k)

求e(k)=e(k)-y(k)

计算控制增量

△u(k)=q0e(k)+qe(k-1)+q2e(k-2)

将控制增量输出给D/A

为下一时刻做准备

否采样

时间到?

图5增量式PID控制算法的流程图

ADC-IN

J5

1

2

R3

2k

R2

2k

R4

2k

R43

10k

C26

200

+C17

104

7

6

8

9

19

4

ADC0804

2

0

VCCJ30

1

2

AD-VCC

接AT89S51

P3口

J11

















DATA

P1.6

P1.7

J12

1

2

ADC-C

17

16

15

14

13

12

11

18

5

1

2

3

Vin(-)

IC5

Vin(+)

A-GND

Vref/2

CLK-R

CLK-IN

1sbDB0

DB1

DB2

DB3

DB4

DB5

DB6

msbDB7

INTR

CS

RD

WR

V

c

c

R

E

F

图3ADC0804与AT89S51的接口电路

C9

100μF

137

机械工程师2009年第1期

学术交流

理论/研发/设计/制造

ACADEMICCOMMUNICATION

献花(0)
+1
(本文系朽木轩首藏)