毕业设计温度自动控制系统的设计_第1页
毕业设计温度自动控制系统的设计_第2页
毕业设计温度自动控制系统的设计_第3页
毕业设计温度自动控制系统的设计_第4页
毕业设计温度自动控制系统的设计_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、温度自动控制系统的设计摘 要随着科技的不断进步,在工业生产中温度是常用的被控参数,而采用单片机来对这些被控参数进行控制已成为当今的主流。本文介绍了数字温度测量及自动控制系统的设计。阐述了以at89c52单片机为核心的温度控制系统的工作原理和设计方法。主要组成部分:at89c52单片机、温度传感器、显示电路、温度控制电路。它可以实时的显示和设定温度,实现对温度的自动控制。而且设有超温报警程序。测试表明,本设计对温度的控制有方便、简单的特点,大幅提高了被控温度的技术指标。温度信号由温度芯片ds18b20采集,并以数字信号的方式传送给单片机。文中介绍了该控制系统的硬件部分,包括:温度检测与温度控制电

2、路。单片机通过对信号进行相应处理,从而实现温度控制的目的。关键词: 温度自动控制,at89c52,ds18b20,pidabstractwith the development of science and technology, temperature is used to be controlled parameter in industrial production. controlling controlled parameter by microcontroller has been main trend in todays society. this paper introduce

3、s the design of digital temperature measurement and automatic control system .it consists of at89c52 microcontroller, temperature sensor, show circuit and temperature control circuit. it is able to display and set temperature in real-time. the purpose is to achieve the control of temperature. beside

4、s, it has over- temperature alarm program. tests show that this design not only controls temperature conveniently and simply but also improve the technical indicators of controlled temperature greatly. with as the core of microcontroller, this design achieves the control of temperature. temperature

5、signal is collected by temperature chip ds18b20 and transmitted to microcontroller in the form of digital signal. this paper introduces the hardware of the system including temperature detection and temperature control circuit. microcontroller achieves the purpose of temperature control by processin

6、g sign correspondingly.key words: automatic temperature control, at89c52 , ds18b20, pid目 录前 言1第1章系统总体设计21.1系统设计任务与要求21.1.1系统设计任务与要求21.1.2重点研究内容21.1.3实现途径及方法21.2系统总体方案设计3第2章系统硬件各功能模块的设计52.1主控模块的设计52.1.1 at89c52单片机简介52.1.2 温度传感器的选择62.1.3复位和时钟电路的设计92.1.4 温度采集电路102.2人机接口设计112.2.1键盘的设计112.2.2显示电路的设计11第3章

7、软件设计133.1主程序模块133.2数据采集和显示模块143.3输入模块21第4章 pid控制和参数整定244.1 pid调节器控制原理244.2 pid控制的分类254.3 数字pid参数的整定264.3.1 采样周期选择的原则274.3.2 pid参数对系统性能的影响274.4 pid计算程序29第5章 仿真365.1 proteus软件简介365.2仿真36致 谢38参考文献39附 录40附录1:源程序40附录2:原理图45ii 温度自动控制系统的设计前 言温度是表征物体冷热程度的物理量。在很多生产过程中,特别是在冶金、化工、建材、食品、机械、石油等工业中,温度的测量和控制都直接和安全

8、生产、提高生产效率、保证产品质量、节约能源等重大技术经济指标相联系。因此,温度的测量与控制在国民经济各个领域中均受到了相当程度的重视。单片机系统的开发应用给现代工业测控领域带来了一次新的技术革命,自动化、智能化均离不开单片机的应用。将单片机控制方法运用到温度控制系统中,可以克服温度控制系统中存在的严重滞后现象,同时在提高采样频率的基础上可以很大程度的提高控制效果和控制精度。现代自动控制越来越朝着智能化发展,在很多自动控制系统中都用到了工控机,小型机、甚至是巨型机处理机等,当然这些处理机有一个很大的特点,那就是很高的运行速度,很大的内存,大量的数据存储器。但随之而来的是巨额的成本。在很多的小型系

