1、#*#*摘 要本设计是一种温度控制系统,温度控制在工业生产和科学研究中具有重要意义。其控制系统属于一阶纯滞后环节,具有大惯性、纯滞后、非线性等特点,导致传统控制方式超调大、调节时间长、控制精度低。采用单片机进行炉温控制,具有电路设计简单、精度高、控制效果好等优点,对提高生产效率、促进科技进步等具有重要的现实意义。PID 控制法最为常见,控制输出采用 PWM 波触发可控硅来控制加热通断。使系统具有较高的测量精度和控制精度。单片机控制部分采用 AT89S51 单片机为核心,采用 Keil 软件进行编程,同时采用分块的模式,对整个系统的硬件设计进行分析,分别给出了系统的总体框图、温度检测调理电路、A
2、/D 转换接口电路,按键输入电路以及显示电路,并对相应电路进行相关的阐述软件采用 PID 算法进行了建模和编程,在Proteus 环境中进行了仿真。关键词:PID;单片机;温度控制;Keil;Proteus#*AbstractThis design is a kind of temperature control system,The temperature control in industrial production and scientific research is of great significance.Belongs to pure first-order lag link,
3、 the control system has the characteristics of big inertia, pure lag and nonlinear, the traditional control overshoot and adjustment time is long, low control precision.By single chip microcomputer temperature control, has simple circuit design, high accuracy and good control effect, to improve the
4、production efficiency, promote the progress of science and technology has important practical significance.PID control is the most common, the control output PWM wave triggering thyristor is used to control the heating on and off.Make the system has high accuracy of measurement and control precision
5、.Single-chip microcomputer control part adopts single chip microcomputer AT89S51 as the core,Using Keil software programming,Using block pattern at the same time, analyzes the hardware design of the whole system, respectively, of the overall system block diagram is given, the temperature detection c
6、ircuit, A/D conversion interface circuit, key input circuit and display circuit, and the corresponding circuit are related in this paper, the software, the PID algorithm is used for modeling and programming in the Proteus simulation environment.Key words:PID;Single chip microcomputer;The temperature
7、 control;Keil ;Proteus#*目 录 1 绪论 .12 设计方案 .23 系统硬件仿真电路 .33.1 温度测量调理电路 .33.2 A/D 转换电路 .43.3 按键输入电路 .53.4 数码管显示电路 .63.5 温度控制电路 .74 程序设计 .94.1 程序整体设计 .94.2 子程序设计 .114.3 源程序设计 .195 软件调试与运行结果 .41结论 .42致谢 .43参考文献 .44#*1 绪论现代工业生产过程中,用于热处理的加热炉,需要消耗大量的电能,而且温度控制是纯滞后的一阶大惯性环节。现有企业多采用常规仪表加接触器的断续控制,随着科技进步和生产的发展,这
8、类设备对温度的控制要求越来越高,除控温精度外,对温度上升速度及下降速度也提出了可控要求,显而易见常规控制难于满足这些工艺要求。随着微电子技术的发展,采用功能强、体积小、价格低的智能化温度控制装置控制加热炉已成为现实。采用单片机来对温度进行控制不仅具有控制方便、简单灵活性等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量,比过去单纯采用电子线路进行 PID 调节的控制效果要好的多。微机控制系统的快速计算、灵活多样的逻辑判断和高效的信息加工能力使自动控制进入了更高一级的领域,提高了生产过程的自动化程度,减少了人工干预,并不断地完善和满足工农业生产和国防科技日益增长的需要
9、。微机控制系统由于具有成本低、体积小、功耗小、可靠性高和使用灵活等特点,因而广泛的应用于工农业生产、交通运输、国防建设和空间技术等各个领域。其控制对象已从单一的工厂流程扩展到企业生产过程的管理和控制。随着微机和单片机的推广使用,实现信息自动化与过程控制相结合的分级分布式计算机控制,使计算机控制技术的水平发展到一个崭新的阶段。现在,许多常规的控制仪表和调节器已经为计算机所取代。计算机不断地监视整个生产过程,对生产中的各个参数进行采样,迅速进行复杂的数据处理,打印和显示工艺过程的统计数字和参数,并发出各种控制命令。温度控制是工业生产过程中经常遇到的过程控制,有些工艺过程对其温度的控制效果直接影响着
10、产品的质量,因而设计一种较为理想的温度控制系统是非常有价值的。#*2 设计方案在温度测量控制系统中,实际温度值由 PT100 恒流工作调理电路进行测量。为了克服 PT100 线性度不好的缺点,在信号调理电路中加入负反馈非线性校正网络;调理电路的输出电压经 ADC0808 转换后送入单片机 AT89S51;对采样数据进行滤波及标定处理后,由 3 位 7 段数码管显示。输入的设定值由 4 位独立按键电路进行设定,可分别对设定值的十位和个位进行加 1、减 1 操作。设定值送入单片机后,由另外一组 3位 7 段数码管显示。数码管的段码由 74HC05 驱动,位码由三极管 2N2222A 驱动。为了使两
11、组数码管实时显示,对两组数码管进行动态扫描。整体的电路原理框图如图 1-1所示。图 1-1 整体电路原理框图系统采用 PID 闭环控制方案。如图 1-2 所示,将预置初值与温度传感器反馈信号比较得到偏差(e)进行 PID 运算处理得到控制量(u) ,通过此量来控制加热器的加热时间,从而控制加热功率。由于水本身具有很大的热惯性,所以必须对水温的变化趋势作出预测,并且根据需要及时反方向抑制,以防止出现较大的超调量的波动。在 PID 控制中,积分环节(I )具有很强的滞后效应,而微分环节(D)具有预见性,所以该方案最终采用 PD 算法,能够很好的控制超调,并且稳态误差也很小。图 1-2 系统控制方案
12、#*3 系统硬件仿真电路3.1 温度测量调理电路图 3-1 温度测量调理电路本系统采用恒流工作调理电路,铂电阻选用标称值为 100 的 PT100 作为温度传感器。A1、A2、A3 采用低漂移运放 OP07C,由于有电流经 PT100 传感器,所以当温度为 0时,在 PT100 传感器上有电压降,这个电压为 PT100 传感器的偏置电压,是运放 A1 输出电压的一部分,使恒流工作调理电路的输出实际不为零。所以需要对这个偏置电压调零,R3 为调零电阻,其作用为当温度为 0时,将恒流工作调理电路的输出调到零。又因为 PT100 的电阻特性为非线性,PT100 在 0 到 100变化范围内非线性误差
13、为 0.4%( 0.4) ,由于本系统无小数显示, 0.4的误差本身不会对 A/D 量化和数码管显示造成影响,但由于软件编制中,对标度变化程序中的变换系数做了近似处理,使得非线性误差接近 0.79%(0.79) ,就有可能对 A/D 量化和数码管显示造成影响,所以加进了线性化电路,运放 A3 及电阻 R1、R4 和 R6 一同构成了负反馈非线性校正#*网络。R5 用于调整运放 A2 的增益。电路的调整方法如下(用普通电阻代替 PT100 进行调整):(1)接入相当于 0的 100 的电阻,用于 R3 调零。(2)接入相当于 50的 119.70 的电阻,用于 R5 调整增益。(3)接入相当于
14、100的 139.10 的电阻,用于 R1 或 R4 调整线性。反复调整多次,在 0 到 100温度范围内适宜为止。以温度值为横坐标,电压值为纵坐标,由表 3-1 分析非线性误差可知:在 50时,存在最大偏差为 0.005,故非线性校正后非线性误差变为 0.1%(0.1 ) ,A/D 量化及数码管显示不会产生误操作。表 3-1 显示对照表理想温度值 0 10 20 30 40 50 60 70 80 90 100对应电阻值 100 103.9 107.9 111.8 115.7 119.7 123.9 127.4 131.3 135.2 139.1实际输出电压 0.002 0.502 1.00
15、4 1.502 2.004 2.505 3.001 3.502 4.001 4.498 4.996显示温度值 0 10 20 30 40 50 60 70 80 90 100注释 1;温度单位/;电阻值单位/;电压单位/V。3.2 A/D 转换电路本系统采用 5V 的电压源,用 PT100 电阻传感器组成的信号调理电路作为信号的输入装置,当 PT100 传感器置于温度场时,调理电路将根据 PT100 的阻值输出相应的电压值。将该输出电压送到 ADC0808 的模拟量输入通道 IN0,经 ADC0808 进行模数转换,将标准的模拟信号转换为等价的数字信号。本设计选用 IN0 作为模拟量输入通道,
16、则将 ADC0808 的 A、B、C 三条地址线均置为低电平。转换启动信号 START 接到 AT89S51 的 P2.0 口,转换结束状态信号 EOC 接 P3.7 口,输出允许信号 OE 接 P3.6口,地址锁存允许信号 ALE 接 P3.3 口,由于 ADC0808 内部没有时钟电路,所以用AT89S51 的 ALE 经二分频接 ADC0808 的 CLK 端,VREF-接地,VREF+ 接+5V 电压。ADC0808 的转换结果输出到 AT89S51 的 P0.0 到 P0.7 口,作为 AT89S51 的输入信号。A/D 转换接口电路如图 3-2 所示。#*图 3-2 A/D 转换接
17、口电路3.3 按键输入电路本系统采用 4 个按键搭建键盘电路,如图 3-3 所示。第一个按键用来判断是转入控制处理程序运行,还是转入键盘处理子程序运行;若未按下则转入控制处理子程序运行,按下则转入键盘处理子程序运行;若第一个按键按下,则第二个按键开始起作用,用第二个按键来判断是十位进行加减操作。若第二个按键未按下,转十位进行加减操作,否则转个位进行加减操作;第三个按键为减一操作,第四个按键为加一操作。为了方便按键操作,将个位和十位的设定值均设置为 5,如果加一操作结果等于 11,给加一单元重新赋值 5,如果减一操作结果等于 0FFH,给减一单元重新赋值 5。这样考虑最坏情况,即用键盘设置离初始
18、设定值最远的值,第三个按键最多按 5 次,第四个按键最多按 5 次。从而大大减少了按键次数,且更方便地给出设定值。第一个键和第二个键的加入,也充分考虑了总程序的整体调度。#*图 3-3 按键输入电路3.4 数码管显示电路显示电路采用两个 4 位 LED 显示数码管,共阴极接法。第一个数码管显示 A/D 转换数据采集的采样值,选用 3 位显示采样值,显示范围为 0 到 100;第二个数码管显示由键盘输入的设定值,用于显示对系统的温度设定,也选用 3 位显示设定值,显示范围为 0 到 100。由于 LED 显示电路较多选用动态扫描方式,为了实现 LED 显示器的动态扫描,除了要给显示器提供段的输入
19、外,还要对显示器的位进行控制,即段控和位控。所以需要用 P1 口输出 8 条段控线;位控线由挑选的P2.1、P2.2、P2.3、P3.0、P3.1 和 P3.2 输出,其中 P2.1、P2.2 和 P2.3 用于驱动键盘输入的设定值和数码管位控线,其余用于驱动显示 A/D 转换数码管的数据码位控线,位控线的数目等于数码管显示的位数。P1 接口最多可连接 8 个 LED 显示器。为提高显示亮度,通常加 74HC05 进行段控输出驱动,与 7 段数码管的段码驱动输入端相连,由于位控的驱动电流较大,8 段全亮需 40 到 60mA,所以用三极管 9012 提高驱动能力,其集电极接到 7 段数码管的位码驱