基于单片机的PWM控制方法的精密温度控制_毕业设计(论文).doc

上传人:来看看 文档编号:3922416 上传时间:2019-10-10 格式:DOC 页数:41 大小:990.42KB
返回 下载 相关 举报
基于单片机的PWM控制方法的精密温度控制_毕业设计(论文).doc_第1页
第1页 / 共41页
基于单片机的PWM控制方法的精密温度控制_毕业设计(论文).doc_第2页
第2页 / 共41页
基于单片机的PWM控制方法的精密温度控制_毕业设计(论文).doc_第3页
第3页 / 共41页
基于单片机的PWM控制方法的精密温度控制_毕业设计(论文).doc_第4页
第4页 / 共41页
基于单片机的PWM控制方法的精密温度控制_毕业设计(论文).doc_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《基于单片机的PWM控制方法的精密温度控制_毕业设计(论文).doc》由会员分享,可在线阅读,更多相关《基于单片机的PWM控制方法的精密温度控制_毕业设计(论文).doc(41页珍藏版)》请在三一文库上搜索。

1、毕 业 论 文(设 计) 中文题目:中文题目:基于单片机的基于单片机的 PWMPWM 控制方法的精密温度控控制方法的精密温度控 制制 系统设计系统设计 英文题目:英文题目:DesignDesign ofof P Preciserecise T Temperatureemperature C Controlontrol S Systemystem B Basedased onon PWMPWM C Controlontrol M Methodethod ofof M Microprocessoricroprocessor 姓姓 名名: : 姚佑鹏 学学 号号: : 090701224 专业班级专

2、业班级: : 09 电气工程及其自动化 2 班 指导教师指导教师: : 李卫平 提交日期提交日期: : 2013-05-15 惠州学院 HUIZHOU UNIVERSITY 教务处制 摘摘 要要 本文设计了一种以单片机 STC89C52 为核心的精密温度控制系统。它使用一线制数 字温度传感器 DS18B20 采集温度,并通过四位数码管显示实时温度。通过设置按键, 设定恒温运行时的温度值,并显示在数码管上。单片机采用 PID 控制算法对测量值和 设定值进行处理,计算输出 PWM 波控制继电器调节发热电路的发热功率,最终控制被 控对象温度。 通过原理分析,软硬件设计及实验调试,温度能够实时检测和自

3、动控制,系统的 温度控制精度可达到0.5,表明该温度系统比较稳定并且精确,能够实现对温度的 精密控制。 关键词:关键词:温度控制 MCS-52 DS18B20 PID PWM Abstract A precise temperature control system with the core of microprocessor STC89C52 is designed in this paper. In this system, one-wire digital thermometer DS18B20 is used to transform analog temperature signa

4、l to digital signal,through four real-time digital of a digital thermometer temperature.by setting the button,set the thermostat temperature at the time of operation, and digital display of the temperature.Single-chip Microcomputer used PID control algorithm to process the data measurement and data

5、settings,and calculate the PWM signal, is outputted and magnified to drive a solid state relay so that the power of heat circuit is adjusted.Thus the temperature of the object can be control. Through many of theory, design and experiments, the temperature of real-time detection and automatic control

6、 test is reached,and the error of this system is 0.2. It show that the system is precise and steady, and control precise temperature. Keywords: Temperature control MCS-52 DS18B20 PID PWM 目目 录录 1 前言1 2 设计理论基础2 2.1 PWM 控制技术.2 2.2 数字 PID 算法2 3 系统的方案设计4 3.1 系统设计内容及要求.4 3.1.1 设计内容.4 3.1.2 设计要求.4 3.2 方案设计

7、的比较与论证.4 4 系统硬件电路的设计6 4.1 单片机最小系统模块.7 4.1.1 单片机 STC89C52 的简介 7 4.1.2 单片机系统模块的硬件设计 10 4.2 功能实现模块11 4.2.1 采样模块11 4.2.2 按键模块12 4.2.3 显示模块13 4.4 温度控制模块14 5 系统软件设计15 5.1 主程序模块15 5.2 功能实现模块17 5.2.1 温度采样子程序17 5.2.2 显示子程序17 5.3 运算控制模块18 6 系统调试19 6.1 Keil 软件的简介.19 6.2 Proteus 软件的简介.19 6.3 软件仿真20 6.4 硬件调试21 6