9、统中,处理机的成本占了系统成本的比例高达20%,而对于这些小型的系统来说,配置一个如此高速的处理机没有任何必要,因为这些小系统追求经济效益,而不是最在乎系统的快速性,所以用成本低廉的单片机控制小型的,而又不是很复杂,不需要大量复杂运算的系统中是非常适合的。 随着电子技术以及应用需求的发展,单片机技术得到了迅速的发展,在高集成度,高速度,低功耗以及高性能方面取得了很大的进展。现在完全可以运用单片机和电子温度传感器对某处进行温度检测,而且可以很容易地做到多点的温度检测,如果对此原理图稍加改进,还可以进行不同地点的实时温度检测和控制。第1章 系统总体设计1.1 系统设计任务与要求1.1.1 系统设计

10、任务与要求该温度自动控制系统采用at89c52单片机为主控芯片,传感器采用数字温度传感器ds18b20,实现对温度的检测和控制。主要技术指标:可检测的范围为-55+125。该温度自动控制系统由温度信号采样电路,键盘及显示电路,温度控制电路,报警电路,时钟信号电路等构成,并运用pid算法进行温度控制和调整。根据设计任务,详细分析温度自动控制系统的设计需求,并进行软硬件的总体设计。由键盘电路输入设定温度信号给单片机,温度信号采集电路采集现场温度信号给单片机,单片机根据输入与反馈信号的偏差进行pid计算,输出反馈量给温度控制电路,实现升温。显示电路实现现场温度的实时监控。设计人员需完成全部硬件和软件

11、的设计,并利proteus仿真软件对设计结果进行验证。1.1.2 重点研究内容本设计包括硬件设计和软件设计。硬件设计主要包括温度信号采样电路,键盘及显示电路,温度控制电路,报警电路,时钟信号电路等,其中硬件设计重点是键盘及显示电路和温度控制电路。软件设计主要完成系统初始化、键盘处理子程序、ds18b20和lcd1602的子程序设计、pid计算子程序等工作。1.1.3 实现途径及方法本系统主要通过资料查找、系统需求分析、系统总体设计,软硬件总体设计、详细的软件与硬件设计、系统仿真与调试、资料整理等步骤来完成。本系统利用protel软件完成硬件电路设计工作,利用keil51软件完成系统控制软件的编

12、译调试工作,通过proteus软件完成所有功能模块的电路仿真。1.2 系统总体方案设计 在这个系统中我们从性能及设计成本考虑,我们选择at89c52芯片。at89c52的广泛使用,使单片机的价格大大下降。目前,at89c52的市场零售价已经低于8255、8279、8253、8250等专用接口芯片中的任何一种;而at89c52的功能实际上远远超过以上芯片。因此,如把at89c52作为接口芯片使用,在经济上是合算的。在温度传感器的选择上我们采用温度芯片ds18b20测量温度。该芯片的物理化学性很稳定,它能用做工业测温元件,且此元件线形较好。在01000c时,最大线形偏差小于10c。该芯片直接向单片

13、机传输数字信号,便于单片机处理及控制。本制作的最大特点之一就是直接采用温度芯片对温度进行测量,使数据传输和处理简单化。采用温度芯片ds18b20测量温度,体现了作品芯片化的这个趋势。部分功能电路的集成,使总体电路更简洁,搭建电路和焊接电路时更快。而且,集成块的使用,有效地避免外界的干扰,提高测量电路的精确度。本方案应用这一温度芯片,也是顺应这一趋势。对于温度的调节系统,我们采用的只是简单的升温方法,当温度低于我们设定的最低温度值时,则单片机系统控制加热装置产生热量来提高温度。在这个过程中,我们通过单片机将传感器所测量出来的温度通过lcd1602可以显示出来。这样就能实时显示温度情况。本设计采用

14、了pid控制。在工程实际中,pid控制器以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型,控制理论的其他技术也难以采用,系统控制器的结构和参数必须依靠经验和现场调试来确定时,应用pid控制技术最为方便。 pid控制器的参数整定是控制系统设计的核心内容。它是根据被控过程的特性确定pid控制器的比例系数、积分时问和微分时间的大小。pid控制器参数整定的方法概括起来有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修

