




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 班 惠州学院 huizhou university 指导教师指导教师: : 李卫平 提交日期提交日期: : 2013-05-15 教务处制 摘摘 要要本文设计了一种以单片机 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 signal to digit
4、al 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 settings,a
5、nd 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 test is r
6、eached,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 前言.12 设计理论基础.22.1 pwm 控制技术.22.2 数字 pid 算法.23 系统的方案设计.43.1 系统设计内容及要求.43.1.1 设计内容.43.1.2 设计要求.43.2 方案设计的比较与论证.44 系统硬件电路
7、的设计.64.1 单片机最小系统模块.74.1.1 单片机 stc89c52 的简介 .74.1.2 单片机系统模块的硬件设计 .104.2 功能实现模块.114.2.1 采样模块.114.2.2 按键模块.124.2.3 显示模块.134.4 温度控制模块.145 系统软件设计.155.1 主程序模块.155.2 功能实现模块.175.2.1 温度采样子程序.175.2.2 显示子程序.175.3 运算控制模块.186 系统调试.196.1 keil 软件的简介.196.2 proteus 软件的简介.196.3 软件仿真.206.4 硬件调试.216.5 调试结果.227 结论.24致谢.
8、25参考文献.26附录.271 1 前言前言温度是众多行业生产中的基础参数之一,也是与人们生活息息相关的一个重要物理量。温度的测量和控制在日常生活和工业领域中具有广泛的应用,随着社会的进步、工业的发展,温度控制技术的不断革新,人们生活水平的大幅提高,对温度测量控制的精度和范围也有着更高的要求。因此,温度控制是生产工艺流程中极为重要的一个环节,尤其在电力、航天、交通、造纸、装备制造、食品加工等行业有广泛的应用。利用单片机来对温度进行控制,不仅能够有效地提升控制能力与生产的自动化,而且还有可能尽早实现智能化的目标。和传统的温度控制相比,基于单片机数字 pid算法和 pwm 控制技术的温度控制系统不
9、仅能保持系统稳定精确,还可以降低能源消耗。因为传统的温度控制都是通过电阻限流的方式达到的温度控制,这类控制对象惯性大,滞后现象严重,从而导致控制系统性能不佳,甚至出现控制不稳定、失控等现象,而且其整体的功率并没有根本性的改变,造成了能源的浪费。而 pid 控制方式控制稳定且精度高,能满足精密温度控制系统的稳定要求。pwm 控制技术则通过占空比的改变实现对加热电路发热功率的调节,不存在限流的损失,减少了能源的消耗。本设计又采用 ds18b20 数字温度传感器,该传感器具有微型化、封装简单、低能耗、高性能抗干扰能力、测量范围广、强易配处理器等优点,可使系统测量更加精确,电路更加简单。2 2 设计理
10、论基础设计理论基础 本设计系统以单片机 stc89c52 为核心,采用温度传感器 ds18b20 获取实时温度,结合数字 pid 控制算法和 pwm 控制技术,控制调节加热电路的发热功率,最终控制被控对象的温度。本章将逐一介绍以上所涉及到的控制算法和控制技术。2.12.1 pwmpwm 控制技术控制技术pwm 是英文“pulse width modulation”的缩写,即脉冲宽度调制,简称脉宽调制。它是一种模拟控制方式,其根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字
11、输出来对模拟电路进行控制的一种非常有效的技术, 广泛应用在从测量、通信到功率控制与变换的许多领域中。 pwm 是开关型稳压电源中的术语。这是按稳压的控制方式分类的,除了 pwm 型,还有 pfm 型和 pwm、pfm 混合型。脉宽宽度调制式(pwm)开关型稳压电路是在控制电路输出频率不变的情况下,通过电压反馈调整其占空比,从而达到稳定输出电压的目的。 其中方波高电平时间跟周期的比例叫占空比,例如 1 秒高电平 1 秒低电平的 pwm波占空比是 50% 。pwm 的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换,pwm 相对于模拟控制的另一个优点是增强对噪声抵抗的能力。2.22
12、.2 数字数字 pidpid 算法算法 pid 算法是本系统软件程序中的核心部分。我们采用 pid 模糊控制技术,通过pvar、ivar、dvar(比例、积分、微分)三方面的结合调整形成一个模糊控制来解决惯性温度误差问题。其原理如下: 本系统的温度控制器的电热元件是发热片。发热片通过电流加热时,内部温度都很高。当容器内温度升高至设定温度时,温度控制器会发出信号停止加热。但这时发热片的温度会高于设定温度,发热片还将会对被加热的器件进行加热,即使温度控制器发出信号停止加热,被加热器件的温度还往往继续上升几度,然后才开始下降。当下降到设定温度的下限时,温度控制器又开始发出加热的信号,开始加热,但发热
13、片要把温度传递到被加热器件需要一定的时间,这就要视发热热与被加热器件之间的介质情况而定。通常开始重新加热时,温度继续下降几度。所以,传统的定点开关控制温度会有正负误差几度的现象,但这不是温度控制器本身的问题,而是整个热系统的结构性问题,使温度控制器控温产生一种惯性温度误差。 增量式 pid 算法的输出量为 式中,e(k)、e(k-1)、e(k-2)分别为第 n 次、n-1 次和 n-2 次的偏差值,kp、ki、kd 分别为比例系数、积分系数和微分系数,采样周期为 t。 计算机每隔固定时间 t 将现场温度与用户设定目标温度的差值带入增量式 pid 算法公式,由公式输出量决定 pwm 方波的占空比
14、,后续加热电路根据此 pwm 方波的占空比决定加热功率。现场温度与目标温度的偏差大则占空比大,加热电路的加热功率大,使温度的实测值与设定值的偏差迅速减少;反之,二者的偏差小则占空比减小,加热电路加热功率减少,直至目标值与实测值相等,达到自动控制的目的。 pid 参数的选择是系统设计成败的关键,它决定了温度控制的准确度。数字 pid 调节器参数的整定可以仿照模拟 pid 调节器参数整定的各种方法,根据工艺对控制性能的要求,决定调节器的参数。各个参数对系统性能的影响如下: 1.比例系数 p 对系统性能的影响:比例系数加大,使系统的动作灵敏,速度加快,稳态误差减小;p 偏大,振荡次数加多,调节时间加
15、长;p 太大时,系统会趋于不稳定;p 太小,又会使系统的动作缓慢。p 可以选负数,这主要是由执行机构、传感器以及控制对象的特性决定的。如果 p 的符号选择不当对象测量值就会离控制目标的设定值越来越远,如果出现这样的情况 p 的符号就一定要取反。 2.积分控制 i 对系统性能的影响:积分作用使系统的稳定性下降,i 小(积分作用强)会使系统不稳定,但能消除稳态误差,提高系统的控制精度。 3.微分控制 d 对系统性能的影响:微分作用可以改善动态特性,d 偏大时,超调量较大,调节时间较短;d 偏小时,超调量也较大,调节时间也较长;只有 d 合适,才能使超调量较小,减短调节时间。3 3 系统的方案设计系
16、统的方案设计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.显示:四位有效值显示;5.报警装置:实时温度超过设置温度时蜂鸣器提示报警。 3.23.2 方案设计的比较与论证方案设计的比较与论证对本次设计进行深入的分析和思考,可将整个系统分为控制电路、温度测量电路、显示电路、
17、按键电路、加热电路和报警装置六部分。系统整体结构如图 3-1 所示。图 3-1 系统整体结构框图根据系统设计要求,选择发热片作为加热电路的加热元件,所需供电电源 12v 直流电。这具体的方案有二:1.方案一 采用 at89c51 作为控制核心,使用热敏电阻作为测温元件,配合使用最为普遍的器件 adc0809 作模数转换,在控制上使用对电阻丝加电使其升温。此方案简易可行,器件的价格便宜,但其扩展的外围电路较多,增加了电路的复杂性,且 adc0809 是 8 位的模数转换,不能满足本题目的精度要求。2.方案二采用比较流行的 stc89c52 作为电路的控制核心,使用自带模数转换的温度传感器ds18
18、b20,结合数字 pid 算法,实现闭环控制,并通过 pwm 控制技术控制继电器的通断以实行对发热片温度的连续调节,此方案电路简单并且可以满足题目中的各项要求的精度。 综上所述,本着简单实用的原则,最后选择第二种方案,并通过四位数码管显示电路和按键电路来完善整个系统的功能。单片机按键电路温度测量电路加热电路显示电路报警装置4 4 系统硬件电路的设计系统硬件电路的设计硬件的功能由总体设计所规定,硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的电路原理图,以此同时用软件对电路原理图进行仿真,以确定电路图的正确性,以及电路板的焊接等。 硬件电路主要
19、由三大模块构成,分别是:单片机最小系统模块、功能实现模块、温度控制模块。其硬件原理框图如图 4-1 所示: 图 4-1 硬件原理框图温度传感器 ds18b20 将获取到的温度值以数字量形式传至单片机,并在 led 数码管上实时显示出来,单片机结合现场实时温度与通过按键设定的目标温度,按照已经编程好的数字 pid 控制算法计算出实时控制量,并转化为输出 pwm 波所需的占空比值,以此控制继电器的开通和关断,决定加热电路的工作状态,使发热片的温度逐步稳定于设定的目标温度。在发热片的温度到达设定的目标温度后,由于自然冷却而使其温度下降时,单片机通过采样的实时温度与设置的目标温度比较,做出相应的控制,
20、开启继电器,为发热片通电加热。当所测温度超出设定好的温度值,报警装置的蜂鸣器将会报警提示。单片机温度控制系统设计的硬件设计仿真图如图 4-2 所示:蜂鸣器报警发热片数码管显示继电器单片机stc89c52ds18b20 采样按键电路图 4-2 仿真原理图4.14.1 单片机最小系统模块单片机最小系统模块4.1.14.1.1 单片机单片机 stc89c52stc89c52 的简介的简介 stc89c52 是 stc 公司生产的一种低功耗、高性能 cmos8 位微控制器,具有 8k 在系统可编程 flash 存储器。stc89c52 使用经典的 mcs-51 内核,但做了很多的改进使得芯片具有传统
21、51 单片机不具备的功能。在单芯片上,拥有灵巧的 8 位 cpu 和在系统可编程 flash,使得 stc89c52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能:8k 字节 flash,512 字节 ram,32 位 i/o 口线,看门狗定时器,内置 4kb eeprom,max810 复位电路,3 个 16 位定时器/计数器,4 个外部中断,一个 7 向量 4 级中断结构(兼容传统 51 的 5 向量 2 级中断结构) ,全双工串行口。 stc89c52 有 40 引脚双列直插(dip)形式。其与 89c51 引脚结构基本相同,其逻辑引脚图如图 4-3。 图 4
22、-3 stc89c52 引脚图 管脚说明:1.vcc:供电电压。2.gnd:接地。3.p0口:p0口为一个8位漏级开路双向 i/o 口,每脚可吸收8ttl 门电流。当 p1口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 fiash 编程时,p0 口作为原码输入口,当 fiash 进行校验时,p0输出原码,此时 p0外部必须被拉高。4.p1口:p1口是一个内部提供上拉电阻的8位双向 i/o 口,p1口缓冲器能接收输出4ttl 门电流。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上
23、拉的缘故。在 flash 编程和校验时,p1口作为第八位地址接收。 5.p2口:p2口为一个内部上拉电阻的8位双向 i/o 口,p2口缓冲器可接收,输出4个 ttl 门电流,当 p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在 flash 编程和校验时接收高八位地址信号和控制信号。6.p3口:p3口管脚
24、是8个带内部上拉电阻的双向 i/o 口,可接收输出4个 ttl 门电流。当 p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。p3口也可作为 at89c51的一些特殊功能口,如表4-1。表表4-14-1 p3p3口特殊功能表口特殊功能表 7.rst:复位输入。当振荡器复位器件时,要保持 rst 脚两个机器周期的高电平时间。8.ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在 flash 编程期间,此引脚用于输入编程脉冲。在平时,ale 端以不变的频率周期输出正脉冲信号,此频
25、率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ale 脉冲。如想禁止 ale 的输出可在 sfr8eh 地址上置0。此时, ale 只有在执行 movx,movc 指令是 ale 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ale 禁止,置位无效。9./psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/psen 有效。但在访问外部数据存储器时,这两次有效的/psen 信号将不出现。 10./ea/vpp:当/ea 保持低电平时,则在此期间外部程序存储器(0000h-ff
26、ffh) ,不管是否有内部程序存储器。注意加密方式1时,/ea 将内部锁定为 reset;当/ea 端保口管脚 备选功能p3.0rxd(串行输入口)p3.1txd(串行输出口)p3.2/int0(外部中断0)p3.3 /int1(外部中断1)p3.4t0(记时器0外部输入)p3.5t1(记时器1外部输入)p3.6 /wr(外部数据存储器写选通)p3.7 /rd(外部数据存储器读选通)持高电平时,此间内部程序存储器。在 flash 编程期间,此引脚也用于施加12v 编程电源(vpp) 。11.xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。12.xtal2:来自反向振荡器的输出。振荡器
27、特性:xtal1和 xtal2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,xtal2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。芯片擦除:整个 perom 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持 ale 管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,at89c51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲
28、置模式下,cpu 停止工作。但 ram,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存 ram 的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。4.1.24.1.2 单片机系统模块的硬件设计单片机系统模块的硬件设计stc89c52 单片机为 40 引脚双列直插芯片,有四个 8 位 i/o 口(p0、p1、p2、p3) ,每一位 i/o 端口都能独立地作为输出或输入。其中,p0 口为一个 8 位漏级开路双向i/o 口,其驱动能力强于其他三个 i/o 口。由于 p0 口内部没有上拉电阻,相当于它是没有电源的,需要外部的电路提供,绝大多数情况下 p0 口是必需加上拉电
29、阻的。一般51 单片机的 p0 口在作为地址/数据复用时不接上拉电阻。但作为一般的 i/o 口时用时是要接上拉电阻。单片机的最小系统电路原理图如图 4-4 所示,18 引脚和 19 引脚接时钟电路,xtal1 接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,xtal2 接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。第 9 引脚为复位输入端,接上电容,电阻及开关后能够形成上电复位电路。图 4-4 最小系统电路原理图4.24.2 功能实现模块功能实现模块 功能实现模块主要包括采样模块、按键和显示模块及报警和指示灯模块,一起构成了温度控制系统的功能4.2.14.2.1
30、 采样模块采样模块 ds18b20 数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有 ltm8877,ltm8874 等等。主要根据应用场合的不同而改变其外观。封装后的 ds18b20 可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。ds18b20 内部结构主要由四部分组成:64 位光刻 rom、温度传感器、非挥发的温度报警触发器 th 和 tl、配置寄存器。 ds18b20 的主要特性
31、: 1.适应电压范围更宽,电压范围:3.05.5v,在寄生电源方式下可由数据线供电; 2.独特的单线接口方式,ds18b20 在与微处理器连接时仅需要一条口线即可实现微处理器与 ds18b20 的双向通讯; 3.ds18b20 支持多点组网功能,多个 ds18b20 可以并联在唯一的三线上,实现组网多点测温; 4.ds18b20 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内; 5.温范围55125,在-10+85时精度为0.5; 6.可编程的分辨率为 912 位,对应的可分辨温度分为 0.5、0.25、0.125和 0.0625,可实现高精度测温; 7.在
32、 9 位分辨率时最多在 93.75ms 内把温度转换为数字,12 位分辨率时最多在750ms 内把温度值转换为数字,速度更快; 8.测量结果直接输出数字温度信号,以一线总线串行传送给 cpu,同时可传送crc 校验码,具有极强的抗干扰纠错能力; 9.负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 因此,本系统采样电路采用的是温度传感器 ds18b20,其内部自带 a/d 转换,无需任何外围元件,可以直接输出温度值的 912 位串行数字量,其温度转换最大时间为750ms,能够满足本系统的设计要求。温度采样电路如图 4-5 所示。其中 dq 为数字信号输入/输出端;gnd 为电源
33、地;vcc 为外接供电电源输入端。 图 4-5 采样电路4.2.24.2.2 按键模块按键模块 按键电路采用按键与外部中断相结合的方法,各按键功能定义如表 4-2 所示。表 4-2 按键功能表按键键名功能key1加 1 键设定的温度值加 1key2转位键转到数码管的下一位key3进入/退出键此键按下,进入温度设定;此键再按,退出温度设定。按键 key3 与单片机的 int0(p3.2)脚相连,采用外部中断方式,且优先级定位高优先级。按键 key1 和 key2 分别于 p3.0 和 p3.1 相连,采用软件查询方式。按键模块电路如图 4-6 所示。图 4-6 按键电路原理图4.2.34.2.3
34、 显示模块显示模块 显示硬件电路采用 4 位共阴 led 数码管显示方式,显示内容有温度值的百位、十位、个位及小数点后一位。用 p2 口的 p2.0p2.3 作为位控码输出,用 p0 口作为段控码输出,都采用 74ls04 做为驱动电路。模块电路如图 4-7 所示。图 4-7 显示接口电路原理图4.44.4 温度控制模块温度控制模块加热控制电路采用 pwm 控制技术在闭环控制系统中控制继电器的通断,以实现对发热片加热功率的调整,从而达到对水温控制的目的。继电器的使用非常简单,只要在使用时完全可以用 pnp 型三极管接成电压跟随器的形式驱动。当单片机的 p1.0 为低电平时继电器关断,加热电路不
35、工作;当单片机水温 p1.0 为高电平时,三极管驱动继电器工作,接通加热电路工作。控制电路图如图 4-8 所示。图 4-8 加热控制电路原理图5 5 系统软件设计系统软件设计软件编写的语言一般情况下,有汇编语言和语言两种,两种语言各有优劣。用语言编写程序的优点是:编写简单,容易上手,网上有许多已编写好的子程序,可以通过学习再结合自己想要实现的功能,从而编写相关的程序,因此开发程序所需时间也相对短。而用汇编语言编写则相对要求高一些,它要求对硬件有足够的了解和认识,在此基础上,严格地对照各部件的时序图,进行程序的编写,而且读起来相对繁琐。通过两种语言的比较,语言学起来很快,所以我选择采用 c 语言
36、编写。本系统软件设计采用模块化设计,由主程序模块、功能实现模块和运算控制模块三大模块组成。 5.15.1 主程序模块主程序模块 主程序主要完成 pid 算法、中断源及加热控制系统各部件的初始化和实现各功能子程序的调用,以及实际测量中各个功能模块的协调在无外部中断申请时,单片机通过循环实时显示外部温度。把 key3 键作为最高优先级的外部中断 0,以便使主程序能实时响应 key3 键按下的处理。软件设定定时器 t0 为 3s 定时,在无按下 key3 键时,应每隔 3s 响应一次,调用 pid 算法子程序求出输出控制量,以此来控制发热电路的发热功率,最终控制发热片的温度。主程序流程图如图 5-1
37、 所示。具体源程序见附录。 y n y n n n y 图 5-1 主程序流程图 开始初始化所有参数按键按下?外部中断 int0 初始化定时器 t0 初始化按键扫描子程序设定值大于温度值?采样子程序pwm 输出子程序pid 控制子程序定时3s?越限报警显示子程序 5.25.2 功能实现模块功能实现模块 功能实现模块主要由温度采样子程序、中断处理子程序、按键处理子程序、显示子程序等部分组成。5.2.15.2.1 温度采样子程序温度采样子程序 温度采样子程序在整个系统软件编程中起着很重要的作用。通过温度采样子程序的运用,系统才能实时获取温度值,并为接下来的运算控制子程序提供很重要的温度参数值。则温
38、度传感器 ds18b20 的程序流程图如图 5-2 所示。具体源程序见附录。 n y 图 5-2 ds18b20 程序流程图5.2.25.2.2 显示子程序显示子程序显示数据子程序的主要功能就是把测温后的结果和按键设定值经单片机处理完毕后,显示在四位 led 数码管上。显示子程序流程图如图 5-3 所示。具体源程序见附录。开始初始化跳过序列号命令发送温度转换命令读取温度返回温度转换完毕?毕? n y 图 5-3 显示子程序流程图5.35.3 运算控制模块运算控制模块 运算控制模块涉及到 pwm 控制技术和 pid 算法,在结合温度传感器 ds18b20 形成闭环式的控制系统对被控对象进行调控。
39、 pwm 是调节脉冲波占空比的一种方式,占空比= on-time(脉冲的 high 时间)/脉冲的一个周期(on-time +off-time) 。占空比以及所对应的周期,是由温度传感器所测的实际温度与目标温度的差来决定的。pwm 控制程序流程图如图 5-4 所示。具体源程序见附录。 开始显示数据结束数据传送?开始读取温度计算占空比送入加热延时函数并开始加热送入停止加热延时函数并断开电源电压结束 图 5-4 pwm 控制程序流程图 6 6 系统调试系统调试6.16.1 keilkeil 软件软件的简介的简介 单片机开发中不但要有必要的硬件,而且要有相应的软件与之结合,此时 keil 软件发挥着
40、举足轻重的地位。随着单片机开发技术的不断发展,从汇编语言的普遍使用到高级语言开发的逐渐使用,单片机的开发软件也随之在发展着,与汇编语言相比,c语言在功能上、结构性、可维护性上有明显的优势,易学易用。keil 软件是目前最流行的开发 mcs-51 系列单片机软件,keil 提供了包括 c 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uvision)将这些部份组合在一起。keil c51 标准 c 编译器为 8051 微控制器的软件开发提供了 c 语言环境, 同时保留了汇编代码高效,快速的特点。keil c51 软件提供丰富的库函数和功能强大
41、的集成开发调试工具,功能不断增强,生成的目标代码效率非常高。所以本设计选择 keil 软件。6.26.2 proteusproteus 软件软件的简介的简介proteus 软件是来自英国 labcenter electronics 公司的 eda 工具软件,除了具有和其它 eda 工具一样的原理布图、pcb 自动或人工布线及电路仿真的功能外,其特有的功能是,它的电路仿真是互动的,针对微处理器的应用,还可以直接在原理图的虚拟原型上编程,并实现软件源码级的实时调试。由此可见,proteus 软件功能强大,集电路设计、制版以及仿真等功能于一身,不仅可以对电路进行设计与分析,还可以对微处理器进行设计和
42、仿真,是一款电子线路设计与仿真软件。所以 proteus 软件是一个基于 pro-spice 混合模型仿真器、完整的嵌入式系统软硬件设计仿真平台。 proteus 软件与其它单片机仿真软件不同的是,它不仅能仿真单片机 cpu 的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时,单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真,从某种意义上讲,弥补了实验和工程应用不能相结合的不足。 所以本设计采用的仿真软件是 proteus 软件,通过它实现电路图的绘制,并与keil 软件
43、进行相关的调试。6.36.3 软件仿真软件仿真 将 keil 软件成的.hex 文件加载到单片机内,并在 proteus 软件里仿真,会在数码管上看到温度显示,如图 6-1 所示,其中 60 度是系统设定的默认温度,即目标温度;27 度是 ds18b20 温度传感器的温度,即实际温度,如图 6-2 所示。在显示 27 度之前,会看到 ds18b20 温度传感器显示 85 度,85 度的产生是由于温度传感器读取过快,还没有复位,但当运行一会之后温度传感器就会复位。 由于本设计系统主要对发热片的温度进行实时检测,以此来精密地控制发热片的温度。但 proteus 仿真软件只是起到一定程度的仿真,它做
44、不到使温度能随意地变化,并显示在数码管上。这远远达不到本系统设计的控制要求,因此,硬件电路的调试工作是本系统的关键。图 6-1 设置温度值图 6-2 实际所测温度值 6.46.4 硬件调试硬件调试 硬件调试主要是针对我设计的实时温度测量与精密控制温度的单片机硬件电路分别进行调试。在上电测试之前,一定要保证电路的完整无误,要避免电路出现短路或断路的情况。在确保电路正常下,无异常情况(短路或断路)之后方可上电调试,上电调试的目的是检验电路是否接错,同时还要检测原理是否正确。在本次毕业设计当中,上电调试主要是实时温度测量与温度控制的单片机控制部分和数码管点亮部分的硬件调试。1、单片机控制部分硬件调试
45、:这一部分调试主要是检查时钟电路、复位电路是否接对,单片机的电源以及地是否接好,以及其他的一些管脚的接线有没有结对。看单片机通电后是否可以正常工作等这一系列问题。2、数码管 led 电路调试:由于数码管采用的是动态扫描方式点亮的。数码管的公共端(com)直接接到单片机的 p2.0p2.3 口作为位选信号,段选接在 p1 口。电路上电后检查 at89c51 是否接上电源和地让其正常工作。在这一前提下,查看数码管能否点亮。6.56.5 调试结果调试结果温度调节效果如下: 1.通电源,打开开关,液晶显示情况如图 6-3 所示,其中数码管表示实际温度30.8,设定的目标温度为 34.0。 图 6-3
46、通电初始状态 2.随着温度的上升,目标温度与实际温度的差大于 2 度,此时占空比为 100%,周期为 3s。此时数码管显示情况,如图 6-4 所示。 图 6-4 通电后温度上升状态3.通电一会后,目标温度与实际温度的差小于等于 2 度,系统进入 pid 算法控制调节。此时数码管显示情况,如图 6-5 所示。 图 6-5 pid 算法控制调节4.当越接近目标温度时,系统输出 pwm 的占空比越小,直到数码管显示温度与目标温度接近或相等时,系统此时保持者稳定状态。此时的数码管显示如图 6-6 所示。 图 6-6 实时温度与目标温度一致时的状态 5.温度在到达木匾温度时,将会对占空比一直微调,保持温
47、度控制精度在0.5范围以内渐渐稳定下来。最终到达对温度的精密控制。7 7 结论结论 在这次的毕业设计中,我基本上能实现本系统设计的任务要求。从选择单片机,并在研究单片机的管脚性能基础上,设计出相应的电路;通过设计程序,调试程序,把设计的相应电路通过 proteus 软件以及 keil 软件结合起来,达到实现系统功能的设计,在仿真的基础上,确立电路以及程序的正确性,其中不足的是,proteus 软件当中虽然有其他发热元件,但在 proteus 仿真软件却不能实现温度的变化,不能实现相应的温度动态显示,只能显示一下传感器 ds18b20 的温度,以及程序设定的默认温度 60度,看不到相应的 pwm
48、 控制加热的效果,看不到具体的温度上升;在仿真的基础上完成实物,通过实物看到了具体的温度上升显示,基本完成设计的要求。不足之处,是对 pid 算法的了解程度不深,在对发热片进行恒温控制的时候达不到较高的精度,控制系统还不是很稳定。从这次设计中,我学到很多,也更能体会到理论联系实际的好处。这次设计不仅充分锻炼了我的动手能力,提高了我的思维能力,完善我的专业知识,而且对我自己今后的学习、工作产生很大的影响。致谢致谢 历时将近两个月的时间终于将这篇论文写完,在论文的写作过程中遇到了无数的困难和障碍,都在同学和老师的帮助下度过了。尤其要强烈感谢我的指导老师 李卫平老师, 从选题,定题开始,一直到最后毕
49、业设计的完成,李卫平老师始终认真负责地给予我深刻而细致地指导,帮助我开拓研究思路,精心点拨,热枕鼓励。正是老师的无私的指导和帮助,我的毕业设计才能够得以顺利完成,感谢李卫平老师。感谢这篇论文所涉及到的各位学者。本文引用了数位学者的研究文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇论文的写作。感谢我的同学和朋友,在我写论文的过程中给予我了很多你问素材,还在论文的撰写和排版灯过程中提供热情的帮助。由于我的学术水平有限,所写论文难免有不足之处,恳请各位老师和学友批评和指正!参考文献参考文献1张毅刚,彭喜元,彭宇.单片机原理及应用(第二版)m.北京:高等教育出版社,2010.2田玉平,
50、蒋珉,李世华.自动控制原理m.北京:科学出版社,2006.3ljung, lennard. theory and practice of recursive identification m.the mit press,1983.4刘迪,谭春亮,李建海,孙晶.基于数字 pid 和 89c52 单片机的温度控制系统j.电子设计工程,2010,18(04).5储海兵,谭功全,曹亢,任善荣.单片机温度控制实验系统j.仪表科技,2007,12.6陶冶,袁永超,罗平.基于 ds18b20 的单片机温度测量系统j.农机化研究,2007,(10).7刘军,李建伟,李慧琴.基于模糊 pid 的通用中档单片机温
51、度控制系统设计j.科学技术与工程,2007,(15).8叶丹.基于单片机的自适应温度控制系统j.传感器技术,2002,21(3):27-30.9张艳艳.基于 pid 算法和 89c52 单片机的温度控制系统j.现代电子技 术,2009,(21).10刘天.基于单片机的恒温控制系统的设计研究j.it 技术,2009,(3):29-34.11李善寿.基于单片机的恒温控制器的设计和实现j.计算机技术与发 展,2008,(12):197-199.12dallas corp.ds18b20 programmable resolution one-wire digital thermometer z.20
52、00附录附录附附 1 1 整体电路图整体电路图附附 2 2 硬件成品展示图硬件成品展示图 附附 3 3 系统源程序系统源程序/*/主程序#include #include ds18b20ce.h#include delay.h#include jipan.hsbit p10=p10;sbit led0=p14;sbit beep=p15;unsigned char flag=0;unsigned int set_temper;unsigned int temper;uint e,e1,e2,ep,ed,rout=0;uchar kp,ki,kd; uchar high_time,low_tim
53、e=50;uchar count=0;void compare_temper(void);uint pid_com(void);void main(void) tmod=0 x01; th0=(65536-20000)/256; tl0=(65536-20000)%256; ea=1; ex0=1; et0=1; it0=0; tr0=1; kp=10; ki=8; kd=6; while(1) if(flag) key_jian(); set_temper=(b0*100+b1*10+b2)*10+b3; else tp=updatads18b20(); display(); temper=
54、tp*10+tp2; uint pid_com(void) uint n; e=(set_temper-temper)*100; ep=kp*(e-e1); ed=kd*(e-2*e1+e2); n=ep+ki*e+ed; e2=e1; e1=e; return n;/pwm 调节脉冲void compare_temper(void) if(set_tempertemper) beep=1; / if(set_temper-temper20) high_time=100;low_time=0; else rout=pid_com(); high_time=(uchar)(rout/80); i
55、f(high_time=100) high_time=100; low_time=100-high_time; else if(set_temper0) high_time=0; low_time=100; beep=0;/else rout=pid_com(); high_time=(uchar)(rout/100); if(high_time=100) high_time=0; low_time=100-high_time; void int0 () interrupt 0 flag=flag; /定时器 t0 中断子程序void timer_t0 () interrupt 1 th0=(
56、65536-30000)/256; tl0=(65536-30000)%256; count+; led0=1; if(count100) count=0; if(counthigh_time) p10=0; else p10=1; if(count=0) led0=0; compare_temper(); /*/ds18b20 子程序,ds18b20 头文件#include ds18b20ce.h#include delay.h#include #define dq_high() dq = 1#define dq_low() dq = 0sbit dq = p11;bit ds18b20init(void) bit flag;dq_low();delay(80);dq_high();delay(7);if(dq = 0)flag = 1;elseflag = 0;delay(20);return flag;void writeds18b20(uchar ch) uchar i;for(i=0;i= 1;uchar readds18b20(void) uchar
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山西传媒学院《学术规范及论文写作技巧》2023-2024学年第二学期期末试卷
- 大同师范高等专科学校《酒水调制与酒吧管理》2023-2024学年第二学期期末试卷
- 南充职业技术学院《食品添加剂实验》2023-2024学年第二学期期末试卷
- 长春职业技术学院《数据库原理》2023-2024学年第二学期期末试卷
- 红河卫生职业学院《基础实践》2023-2024学年第二学期期末试卷
- 哈尔滨体育学院《现代企业运营虚拟仿真综合实训》2023-2024学年第二学期期末试卷
- 招投标及合同管理办法-模板
- 佳木斯职业学院《临床生物化学检验学》2023-2024学年第二学期期末试卷
- 宁夏职业技术学院《颗粒技术》2023-2024学年第二学期期末试卷
- 2021护理考研护导错题试题及答案
- 《社区康复》课件-第五章 脊髓损伤患者的社区康复实践
- 2024年01月北京市地质矿产勘查院所属事业单位招考聘用笔试历年高频考题(难、易错点荟萃)答案带详解附后
- 新产品开发(toshiba案例分析组)
- 网络传播概论(彭兰第5版) 课件全套 第1-8章 网络媒介的演变-网络传播中的“数字鸿沟”
- 4.1.1 有理数指数幂-参考课件
- 雷达简介讲解课件
- 人教版六年级数学下册全册大单元教学任务单
- JJF(新) 112-2023 微量残炭测定仪校准规范
- 超载限位器调试报告
- 2024销售人员年终工作总结2篇
- 2024年牛排行业分析报告及未来发展趋势
评论
0/150
提交评论