1、毕业设计(论文)第 1 页 共 27 页温度监控系统的设计系统的软件设计指导老师:* 老师摘 要随着科技的发展,相较于很多年以前人们对于自己生活的需求也发生了戏剧性的改变。而监控系统恰恰迎合了人们的这一需要。在众多先进测量控制技术中,由于单片微处理器的性能日益提高、价格又不断降低,使其性能价格比的优势非常明显并且我们知道利用MATLAB可以方便地进行仿真整定 PID参数。本文介绍一个以单片机为核心的温度监控系统,主要包括控制算法的仿真分析(用MATLAB)和软件编程(用C51) ,它是利用传感器采集温度信号, 温度信号经放大电路放大、AD转换后送到单片机中,并将温度值显示在数码管上,单片机把它
2、同由键盘实现的给定温度进行比较,再由单片机根据控制策略给出控制量,然后将控制量送驱动电路驱动加热装置和报警装置,从而构成了实时闭环系统。本人主要负责系统的软件设计,在软件设计过程中,我们尽可能使其功能化、模块化、尽量采用子程序调用的方法。【关键字】单片机;温度监控系统;PID 控制算法;MATLAB;软件设计(C51 ) 。AbstractWith the increasing pace of science and technology, perhaps no change has characteristic the past decades more dramatic than that
3、 of peoples demands of their own life. Supervision and monitoring system meet the requirements of them. In these numerous advanced measurement and control technology, because of the enhanced performance and reduced price of MCU, making the advantage that its ratio of performance to price been obviou
4、s and as we know MATLAB is easy to simulate the setting of PID parameter. This text, which comprised by the simulation and analysis of control algorithms (using MATLAB) and the program of software (using C51), introduces a temperature monitor whose core is a MCU. It gathers the temperature signal an
5、d amplifies it by an 毕业设计(论文)第 2 页 共 27 页amplifier circuit microcomputer. Simultaneity sends it into the MCU after A/D conversion. Then show it on in the LED. The single chip compares it with the temperature, which realizes by the keyboard and give control measure according to the control strategy.
6、In the end, the MCU sends control measure to drive circuit in order to drive the heating installation and warning device. And a closed system is formed.I am mainly responsible for the software design of the system .In process of the software design; we make its function, modularization and use subro
7、utine as far as possible. KEYWORDS: MCU; temperature monitor system; The control algorithm of PID;MATLAB; software design(C51).毕业设计(论文)第 3 页 共 27 页目 录引 言 -31 系统概述 -41.1 系统功能描述 -41.2 系统的框图 -42 、PID 控制与 MATLAB 仿真 -52.1 PID 控制 -52.1.1 PID控制的优点 -52.1.2 数字 -52.1.3 凑试法确定 PID参数 -52.1.4 电炉传递函数 -62.1.5 控制框图
8、-72.2 MATLAB 仿真 -72.2.1 Simulink模型的建立 -82.2.2 PID 的 MATLAB编程实现 -93 、硬件概述 -103.1 硬件电路概述 -103.2 AT89C51 端口定义 -113.3 模数转换模块 -113.4 键盘模块 -123.5 显示模块 -134、 软件设计 -144.1 单片机编程语言的选择 -144.1.1 汇编语言 -144.1.2 C语言 -144.2 软件总体结构图 -154.2.1系统初始化 -154.2.2主程序模块软件设计 -154.3 A/D 模块软件设计 -164.4 键盘模块软件设计 -164.5 报警模块软件设计 -1
9、84.6 采样、PID 校正及 PWM 输出模块软件设计 -194.7 显示模块软件设计 -205、 系统调试与总结 -215.1 系统调试 -215.2 程序链接 -225.3 总结 -24毕业设计(论文)第 4 页 共 27 页5.4 英文及翻 译链接 -24参考文献 -25鸣 谢 -26引 言随着电子技术和微电子技术的发展,微型计算机发展也越来越快。单片机作为计算机的一个独特分支,打破了微型计算机按逻辑功能划分芯片结构的传统概念,以其体积小、功能强、性价比高等优点被广泛应用于诸多领域。单片机在一块芯片上集成 CPU, ROM, RAM、I/0 接口,定时器/ 计数器和中断系统等功能部件,
10、构成一个完整的微型计算机。由于单片机体积小、重量轻、噪声低、可靠性高,具有很强的灵活性,而且价格便宜,抗干扰能力强,开发效率高,易于产品化, 它的应用已深入到工业、农业、国防、科研以及日常生活用品(家电、玩具)等各种领域;温度是工业生产和科学实验中的重要参数之一,它已广泛应用于化工、冶金、医药、航空等领域里,对温度的控制效果直接影响到许多产品的质量及使用寿命,因此温度控制成为各个领域中的一项关键技术;本系统研究的即是一个以单片机为核心的温度监控系统,包括控制算法的仿真分析(用 MATLAB)和软件编程(用 C51) ,利用 Keil 和 Protues 软件进行联合仿真,并最终达到对温度信号进
11、行监测和控制的目的。 1 系统概述1.1系统功能描述本系统即是一个以单片机为核心的温度监控系统,利用传感器采集温度信号, 温度信号经放大电路放大、AD 转换后送到单片机中,并将其显示在数码管上,单片机把它同由键盘实现的给定温度进行比较,再由单片机根据控制策略给出 PWM 输出量,然后将输出量送驱动电路驱动加热装置和报警装置,从而构成了实时闭环系统。毕业设计(论文)第 5 页 共 27 页1.2 系统的框图 本系统框图如图 1-1 所示:2 、PID 控制与 MATLAB 仿真2.1 PID控制2.1.1 PID控制的优点PID 控制是历史最悠久、生命力最强的一种控制方法。上世纪 40 年代前,
12、除了在最极端的情况下可使用开关控制以外,他是唯一的控制方式。随着科技的不断进步尤其是计算机技术的迅速发展,又涌现出很多新的控制方法。然而,PID 控制却没有因此而略显逊色。迄今为止,它仍是应用最广泛的基本控制方式。PID 控制是比例微分和积分控制的简称,它具有如下的几个优点:滤波放大A/D转换隔离驱动键盘输入单片机显示报警PWM输出电阻丝图 1-1 系统框图毕业设计(论文)第 6 页 共 27 页(1) 原理简单,使用方便;(2) 适应性强,可广泛应用于热工,造纸等各种生产部门;(3) 鲁棒性强(也即其控制品质对被控对象特性参数的变化不敏感) 。2.1.2 数字用计算机进行 PID 控制时,因
13、计算机仅能处理离散信号,故而必须把 PID控制算法变换成计算机能实现的形式,即数字 PID:2.1.3 凑试法确定 PID参数增大比例系数一般将加快系统的响应,在有静差的情况下有利于减小静差。但过大的比例系数会使系统有较大的超调,并产生振荡,使稳定性变坏。增大积分时间有利于减小超调,减小振荡,使系统更加稳定,但静差的消除将随之减慢。增大微分时间有利于加快系统响应,使超调量减小,稳定性增强,但系统对扰动的抑制能力减弱,对扰动有较敏感的响应。在凑试时,可以参考以上参数对过程的影响趋势,对参数进行先比例、后微分,再积分的整定步骤。首先,只整定比例部分。即将比例系数由小到大,并观察相应的系统响应,直到
14、得到响应快、超调小的响应曲线。如果在比例调节的基础上系统的静差不能满足设计要求,则需要加入积分环节。整定时首先设置积分时间为一较大值,并将前面整定得到的比例系数略微减小,然后减小积分时间,使在保持系统良好的动态性能的情况下,静差得u(k)=Kpe(k)+Ki*e(j)+Kd e(k)-e(k-1)Te(k)当前误差值。e(k-1)上次误差。采样周期。j=1k毕业设计(论文)第 7 页 共 27 页到消除。若使用比例积分调节器消除了静差,但动态过程反复调整仍不满意,可加入微分环节,构成比例积分微分调节器,在整定时,可先置微分时间为零,在第二步整定的基础上,增大微分时间,同时相应地改变比例系数和积
15、分时间,逐步凑试,以得到满意的调节效果和控制参数。2.1.4 电炉传递函数要实现对系统进行 MATLAB 仿真,首先要建立电炉数学模型。常见的电炉模型是一阶惯性延时环节,在本次 MATLAB 仿真中用的就是此环节,如下示:2.1.5 控制框图110。 C PID+ IN OUT UT1T2G(s) = K*e-ss+1G(s)= K*e-ss+1延时时间,60S 。T 采样周期。 惯性周期,80S 。K 放大倍数。毕业设计(论文)第 8 页 共 27 页2.2 MATLAB仿真在计算仿真中,采用 C 语言实现,算法复杂,编程量大。而 MATLAB 是集数值计算、符号运算及图形处理等强大功能于一
16、体的科学计算语言。作为强大的科学计算平台,它几乎能满足所有的计算需要。在科研院所、大型公司、或企业的工程计算部门,MATLAB 也是最为普遍的计算工具之一。用MATLAB 实现 PID 参数控制器的参数整定,实现方法容易,程序简洁,可读性强加之强大的绘图功能使得整个结果更加清楚明了有助于读者的理解。MATLAB 与其它软件相比具有如下的优势和特点:(1)友好的工作平台和编程环境:随着 MATLAB 的商业化以及软件本身的不断升级, MATLAB 的用户界面也越来越精致,更加接近 Windows 的标准界面,人机交换更强。操作更简单。(2)强大的科学计算及数据处理能力MATLAB 拥有 600
17、多个工程中用到的数学运算函数 ,可以方便地实现用户所需要的各种计算功能(3)出色的图形处理功能MATALB 自产生之日起就具有方便的数据可视化功能,同样表现出强大的数据处理能力,同时对一些特殊的可视化要求,例如图形动画。(4)模块化的设计和系统的仿真Simulink 是 MATLAB 的一个分之产品,主要用来实现对工程的模型化和动态仿真。由于 Simulink 提供了用方框图进行建模的接口,使得用 Simulink 建模 就像用笔在纸上画图一样。它与传统的软件包相比具有直观、方便、灵活的优点。2.2.1 Simulink模型的建立PID(e,t) G(s)= K*e-ss+1+ UU 作为输出
18、,设计反馈回路将 U(即电炉当前温度)与设定温度值进行比较,毕业设计(论文)第 9 页 共 27 页然后通过 PID 控制器对偏差 e 进行控制,使电炉温度接近设定温度值。将加PID 控制器后的电炉温度值通过示波器输出,作为仿真结果,以判断控制的好坏。 对 PID 参数按上述凑试法进行整定,当 Kp=0.9;Ki=0.001;Kd=0.1 时,得到最佳控制结果,仿真结果如下图 2-1 所示:2.2.2 PID 的 MATLAB编程实现 整定 PID 的 M 函数如下示:function u=PID (e, t)persistent e_1 e_IT=1;Kp=0.6;Ki=0.001;图 2-
19、1毕业设计(论文)第 10 页 共 27 页Kd=0.1;if (t=0)e_1=0;e_I=0;ende_I=e_I+e;e_D= (e-e_1)/T;u=Kp*e+Ki*e_I+Kd*e_D;e_1=e;这是数字 PID 里的位置式 PID 控制算法,常见的数字 PID 还有:梯形积分式 PID 控制、积分分离式 PID 控制、增量式 PID 控制等。通过以上 Simulink 的仿真,整定出数字 PID 在采样周期为 1 秒时的 3 个最佳参数,Kp=0.9;Ki=0.001;Kd=0.1。以下内容即为利用这组参数而进行的基于单片机的温度监控系统的设计。毕业设计(论文)第 11 页 共
20、27 页3 、硬件概述3.1 硬件电路概述硬件电路包括:单片机(AT89C51) 、信号的模数转换(ADC0808) 、键盘电路(中断方式) 、显示电路(74LS47 译码兼驱动) 、P 监控电路(MAX813) 、报警电路(NE555)和加热电路等,由于是硬件仿真图,故后三者省略。整体图如下 3-1 示:图 3-1 系统图毕业设计(论文)第 12 页 共 27 页3.2 AT89C51 端口定义本系统的单片机选用的是AT89C51芯片,AT89C51芯片是一种低损耗、高性能、CMOS八位微处理器,片内有8K 字节在线可重复编程快擦快写程序存储器。图 3-2为其PDIP封装的管脚排列图 下面将
21、概述其部分管脚功能: P0口(39-32):双向I/O口,既可作地址/数据总线口用,也可作普通 I/O口用;本设计中用于传输AD数据。 P1口(1-8):准双向通用 I/O口;本口用于键盘输入( P1.3SET,P1.4 ADD,P1.5-SUB ) ,启动555(P1.2)以及改变555的频率(P1.6) 。P1.7口喂狗。P1.0,P1.1没有用到。 P2 口(21-28):准双向口,既可作地址总线口输出地址高 8 位,也可作普通I/O 用; 此口用于 LED 显示, P2.5、P2.6、P2.7分别用于 LED 个、十、百位的片选; P2.0P2.3 接 74LS47 的 ABCD 用于
22、译码。P2.4 口没用。4 P3 口(10-17):多用途端口,既可作普通 I/O口用,也可按每位定义的第二功能操作;P3.0接 PWM 输出驱动电路;ADC0808 的模数转换结束后 EOC 经过一反相器将转换结束信号送入P3.2 口,89C51 产生中断,进而通过 P0 口开始读数据;P3.3 外部中断 1,接键盘中断;P3.5 定时器 1 为 ADC0808 提供时钟;P3.6 写信号,送出一个下降沿,经反相器后启动 AD;P3.7 读信号,经反相器后接 ADC0808 的读允许;P3.1,P3.4 不接。5 RST:复位信号输入端,高电平有效;看门狗复位。6 EA/Vpp:内部和外部程
23、序存储器选择线。3.3 模数转换模块 输入电路通过温度传感器采集温度信号,经滤波、隔离、放大处理后,得到是一个模拟电压信号。这一模拟信号通过 A/D 转换器把它转化为数字信号,进而让 CPU 对其进行处理和控制。我们选用了以下器件:模数转换器EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P00 39P01 38P02 37P03 36P04 35P05 34P06 33P07 32P20 21P21 22P22 23P23 24P24 25P25 26P26 27P27 28PS
24、EN 29ALE/P 30TXD 11RXD 10AT89C51. .图 3-2 AT89C51 管脚图毕业设计(论文)第 13 页 共 27 页(ADC0808) 、或非门 2 个(74LS02) 、非门 1 个。ADC0809 是逐次逼近型的 A/D 转换芯片,它具有较高的转换速度和精度,受温度影响较小,能较长时间保证精度,重现性好,功耗低,具有 8 通道模拟开关,而且具有 TTL 三态输出易于单片机接口,所以它是用于过程控制比较理想的器件。因此,我们选用了 ADC0808。硬件电路设计如图 3-3 所示:ADDC、ADDB、ADDA 接高电平,这样只要 ALE端有高电平出现,就会把 IN
25、7选中。启动信号 START由 P2.0结合/WR提供,地址锁存信号ALE 与START 连接, 所以,在单片机执行写操作同时 P2.0 为低电平,便可启动转换。转换结束信号EOC 经过非门与单片机的 IN7 连接,当转换结束时,EOC 上的高电平经非门取反后,便可向单片机请求中断;输出允许信号 OE 由 P2.0 结合/RD 产生,在执行读操作同时 P2.0 为低电平时,便可读取转换后的数字量。由此可见,启动转换和读取数字量占用同一地址,我们将这个地址设为 0000H。ADC0808 的时钟频率范围为 101280KHZ,我们的 CPU 使用的是 12MHZ 的晶振,那么 CPU 执行一条指
26、令的频率为 12MHZ/12=1MHZ,所以,其指令周期为 10-6s,又知定时器 1 为 AD 提供 CLK,其初值为 0FEH,到 100H 须执行两条指令,所以,取反一次就是四条指令,即 410-6s。而 ADC0808 把模拟量转化为数字量需要 64 个时钟周期,所以 ADC0808 的时钟频率为 250KHZ/641HZ(CPU1 秒钟取 1 次数) ,完全满足要求。3.4键盘模块按照键盘与 CPU 与键盘的连接方式可以分为独立式和矩阵式键盘。独立式键盘是各个按键相互独立,每个键盘占用一个 I/O 口,各个 I/O 口上的按键不会相互影响。在使用较多键盘时,占用的 I/O 口过多,这
27、样会浪费 I/O 口线,而且电路结构也显得复杂;矩阵式键盘有行线和列线组成,按键设置在行列结图 3-3 ADC0809毕业设计(论文)第 14 页 共 27 页构的交叉点,行列线分别连在按键开关的两端。列线通过上拉电阻接至正电源,以使无键按下时列线处于高电平状态。 硬件电路设计如图 3-4 所示:单片机的P1.3,P1.4,P1.5 口分别与“SET”键, “+”键, “-”键三个键相连接,键的左端均接地,右端通过上拉电阻接至 5V 电压,通过一个三输入的与门接至单片机的 INT1。这样在没有键按下时,三个 I/O 口都是高电平,当有键按下时,不仅会使某个 I/O 口的输入为低电平,而且会通过
28、与门给 INT7 端输入低电平,从而产生中断。3.5显示模块LED 数码管是最常用的显示器件之一。LED 显示器是由发光二极管显示字段组成的,它有共阴极和共阳极两种连接方式。LED 显示方法有两种:动态显示和静态显示。动态显示是 CPU 对显示器件进行动态地扫描,显示器件分时工作,每次只能有一个显示。但由于人视觉的占留现象,所以,仍觉得器件都在显示;动态显示是 CPU 只一次输出显示数据后,就能保持数据一直在显示,直到下一次刷新显示数据。比较两种显示方式,前者占用机时长,一旦 CPU 不执行显示程序,就立刻停止显示;后者占用机时少,并且可靠性好。通常静态显示电路使用元件多,线路复杂,但是现已出
29、现功能比较强大的显示驱动器,使线路显得也比较简单。本系统显示模块选用的器件如下:显示驱动译码器是 74LS47(动态显示)图 3-5 显示电路图 3-4 键盘电路毕业设计(论文)第 15 页 共 27 页、共阳极 LED 数码管显示器。接法见右图 3-5。4、 软件设计一个成熟的单片机应用系统是由软硬件结合而成的,二者相辅相成,缺一不可。可以这样形容软件和硬件之间的关系,硬件是系统的“载体” ,而软件是使“载体”产生动力的发电机。所以硬件要在软件的配合下才能完成预先确定要实现的各种功能,本章主要阐述系统的软件设计。4.1 单片机编程语言的选择对于单片机,特别是 8 位 51 系列单片机,有两类
30、编程语言支持:即低级语言和高级语言。低级语言即指汇编语言,高级语言有 C 和 PL/M。4.1.1 汇编语言汇编语言是面向硬件的低级语言,它有着面向硬件的低级语言的一般优点 占用内存单元少,占用 CPU 资源少; 代码效率高,程序执行速度快; 可直接对硬件进行操作; 能精确掌握指令的执行时间,适合实时控制场合及对时间精度要求高的场合。但也有它的缺点: 不是结构化程序设计语言; 编写较难,编写效率低,不适合开发复杂的大型项目; 调试较难; 由于完全面向硬件,故可移植性很差。4.1.2 C语言C 语言是一种编译型程序设计语言,它有如下特点: 具有完善的模块程序结构,可以进行模块化程序设计;毕业设计
31、(论文)第 16 页 共 27 页 兼顾了多种高级语言的特点,并具备汇编语言的功能,可以直接面向单片机的硬件编程 可读性好,可靠性高,代码转换质量较高; 程序编制效率高、周期短。对于本系统,由于 C 语言优于汇编语言,所以我们选择 C 语言中 C51 作为编制系统软件的编程语言。4.2 软件总体结构图本系统的软件设计过程中,我们尽可能使其功能化、模块化、尽量采用子程序调用的方法。其软件设计包括系统初始化、主程序模块、A/D 模块、键盘模块、显示模块、报警模块和加热模块。4.2.1系统初始化本系统的初始化包括定义头文件和各个输入管脚以及初始化全局变量和各标志位。图 4-1 软件总体结构图报警模块
32、A/D 模块键 盘 模 块调节上设定值调节上限调节下限主程序模块系统初始化显 示 模 块显示设定值显示最大值显示当前温度值显示最小值扬声器报警加热模块计算PID值PWM输出闪烁显示报警毕业设计(论文)第 17 页 共 27 页4.2.2主程序模块软件设计本系统的主程序模块包括初始化、A/D 转换模块、 PID 校正值计算、键盘模块、显示模块、加热模块、报警模块。初始化定时器 T1 为自动重装载的模式并让其无限工作下去,从而为 AD 提供时钟信号。定时器 0 每 1/127 秒中断一次,定时器每中断 127 次(1 秒)为一个采样周期;首先判断有没有到采样时间;到的话再判断温度是否越限;然后判断
33、是否需要 PID 校正值计算。主程序流程图如图 4-2 所示:4.3 A/D模块软件设计AD 转换的软件设计主要负责:AD 地址的初始化、启动转换和转换结束时的数据读取。为了提高系统的效率,本系统采用中断方式采集温度。在 A/D 转换结束后,EOC 引脚自动变为高电平,通过一个反向器使得外部中断 0 受到下降沿触发,从而进入外部中断 0 服务子程序,在中断结束返回主程序前,再次启动 A/D 转换,进行下一次转换,即可采集到当前比较可靠的温度值。A/D 转换流程图如图 4-3 所示:图 4-3 A/D 转换(外部中断 0)流程图序关 中 断 开 中 断开 始返 回读取数据启动定时器系统初始化启动
34、AD转换开中断显示函数调用设置函数开始设置按下?调用设置函数图 4-2 主程序流程图毕业设计(论文)第 18 页 共 27 页4.4 键盘模块软件设计 键盘防抖动措施键盘实际上是一组按键开关的组合。一般情况下,键盘采用机械弹性开关来反映一个电压信号的开、断。由于机械触点的弹性作用,在闭合和断开瞬间会有抖动发生,抖动时间长短由按键的机械特性决定,一般为510ms。为了确保按键不产生误动作,必须消除抖动的影响。否则,一次按键的动作会当作几次按键动作。 对于本系统,我们使用的是软件消抖的方法。 键盘处理控制方式CPU 对键盘控制主要有三种:程序控制扫描方式,定时扫描控制方式和中断控制方式。第一种方式
35、是在 CPU 工作空余,调用键盘扫描子程序,响应键输入信号要求;第二种方式是利用定时器/计数器每隔一段时间产生定时中断,CPU 响应中断后对键盘进行扫描并在有键闭合时转入该键的功能子程序;中断控制方式是利用外部中断源,响应键输入信号,当无键按下时,CPU 执行正常工作程序。当有键按下时,CPU 立即中断,在中断服务子程序中扫描键盘,判断是哪个键被按下,然后执行该键的功能子程序。从这三种控制方式来看,第一种方式占用了太多时间,第二种方式也可能产生空扫描和不能及时响应键输入,同时占用了一个定时器,而第三种方式既能及时的处理键输入,又提高了CPU 的运行效率 。为了提高 CPU 的运行效率,我们采用
36、了中断方式。 键盘模块程序设计键盘模块主要包括三个模块:中断模块、键值处理模块、设置模块(调节设定温度值子模块、调节温度上限子模块、调节温度下限子模块) 。中断模块:当有键按下时,进入中断服务子程序。此程序中还包括键盘的防抖动处理和判断键值。 键值处理模块:当“Set”键按下时,即进入设置状态;当 “+”键按下时,即显示最大值;当“-”键按下时,即显示最小值。毕业设计(论文)第 19 页 共 27 页键盘模块流程图分别如图 4-4 所示: 设置模块(如上图 4-5 示):调节设定温度子模块:当“+”键按下时,设定值 Set_data 加 1;当“-”键按下时,设定值 Set_data 减 1;
37、 当“Set”键按下时,表示此状态设定完毕,进入设置最大值子模块。调节温度上限子模块:当“+”键按下时,设定值 Max_data 加 1;当“-”键按下时,设定值 Max_data 减 1; 当“Set”键按下时,表示此状态设定完毕,进入设置最大值子模块。调节温度下限子模块:当“+”键按下时,设定值 Min_data 加 1;当“-”键按下时,设定值 Min_data 减 1; 当“Set”键按下时,表示此状态设定完毕,退出设置函数。“Set”键判断键值关 中 断“-”键“+”键调用设置函数 显示最大值键按下标志位置 1开始开 中 断图 4-4 键盘中断服务流程图返 回延时防抖显示最小值设置键
38、按下?设置自控温度NY设置键按下?设置上限温度NY设置键按下?设置下限温度NY返 回设置函数图 4-5 设置流程图毕业设计(论文)第 20 页 共 27 页4.5 报警模块软件设计当采集的当前温度值大于温度上限值时,555 定时器控制端置 0 并使 P1.6口即 F_Chng(改变 555 频率的口)置 1,即发出上限报警声音;当采集的当前温度值小于温度下限值时,555 定时器控制端置 0 并并使P1.6 口即 F_Chng(改变555 频率的口)置 0,即发出下限报警声音;当采集的温度值介于温度上限值和温度下限值时之间,555 定时器控制端置1,不发出任何声音。报警模块程序流程图如图 4-6
39、 所示:4.6 采样、PID 校正及 PWM 输出模块软件设计在实际应用中,可选用的控制算法很多,但最常用的仍然是数字 PID 算法。最优控制理论已证明:PID控制能满足大多数工业对象的控制要求。PID 算法蕴含了动态控制过程中过去、现在、将来的主要信息,而且其配置几乎最优。其中比例(P)代表当前的信息,起纠正偏差的作用,使过程反应迅速;微分(D)代表了将来的信息,在信号变化时有超前控制作用,有利于克YY图 4-6 报警和 PWM 输出流程图Max正常T0_count - -判断所采AD数据下限报警上限报警再次启动AD调用PIDT0内部定时器中断T0_coun t=0?T0_coun t赋初值定时器赋初值返 回PWM 输出加热PWM_count=0?PWM_count - -关闭加热N毕业设计(论文)第 21 页 共 27 页服振荡,提高系统稳定性,加快系统的过渡过程;积分(I)代表了过去积累的信息,它