8、.5 调试结果.22 7 结论24 致谢25 参考文献26 附录27 0 1 1 前言前言 温度是众多行业生产中的基础参数之一,也是与人们生活息息相关的一个重要物理量。 温度的测量和控制在日常生活和工业领域中具有广泛的应用,随着社会的进步、工业的发 展,温度控制技术的不断革新,人们生活水平的大幅提高,对温度测量控制的精度和范围 也有着更高的要求。因此,温度控制是生产工艺流程中极为重要的一个环节,尤其在电力、 航天、交通、造纸、装备制造、食品加工等行业有广泛的应用。 利用单片机来对温度进行控制,不仅能够有效地提升控制能力与生产的自动化, 而且还有可能尽早实现智能化的目标。和传统的温度控制相比,基

9、于单片机数字 PID 算法和 PWM 控制技术的温度控制系统不仅能保持系统稳定精确,还可以降低能源消耗。 因为传统的温度控制都是通过电阻限流的方式达到的温度控制,这类控制对象惯性大, 滞后现象严重,从而导致控制系统性能不佳,甚至出现控制不稳定、失控等现象,而 且其整体的功率并没有根本性的改变,造成了能源的浪费。而 PID 控制方式控制稳定 且精度高,能满足精密温度控制系统的稳定要求。PWM 控制技术则通过占空比的改变实 现对加热电路发热功率的调节,不存在限流的损失,减少了能源的消耗。本设计又采 用 DS18B20 数字温度传感器,该传感器具有微型化、封装简单、低能耗、高性能抗干 扰能力、测量范

10、围广、强易配处理器等优点,可使系统测量更加精确,电路更加简单。 1 2 2 设计理论基础设计理论基础 本设计系统以单片机 STC89C52 为核心,采用温度传感器 DS18B20 获取实时温度, 结合数字 PID 控制算法和 PWM 控制技术,控制调节加热电路的发热功率,最终控制被 控对象的温度。本章将逐一介绍以上所涉及到的控制算法和控制技术。 2.12.1 PWMPWM 控制技术控制技术 PWM 是英文“Pulse Width Modulation”的缩写,即脉冲宽度调制,简称脉宽调 制。它是一种模拟控制方式,其根据相应载荷的变化来调制晶体管栅极或基极的偏 置,来实现开关稳压电源输出晶体管或

11、晶体管导通时间的改变,这种方式能使电源 的输出电压在工作条件变化时保持恒定,是利用微处理器的数字输出来对模拟电路 进行控制的一种非常有效的技术, 广泛应用在从测量、通信到功率控制与变换的许 多领域中。 PWM 是开关型稳压电源中的术语。这是按稳压的控制方式分类的,除了 PWM 型, 还有 PFM 型和 PWM、PFM 混合型。脉宽宽度调制式(PWM)开关型稳压电路是在控制电 路输出频率不变的情况下,通过电压反馈调整其占空比,从而达到稳定输出电压的目 的。 其中方波高电平时间跟周期的比例叫占空比,例如 1 秒高电平 1 秒低电平的 PWM 波占空比是 50% 。 PWM 的一个优点是从处理器到被

12、控系统信号都是数字形式的,无需进行数模转 换,PWM 相对于模拟控制的另一个优点是增强对噪声抵抗的能力。 2.22.2 数字数字 PIDPID 算法算法 PID 算法是本系统软件程序中的核心部分。我们采用 PID 模糊控制技术,通过 Pvar、Ivar、Dvar(比例、积分、微分)三方面的结合调整形成一个模糊控制来解决 惯性温度误差问题。其原理如下: 本系统的温度控制器的电热元件是发热片。发热片通过电流加热时,内部温度都很 高。当容器内温度升高至设定温度时,温度控制器会发出信号停止加热。但这时发热 片的温度会高于设定温度,发热片还将会对被加热的器件进行加热,即使温度控制器 2 发出信号停止加热