15、改。二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。温度自动控制系统原理框图如图1-1所示:44矩阵键盘lcd1602功率驱动加热装置ds18b20at89c52图1.1 温度自动控制系统原理框图第2章 系统硬件各功能模块的设计2.1 主控模块的设计2.1.1 at89c52单片机简介 at89c52是一种低功耗、高性能cmos8位微控制器,具有8k 在系可编程flash 存储器。片上flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位cpu 和在系统可编程flash,使at89c52为众多嵌入式控

16、制应用系统提供高灵活、有效的解决方案。 at89c52具有以下标准功能:8k字节flash,256字节ram,32 位i/o 口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,at89c52 可降至0hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,cpu停止工作,允许ram、定时器/计数器、串口、中断继续工作。掉电保护方式下,ram内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 at89c52的广泛使用使得市面价格较8155、8255、8279要低,所以说用它是比较经济的。该芯片

17、具有如下功能:有1个专用的键盘/显示接口;有1个全双工异步串行通信接口;有2个16位定时/计数器。这样,1个at89c52,承担了3个专用接口芯片的工作;不仅使成本大大下降,而且优化了硬件结构和软件设计,给用户带来许多方便。at89c52有40个引脚,有32个输入端口(i/o),有2个读写口线,可以反复插除。所以可以降低成本1。 其主要工作特性为:l 内含8kb的flash存储器,擦写次数达1000次;l 内含128字节的ram;l 具有32根可编程i/o线;l 具有2个16位可编程定时器;l 具有6个中断源、5个中断矢量、2级优先权的中断结构;l 具有1个全双工的可编程串行通信接口;l 具有

18、1个数据指针dptr;l 两种低功耗工作模式,即空闲模式和掉电模式;l 具有可编程的3级程序锁定位;l 工作电源电压为51.2v,典型值为5v;l 最高工作频率为24mhz。l 引脚排列如图2-1所示。图2-1 at89c52引脚排列(pdip)2.1.2 温度传感器的选择ds18b20原理与特性:本系统采用了ds18b20单总线可编程温度传感器,来实现对温度的采集和转换,大大简化了电路的复杂度,以及算法的要求。首先来介绍一下ds18b20这块传感器的特性及其功能: dsl8b20的管脚及特点 ds18b20可编程温度传感器有3个管脚。内部结构主要由四部分组成:64位光刻rom、温度传感器、非

19、挥发的温度报警触发器th和tl、配置寄存器。ds18b20的外形及管脚排列如图2.2所示gnd为接地线,dq为数据输入输出接口,通过一个较弱的上拉电阻与单片机相连。vdd为电源接口,既可由数据线提供电源,又可由外部提供电源,范围3o5.5 v。本文使用外部电源供电。主要特点有: 1. 用户可自设定报警上下限温度值。 2. 不需要外部组件,能测量55+125 范围内的温度。3. 10 +85 范围内的测温准确度为05 。图2.2 ds18b20的外形及管脚图4. 通过编程可实现9l2位的数字读数方式,可在至多750 ms内将温度转换成12 位的数字,测温分辨率可达00625 。 5. 独特的单总

20、线接口方式,与微处理器连接时仅需要一条线即可实现与微处理器双向通讯。6. 测量结果直接输出数字温度信号,以一线总线串行传送给cpu,同时可传送crc校验码,具有极强的抗干扰纠错能力。7. 负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。8. ds18b20支持多点组网的功能,多个ds18b20可以并联在唯一的三线上,实现组网多点测温2。ds18b20内部功能模块如图2.3所示,图2.3 ds18b20内部功能模块ds18b20的工作原理:ds18b20的读写时序和测温原理与ds1820相同,只是得到的温度值的位数因分辨率不同ds18b20 为9位12位a/d转换精度,而ds18

21、20为9位a/d转换,虽然我们采用了高精度的芯片,但在实际情况上由于技术问题比较难实现,而实际精度此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。如下3.3的测温原理图不同,且温度转换时的延时时间由2s减为750ms。 ds18b20测温原理如图4.3所示。图2.4 ds18b20的测温原理框图图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。则高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值时。计数器1对低温度系数晶