13、,被加热器件的温度还往往继续上升几度,然后才开始下降。当下 降到设定温度的下限时,温度控制器又开始发出加热的信号,开始加热,但发热片要 把温度传递到被加热器件需要一定的时间,这就要视发热热与被加热器件之间的介质 情况而定。通常开始重新加热时,温度继续下降几度。所以,传统的定点开关控制温 度会有正负误差几度的现象,但这不是温度控制器本身的问题,而是整个热系统的结 构性问题,使温度控制器控温产生一种惯性温度误差。 增量式 PID 算法的输出量为 式中,e(k)、e(k-1)、e(k-2)分别为第 n 次、n-1 次和 n-2 次的偏差值, Kp、Ki、Kd 分别为比例系数、积分系数和微分系数,采样

14、周期为 T。 计算机每隔固定时间 T 将现场温度与用户设定目标温度的差值带入增量式 PID 算法 公式,由公式输出量决定 PWM 方波的占空比,后续加热电路根据此 PWM 方波的占空比 决定加热功率。现场温度与目标温度的偏差大则占空比大,加热电路的加热功率大, 使温度的实测值与设定值的偏差迅速减少;反之,二者的偏差小则占空比减小,加热 电路加热功率减少,直至目标值与实测值相等,达到自动控制的目的。 PID 参数的选择是系统设计成败的关键,它决定了温度控制的准确度。数字 PID 调节 器参数的整定可以仿照模拟 PID 调节器参数整定的各种方法,根据工艺对控制性能的 要求,决定调节器的参数。各个参

15、数对系统性能的影响如下: 1.比例系数 P 对系统性能的影响:比例系数加大,使系统的动作灵敏,速度加快, 稳态误差减小;P 偏大,振荡次数加多,调节时间加长;P 太大时,系统会趋于不稳定; P 太小,又会使系统的动作缓慢。P 可以选负数,这主要是由执行机构、传感器以及控 制对象的特性决定的。如果 P 的符号选择不当对象测量值就会离控制目标的设定值越 来越远,如果出现这样的情况 P 的符号就一定要取反。 2.积分控制 I 对系统性能的影响:积分作用使系统的稳定性下降,I 小(积分作用强) 会使系统不稳定,但能消除稳态误差,提高系统的控制精度。 3.微分控制 D 对系统性能的影响:微分作用可以改善

16、动态特性,D 偏大时,超调量 较大,调节时间较短;D 偏小时,超调量也较大,调节时间也较长;只有 D 合适,才能 使超调量较小,减短调节时间。 3 3 3 系统的方案设计系统的方案设计 3.13.1 系统设计内容及要求系统设计内容及要求 3.1.13.1.1 设计内容设计内容 1.温度信号采集与处理; 2.PID 算法的设计; 3.PWM 占空比的改变; 4.设计电路并进行仿真; 5.制作硬件电路并完成软件、硬件的联调及测试。 3.1.23.1.2 设计要求设计要求 1.温度控制范围:室温 0+100; 2.温度控制精度:0.5; 3.温度设置:由按键设置控制温度; 4.显示:四位有效值显示;

17、 5.报警装置:实时温度超过设置温度时蜂鸣器提示报警。 3.23.2 方案设计的比较与论证方案设计的比较与论证 对本次设计进行深入的分析和思考,可将整个系统分为控制电路、温度测量电路、 显示电路、按键电路、加热电路和报警装置六部分。系统整体结构如图 3-1 所示。 4 图 3-1 系统整体结构框图 根据系统设计要求,选择发热片作为加热电路的加热元件,所需供电电源 12V 直 流电。这具体的方案有二: 1.方案一 采用 AT89C51 作为控制核心,使用热敏电阻作为测温元件,配合使用最为普遍的器 件 ADC0809 作模数转换,在控制上使用对电阻丝加电使其升温。此方案简易可行,器件 的价格便宜,