22、振产生脉冲信号,进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值。ds18b20使用中注意事项 ds18b20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题: 1) 较小的硬件开销需要相对复杂的软件进行补偿,由于ds18b20与微处理器间采用串行数据传送,因此,在对ds18b20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用pl/m、c等高级语言进行系统程序设计时,对ds

23、18b20操作部分最好采用汇编语言实现。 2) 在ds18b20的有关资料中均未提及单总线上所挂ds18b20数量问题,容易使人误认为可以挂任意多个ds18b20,在实际应用中并非如此。当单总线上所挂ds18b20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。 3) 连接ds18b20的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生

24、畸变造成的。因此,在用ds18b20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。 在ds18b20测温程序设计中,向ds18b20发出温度转换命令后,程序要等待ds18b20的返回信号,一旦某个ds18b20接触不好或断线,当程序读该ds18b20时,将没有返回信号,程序进入死循环。这一点在进行ds1820硬件连接和软件设计时也要给予一定的重视。测温电缆线采用屏蔽4芯双绞线,其中有一对接地线与信号线,另一组接vcc和地线。2.1.3复位和时钟电路的设计本系统中采用上电复位和手动复位键复位相结合的方式。系统时钟电路设计采用内部方式。at89c52内部有一个用于构成振荡器的高增益

25、反相放大器。这个放大器与作为反馈元件的片外晶体谐振器构成一个自激振荡器。外接晶体谐振器以及电容构成并联谐振电路,接在放大器的反馈回路中。本系统电路采用的晶体振荡器频率为110592mhz。采用这种频率的晶体振荡器的原因是可以方便的获得标准的波特率。复位电路和时钟电路如图2-5所示。复位电路有上电自动复位和按钮手动复位两种。上电复位是利用电容充电来实现的,上电瞬间rst/vpd端的电位与vcc相同,随着充电电流的减少,rst/vpd的电位逐渐下降,图2.5中的10k的电阻是施密特触发器输入端的一个下拉电阻,时间常数为10*10-6*10*103s=100ms,只要vcc的上升时间不超过1ms,振

26、荡器建立时间不超过10ms,这个时间常数足以保证完成复位操作6。上电复位所需最短时间是震荡周期建立时间加上2个机器周期时间。按钮复位采用电平复位方式,按下复位电钮时,电源对外接电容充电,使rst/vpd端为高电平,复位按钮松开后,电容通过内部下拉电阻放电,逐渐使rst/vpd端恢复低电平。图2.5 复位电路和时钟电路2.1.4 温度采集电路数据采集电路如图2.6所示,1脚接地,2脚即为单总线数据口,3脚接电源。温度传感器ds18b20采集被控对象的实时温度,提供给at89c52的p3.5口作为数据输入。 图2.6 数据采集电路2.2 人机接口设计2.2.1 键盘的设计在本设计中采用了矩阵式,键

27、盘分布如图2.7所示。各键设在行列线的交差点上,有键合上时行列线接通,否则不连通。行线p10p13(即a1a4)通过上拉电阻接+5v,处于输入状态,列线p14p17(即b1b4)为输出状态7。图2.7 编码式键盘2.2.2 显示电路的设计本设计的显示采用lcd1602。图2.8为lcd1602的引脚图。 图2.8 lcd1602引脚图1602采用标准的16脚接口,其中: 第1脚:vss为地电源第2脚:vdd接5v正电源第3脚:v0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10k的电位器调整对比度第4脚:rs为寄存器选择,

28、高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:rw为读写信号线,高电平时进行读操作,低电平时进行写操作。当rs和rw共同为低电平时可以写入指令或者显示地址,当rs为低电平rw为高电平时可以读信号,当rs为高电平rw为低电平时可以写入数据。第6脚:e端为使能端,当e端由高电平跳变成低电平,液晶模块执行命令。第714脚:d0d7为8位双向数据线。第1516脚:空脚在本设计中lcd1602与单片机的连接如图2.9所示。单片机的p0口为数据输出口,接到lcd1602的db0db7口,p2.0p2.2为控制端,分别接寄存器选择rs、读写信号线r/w和使能端e,共同控制lcd1602读写操作。图