18、但其扩展的外围电路较多,增加了电路的复杂性,且 ADC0809 是 8 位的模数 转换,不能满足本题目的精度要求。 2.方案二 采用比较流行的 STC89C52 作为电路的控制核心,使用自带模数转换的温度传感器 DS18B20,结合数字 PID 算法,实现闭环控制,并通过 PWM 控制技术控制继电器的通断 以实行对发热片温度的连续调节,此方案电路简单并且可以满足题目中的各项要求的精 度。 综上所述,本着简单实用的原则,最后选择第二种方案,并通过四位数码管显示 电路和按键电路来完善整个系统的功能。 单片机 按键电路 温度测量电路 加热电路 显示电路 报警装置 5 4 4 系统硬件电路的设计系统硬

19、件电路的设计 硬件的功能由总体设计所规定,硬件设计的任务是根据总体设计要求,在选择的机 型的基础上,具体确定系统中所要使用的元器件,设计出系统的电路原理图,以此同 时用软件对电路原理图进行仿真,以确定电路图的正确性,以及电路板的焊接等。 硬件电路主要由三大模块构成,分别是:单片机最小系统模块、功能实现模块、 温度控制模块。其硬件原理框图如图 4-1 所示: 图 4-1 硬件原理框图 温度传感器 DS18B20 将获取到的温度值以数字量形式传至单片机,并在 LED 数码 管上实时显示出来,单片机结合现场实时温度与通过按键设定的目标温度,按照已经 编程好的数字 PID 控制算法计算出实时控制量,并

20、转化为输出 PWM 波所需的占空比值, 以此控制继电器的开通和关断,决定加热电路的工作状态,使发热片的温度逐步稳定 于设定的目标温度。在发热片的温度到达设定的目标温度后,由于自然冷却而使其温 度下降时,单片机通过采样的实时温度与设置的目标温度比较,做出相应的控制,开 启继电器,为发热片通电加热。当所测温度超出设定好的温度值,报警装置的蜂鸣器 将会报警提示。 单片机温度控制系统设计的硬件设计仿真图如图 4-2 所示: 蜂鸣器报警 发 热 片 数码管显示 继电器 单片机 STC89C52 DS18B20 采样 按键电路 6 图 4-2 仿真原理图 4.14.1 单片机最小系统模块单片机最小系统模块

21、 4.1.14.1.1 单片机单片机 STC89C52STC89C52 的简介的简介 STC89C52 是 STC 公司生产的一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系 统可编程 Flash 存储器。STC89C52 使用经典的 MCS-51 内核,但做了很多的改进使得芯 片具有传统 51 单片机不具备的功能。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可 编程 Flash,使得 STC89C52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方 案。 具有以下标准功能:8k 字节 Flash,512 字节 RAM,32 位 I/O 口线,看门狗定时 器,内置 4KB

22、EEPROM,MAX810 复位电路,3 个 16 位定时器/计数器,4 个外部中断, 一个 7 向量 4 级中断结构(兼容传统 51 的 5 向量 2 级中断结构) ,全双工串行口。 STC89C52 有 40 引脚双列直插(DIP)形式。其与 89C51 引脚结构基本相同,其逻 辑引脚图如图 4-3。 7 图 4-3 STC89C52 引脚图 管脚说明: 1.VCC:供电电压。 2.GND:接地。 3.P0口:P0口为一个8位漏级开路双向 I/O 口,每脚可吸收8TTL 门电流。当 P1口的 管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定 义为数据/地址的第

23、八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校 验时,P0输出原码,此时 P0外部必须被拉高。 4.P1口:P1口是一个内部提供上拉电阻的8位双向 I/O 口,P1口缓冲器能接收输出 4TTL 门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低 电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1口作为 第八位地址接收。 5.P2口:P2口为一个内部上拉电阻的8位双向 I/O 口,P2口缓冲器可接收,输出4 个 TTL 门电流,当 P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因 此作为输入时,P2

24、口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高 八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行 读写时,P2口输出其特殊功能寄存器的内容。P2口在 FLASH 编程和校验时接收高八位 8 地址信号和控制信号。 6.P3口:P3口管脚是8个带内部上拉电阻的双向 I/O 口,可接收输出4个 TTL 门电流。 当 P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下 拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为 AT89C5