29、2.9 显示电路图第3章 软件设计由于整个系统软件比较复杂,为了便于编写、调试、修改和增删,系统程序的编制适合采用模块化的程序结构,故要求整个控制系统软件由许多独立的小模块组成,它们之间通过软件接口连接,遵循模块内数据关系紧凑,模块间数据关系松散的原则,将各功能模块组织成模块化的软件结构。系统的软件主要由主程序模块、数据采集模块、数据处理模块、控制算法模块等组成。主模块的功能是为其余几个模块构建整体框架及初始化工作;数据采集模块的作用是将数字量采集并储存到存储器中;数据处理模块是将采集到的数据进行一系列的处理,其中最重要的是数字滤波程序:控制算法模块完成控制系统的pid运算并且输出控制量。3.

30、1主程序模块主程序模块要做的主要工作是上电后对系统初始化和构建系统整体软件框架,其中初始化包括对单片机的初始化、串口初始化等。然后等待温度设定,若温度已经设定好了,判断系统运行键是否按下,若系统运行,则依次调用各个相关模块,循环控制直到系统停止运行。主程序模块的程序流程图如图3-1所示。ynynny ny图3-1 主程序流程图开始读温度设定值等待数据采集温度显示pid运算控制输出系统初始化温度设定否运行/停止键按下否运行/停止键按下否等待3.2数据采集和显示模块数据采集模块的任务是负责温度信号的采集以及将采集到的数字量提供给单片机。at89c52通过控制ds18b20读取实时温度,然后,通过p

31、0口送到lcd1602进行显示。数据采集模块的程序流程图如图3.2所示,显示程序设计框图如图3.3所示8。开始结果保存返回图3-2 数据采集模块程序流程图测试显示屏幕是否忙状态返回开始清除屏幕 n送显示地址 送显示数据 y 图3.3显示程序设计框图ds18b20和lcd1602的子程序设计如下:#include#define uchar unsigned char#define uint unsigned intsbit dq=p37;/ds18b20与单片机连接口sbit rs=p30;sbit rw=p31;sbit en=p32;unsigned char code str1=tempe

32、rature: ;unsigned char code str2= ;uchar data disdata5;uint tvalue;/温度值uchar tflag;/温度正负标志/*lcd1602程序*/void delay1ms(unsigned int ms)/延时1毫秒(不够精确的)unsigned int i,j; for(i=0;ims;i+) for(j=0;j0;i-) dq = 0; /给脉冲信号 dat=1; dq = 1; /给脉冲信号 if(dq) dat|=0x80; delay_18b20(10); return(dat);void ds1820wr(uchar w

33、data)/*写数据*/unsigned char i=0; for (i=8; i0; i-) dq = 0; dq = wdata&0x01; delay_18b20(10); dq = 1; wdata=1; read_temp()/*读取温度值并转换*/uchar a,b;ds1820rst(); ds1820wr(0xcc);/*跳过读序列号*/ds1820wr(0x44);/*启动温度转换*/ds1820rst(); ds1820wr(0xcc);/*跳过读序列号*/ ds1820wr(0xbe);/*读取温度*/ a=ds1820rd();b=ds1820rd();tvalue=

34、b;tvalue=8;tvalue=tvalue|a; if(tvalue0x0fff) tflag=0; else tvalue=tvalue+1;tflag=1; tvalue=tvalue*(0.625);/温度值扩大10倍,精确到1位小数return(tvalue);/*/ void ds1820disp()/温度值显示 uchar flagdat; disdata0=tvalue/1000+0x30;/百位数 disdata1=tvalue%1000/100+0x30;/十位数 disdata2=tvalue%100/10+0x30;/个位数 disdata3=tvalue%10+0x30;/小数位 if(tflag=0) flagdat=0x20;/正温度不显示符号 else flagdat=0x2d;/负温度显示负号:- if(disdata0=0x30) disdata0=0x20;/如果百位为0,不显示 if(disdata1=0x30) disdata1=0x20;/如果百位为0,十位为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论