25、1的一些特殊功能口,如表4-1。 表表4-14-1 P3P3口特殊功能表口特殊功能表 7.RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时 间。 8.ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位 字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周 期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用 于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。 如想禁止 ALE 的输出可在 SFR8EH 地址上置0。此时, ALE 只有在执行 MO

26、VX,MOVC 指令 是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止, 置位无效。 9./PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器 周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。 10./EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH) , 不管是否有内部程序存储器。注意加密方式1时,/EA 将内部锁定为 RESET;当/EA 端保 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部

27、中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) 9 持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加12V 编程电 源(VPP) 。 11.XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 12.XTAL2:来自反向振荡器的输出。 振荡器特性: XTAL1和 XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振 荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有

28、 余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何 要求,但必须保证脉冲的高低电平要求的宽度。 芯片擦除: 整个 PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持 ALE 管 脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存 储字节被重复编程以前,该操作必须被执行。 此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可 选的掉电模式。在闲置模式下,CPU 停止工作。但 RAM,定时器,计数器,串口和中断 系统仍在工作。在掉电模式下,保存 RAM 的内容并且冻结振荡器,禁止所用其他芯片 功

29、能,直到下一个硬件复位为止。 4.1.24.1.2 单片机系统模块的硬件设计单片机系统模块的硬件设计 STC89C52 单片机为 40 引脚双列直插芯片,有四个 8 位 I/O 口(P0、P1、P2、P3) , 每一位 I/O 端口都能独立地作为输出或输入。其中,P0 口为一个 8 位漏级开路双向 I/O 口,其驱动能力强于其他三个 I/O 口。由于 P0 口内部没有上拉电阻,相当于它是 没有电源的,需要外部的电路提供,绝大多数情况下 P0 口是必需加上拉电阻的。一般 51 单片机的 P0 口在作为地址/数据复用时不接上拉电阻。但作为一般的 I/O 口时用时 是要接上拉电阻。 单片机的最小系统

30、电路原理图如图 4-4 所示,18 引脚和 19 引脚接时钟电路, XTAL1 接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2 接 外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。第 9 引脚为复 位输入端,接上电容,电阻及开关后能够形成上电复位电路。 10 图 4-4 最小系统电路原理图 4.24.2 功能实现模块功能实现模块 功能实现模块主要包括采样模块、按键和显示模块及报警和指示灯模块,一起构 成了温度控制系统的功能 4.2.14.2.1 采样模块采样模块 DS18B20 数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹 式,磁铁吸

31、附式,不锈钢封装式,型号多种多样,有 LTM8877,LTM8874 等等。主要根 据应用场合的不同而改变其外观。封装后的 DS18B20 可用于电缆沟测温,高炉水循环 测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限 温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备 数字测温和控制领域。 DS18B20 内部结构主要由四部分组成:64 位光刻 ROM、温度传感器、非挥发的温度 报警触发器 TH 和 TL、配置寄存器。 DS18B20 的主要特性: 1.适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电; 11 2.独

32、特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条口线即可实现微 处理器与 DS18B20 的双向通讯; 3.DS18B20 支持多点组网功能,多个 DS18B20 可以并联在唯一的三线上,实现组网 多点测温; 4.DS18B20 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一 只三极管的集成电路内; 5.温范围55125,在-10+85时精度为0.5; 6.可编程的分辨率为 912 位,对应的可分辨温度分为 0.5、0.25、0.125 和 0.0625,可实现高精度测温; 7.在 9 位分辨率时最多在 93.75ms 内把温度转换为数字,12 位分辨率时最多在

33、750ms 内把温度值转换为数字,速度更快; 8.测量结果直接输出数字温度信号,以“一线总线“串行传送给 CPU,同时可传送 CRC 校验码,具有极强的抗干扰纠错能力; 9.负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 因此,本系统采样电路采用的是温度传感器 DS18B20,其内部自带 A/D 转换,无需 任何外围元件,可以直接输出温度值的 912 位串行数字量,其温度转换最大时间为 750ms,能够满足本系统的设计要求。温度采样电路如图 4-5 所示。其中 DQ 为数字信 号输入/输出端;GND 为电源地;VCC 为外接供电电源输入端。 图 4-5 采样电路 12 4.2

34、.24.2.2 按键模块按键模块 按键电路采用按键与外部中断相结合的方法,各按键功能定义如表 4-2 所示。 表 4-2 按键功能表 按键键名功能 KEY1 加 1 键设定的温度值加 1 KEY2 转位键转到数码管的下一位 KEY3 进入/退出键 此键按下,进入温度设定; 此键再按,退出温度设定。 按键 KEY3 与单片机的 INT0(P3.2)脚相连,采用外部中断方式,且优先级定位高 优先级。按键 KEY1 和 KEY2 分别于 P3.0 和 P3.1 相连,采用软件查询方式。按键模块 电路如图 4-6 所示。 图 4-6 按键电路原理图 4.2.34.2.3 显示模块显示模块 显示硬件电路

35、采用 4 位共阴 LED 数码管显示方式,显示内容有温度值的百位、十 位、个位及小数点后一位。用 P2 口的 P2.0P2.3 作为位控码输出,用 P0 口作为段控 码输出,都采用 74LS04 做为驱动电路。模块电路如图 4-7 所示。 13 图 4-7 显示接口电路原理图 4.44.4 温度控制模块温度控制模块 加热控制电路采用 PWM 控制技术在闭环控制系统中控制继电器的通断,以实现对 发热片加热功率的调整,从而达到对水温控制的目的。继电器的使用非常简单,只要 在使用时完全可以用 PNP 型三极管接成电压跟随器的形式驱动。当单片机的 P1.0 为低 电平时继电器关断,加热电路不工作;当单

36、片机水温 P1.0 为高电平时,三极管驱动继 电器工作,接通加热电路工作。控制电路图如图 4-8 所示。 图 4-8 加热控制电路原理图 14 5 5 系统软件设计系统软件设计 软件编写的语言一般情况下,有汇编语言和语言两种,两种语言各有优劣。 用语言编写程序的优点是:编写简单,容易上手,网上有许多已编写好的子程 序,可以通过学习再结合自己想要实现的功能,从而编写相关的程序,因此开发程序 所需时间也相对短。 而用汇编语言编写则相对要求高一些,它要求对硬件有足够的了解和认识,在此 基础上,严格地对照各部件的时序图,进行程序的编写,而且读起来相对繁琐。 通过两种语言的比较,语言学起来很快,所以我选

37、择采用 C 语言编写。 本系统软件设计采用模块化设计,由主程序模块、功能实现模块和运算控制模块 三大模块组成。 5.15.1 主程序模块主程序模块 主程序主要完成 PID 算法、中断源及加热控制系统各部件的初始化和实现各功能 子程序的调用,以及实际测量中各个功能模块的协调在无外部中断申请时,单片机通 过循环实时显示外部温度。把 KEY3 键作为最高优先级的外部中断 0,以便使主程序能 实时响应 KEY3 键按下的处理。软件设定定时器 T0 为 3s 定时,在无按下 KEY3 键时, 应每隔 3s 响应一次,调用 PID 算法子程序求出输出控制量,以此来控制发热电路的发 热功率,最终控制发热片的

38、温度。主程序流程图如图 5-1 所示。具体源程序见附录。 15 Y N Y N N N Y 图 5-1 主程序流程图 开始 初始化所有参数 按键按下? 外部中断 INT0 初始化 定时器 T0 初始化 按键扫描 子程序 设定值大于温 度值? 采样子程序 PWM 输出子程序 PID 控制子程序 定时 3s? 越限报警 显示子程序 16 5.25.2 功能实现模块功能实现模块 功能实现模块主要由温度采样子程序、中断处理子程序、按键处理子程序、显示 子程序等部分组成。 5.2.15.2.1 温度采样子程序温度采样子程序 温度采样子程序在整个系统软件编程中起着很重要的作用。通过温度采样子程序 的运用,

39、系统才能实时获取温度值,并为接下来的运算控制子程序提供很重要的温度 参数值。则温度传感器 DS18B20 的程序流程图如图 5-2 所示。具体源程序见附录。 N Y 图 5-2 DS18B20 程序流程图 5.2.25.2.2 显示子程序显示子程序 显示数据子程序的主要功能就是把测温后的结果和按键设定值经单片机处理完毕 后,显示在四位 LED 数码管上。显示子程序流程图如图 5-3 所示。具体源程序见附录。 开始 初始化 跳过序列 号命令 发送温度 转换命令 读取温度 返回 温度转换完毕? 毕? 17 N Y 图 5-3 显示子程序流程图 5.35.3 运算控制模块运算控制模块 运算控制模块涉

40、及到 PWM 控制技术和 PID 算法,在结合温度传感器 DS18B20 形成 闭环式的控制系统对被控对象进行调控。 PWM 是调节脉冲波占空比的一种方式,占空比= On-time(脉冲的 High 时间)/脉冲 的一个周期(On-time +Off-time) 。占空比以及所对应的周期,是由温度传感器所测 的实际温度与目标温度的差来决定的。PWM 控制程序流程图如图 5-4 所示。具体源程序 见附录。 开始 显示数据 结束 数据传送? 开始 读取温度计 算占空比 送入加热延时函数并开始 加热 送入停止加热延时函数 并断开电源电压 结束 18 图 5-4 PWM 控制程序流程图 6 6 系统调

41、试系统调试 6.16.1 KeilKeil 软件软件的简介的简介 单片机开发中不但要有必要的硬件,而且要有相应的软件与之结合,此时 Keil 软 件发挥着举足轻重的地位。随着单片机开发技术的不断发展,从汇编语言的普遍使用 到高级语言开发的逐渐使用,单片机的开发软件也随之在发展着,与汇编语言相比,C 语言在功能上、结构性、可维护性上有明显的优势,易学易用。Keil 软件是目前最流 行的开发 MCS-51 系列单片机软件,Keil 提供了包括 C 编译器、宏汇编、连接器、库管 理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境 (uVision)将这些部份组合在一起。 Keil

42、 C51 标准 C 编译器为 8051 微控制器的软件开发提供了 C 语言环境, 同时保留 了汇编代码高效,快速的特点。Keil C51 软件提供丰富的库函数和功能强大的集成开发 调试工具,功能不断增强,生成的目标代码效率非常高。所以本设计选择 Keil 软件。 6.26.2 ProteusProteus 软件软件的简介的简介 Proteus 软件是来自英国 Labcenter electronics 公司的 EDA 工具软件,除了具有 和其它 EDA 工具一样的原理布图、PCB 自动或人工布线及电路仿真的功能外,其特有的 功能是,它的电路仿真是互动的,针对微处理器的应用,还可以直接在原理图的

43、虚拟 原型上编程,并实现软件源码级的实时调试。由此可见,Proteus 软件功能强大,集电 路设计、制版以及仿真等功能于一身,不仅可以对电路进行设计与分析,还可以对微 处理器进行设计和仿真,是一款电子线路设计与仿真软件。所以 Proteus 软件是一个 基于 Pro-SPICE 混合模型仿真器、完整的嵌入式系统软硬件设计仿真平台。 Proteus 软件与其它单片机仿真软件不同的是,它不仅能仿真单片机 CPU 的工作情 况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真 和程序调试时,关心的不再是某些语句执行时,单片机寄存器和存储器内容的改变, 而是从工程的角度直接看程序

44、运行和电路工作的过程和结果。对于这样的仿真,从某 种意义上讲,弥补了实验和工程应用不能相结合的不足。 19 所以本设计采用的仿真软件是 Proteus 软件,通过它实现电路图的绘制,并与 Keil 软件进行相关的调试。 6.36.3 软件仿真软件仿真 将 Keil 软件成的.hex 文件加载到单片机内,并在 Proteus 软件里仿真,会在数码 管上看到温度显示,如图 6-1 所示,其中 60 度是系统设定的默认温度,即目标温度; 27 度是 DS18B20 温度传感器的温度,即实际温度,如图 6-2 所示。在显示 27 度之前, 会看到 DS18B20 温度传感器显示 85 度,85 度的产

45、生是由于温度传感器读取过快,还没 有复位,但当运行一会之后温度传感器就会复位。 由于本设计系统主要对发热片的温度进行实时检测,以此来精密地控制发热片的 温度。但 Proteus 仿真软件只是起到一定程度的仿真,它做不到使温度能随意地变化, 并显示在数码管上。这远远达不到本系统设计的控制要求,因此,硬件电路的调试工 作是本系统的关键。 图 6-1 设置温度值 20 图 6-2 实际所测温度值 6.46.4 硬件调试硬件调试 硬件调试主要是针对我设计的实时温度测量与精密控制温度的单片机硬件电路分别 进行调试。在上电测试之前,一定要保证电路的完整无误,要避免电路出现短路或断 路的情况。在确保电路正常

46、下,无异常情况(短路或断路)之后方可上电调试,上电 调试的目的是检验电路是否接错,同时还要检测原理是否正确。在本次毕业设计当中, 上电调试主要是实时温度测量与温度控制的单片机控制部分和数码管点亮部分的硬件 调试。 1、单片机控制部分硬件调试:这一部分调试主要是检查时钟电路、复位电路是否 接对,单片机的电源以及地是否接好,以及其他的一些管脚的接线有没有结对。看单 片机通电后是否可以正常工作等这一系列问题。 2、数码管 LED 电路调试:由于数码管采用的是动态扫描方式点亮的。数码管的公 共端(COM)直接接到单片机的 P2.0P2.3 口作为位选信号,段选接在 P1 口。电路上 电后检查 AT89

47、C51 是否接上电源和地让其正常工作。在这一前提下,查看数码管能否 点亮。 21 6.56.5 调试结果调试结果 温度调节效果如下: 1.通电源,打开开关,液晶显示情况如图 6-3 所示,其中数码管表示实际温度 30.8,设定的目标温度为 34.0。 图 6-3 通电初始状态 2.随着温度的上升,目标温度与实际温度的差大于 2 度,此时占空比为 100%,周 期为 3s。此时数码管显示情况,如图 6-4 所示。 图 6-4 通电后温度上升状态 22 3.通电一会后,目标温度与实际温度的差小于等于 2 度,系统进入 PID 算法控制 调节。此时数码管显示情况,如图 6-5 所示。 图 6-5 P

48、ID 算法控制调节 4.当越接近目标温度时,系统输出 PWM 的占空比越小,直到数码管显示温度与目 标温度接近或相等时,系统此时保持者稳定状态。此时的数码管显示如图 6-6 所示。 图 6-6 实时温度与目标温度一致时的状态 5.温度在到达木匾温度时,将会对占空比一直微调,保持温度控制精度在0.5 范围以内渐渐稳定下来。最终到达对温度的精密控制。 23 7 7 结论结论 在这次的毕业设计中,我基本上能实现本系统设计的任务要求。从选择单片机, 并在研究单片机的管脚性能基础上,设计出相应的电路;通过设计程序,调试程序, 把设计的相应电路通过 Proteus 软件以及 keil 软件结合起来,达到实

49、现系统功能的设 计,在仿真的基础上,确立电路以及程序的正确性,其中不足的是,Proteus 软件当中 虽然有其他发热元件,但在 Proteus 仿真软件却不能实现温度的变化,不能实现相应 的温度动态显示,只能显示一下传感器 DS18B20 的温度,以及程序设定的默认温度 60 度,看不到相应的 PWM 控制加热的效果,看不到具体的温度上升;在仿真的基础上完 成实物,通过实物看到了具体的温度上升显示,基本完成设计的要求。不足之处,是 对 PID 算法的了解程度不深,在对发热片进行恒温控制的时候达不到较高的精度,控 制系统还不是很稳定。 从这次设计中,我学到很多,也更能体会到理论联系实际的好处。这次设计不仅 充分锻炼了我的动手能力,提高了我的思维能力,完善我的专业知识,而且对我自己 今后的学习、工作产生很大的影响。 24 致谢致谢 历时将近两个月的时间终于将这篇论文写完,在论文的写作过程中遇到 了无数的困难和障碍,都在同学和老师的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1