单片机温度控制器.docx
《单片机温度控制器.docx》由会员分享,可在线阅读,更多相关《单片机温度控制器.docx(48页珍藏版)》请在冰豆网上搜索。
单片机温度控制器
大连海事大学
毕业论文
二○一四年六月
单片机温度控制器设计
专业班级:
姓名:
指导老师:
信息科学技术学院
摘要
随着国民经济的发展,工业生产过程中的温度成为一个重要的被控参数,对各种各样工业现场的锅炉、加热炉和反应炉中的温度进行测控在生产中变得非常普遍。
而工业生产中的温度控制多有单向性、迟滞性和大惯性等缺点,提高温度测控的准确性和快速性就显得尤其重要。
单片机凭借其低功耗、高运行速度和处理能力强等优点,为我们在温度控制方面提供了新的方向。
它操作方便,组态简单,灵活性高,提高了温度测量的准确性和快速性。
本温度控制器选择了单片机AT89S51作为核心元器件。
它的敏感元件是铂电阻PT100,通过稳压电路和桥路将温度信号转换成相应的电压信号,再经过放大滤波电路把模拟电压信号传送给ADC0804,然后经ADC0804的转换后将数字量传送给单片机进行液晶显示和温度控制。
软件设计部分采用了模块化结构,分为温度采集模块、基准温度设置模块、LCD显示模块、串口通信模块和PID控制模块。
设计初始还通过串口将温度值传给软件MATLAB进行仿真,画出温度值图像,以方便调试PID参数和计算误差。
关键词:
单片机;温度控制;PT100;LCD
ABSTRACT
Withthedevelopmentofnationaleconomy,thetemperatureintheprocessofindustrialproductionbecomeanimportantcontrolparameter,themeasurementandcontroloftemperature inthefieldofboiler,heatingfurnaceandreactorbecomeverycommoninvariousindustrialfield.However, thetemperaturecontrolintheindustrialproductionisunidirectional,lag,largeinertiaandsoon,itisparticularlyimportanttoimprovetheaccuracyoftemperaturecontrolandpower.
MCUthatrelyonlowpowerconsumption,highoperationspeed,processingabilityandsoonprovidesanewdirectionforusintermsoftemperaturecontrol.Itimprovesthetemperaturemeasurementaccuracyandquicknessbecauseofeasyoperation,simpleconfiguration,highflexibility.
ThetemperaturecontrollerchoosesasinglechipAT89S51asthecorecomponents.ThesensitiveelementofthetemperaturecontrollerisPT100platinumresistance,temperaturesignal willbeconvertedintocorrespondingvoltagesignal throughregulatingcircuitandbridgeroad,afteramplificationfiltercircuit,AnalogvoltagesignalsaretransmittedtotheADC0804,then,wetransferdigitalquantityconvertedbyADC0804 toMCULCDtodisplayandtemperaturecontrol.WeadoptsthemodularstructureSoftwaredesignpartanddivideitintotemperatureacquisitionmodule,thereferencetemperaturesettingmodule,LCDdisplaymodule,serialcommunicationmoduleandthePIDcontrolmodule. WesimulateviaaserialporttothesoftwareMATLABintheinitialdesign.Atlast,wedrawthetemperatureimagestofacilitatedebuggingPIDparametersandthecalculationerror.
Keywords:
singlechipmicrocomputer;temperaturecontrol;PT100;LCD
目录
第1章绪论1
1.1温度测控技术的发展与现状1
1.1.1定值开关控温法1
1.1.2PID线性控温法2
1.1.3智能温度控制法2
1.2系统总体设计方案2
1.2.1系统性能要求2
1.2.2系统硬件方案分析3
1.2.3系统软件方案分析3
第2章硬件部分4
2.1整体硬件结构4
2.2各个模块硬件设计4
2.2.1单片机模块4
2.2.2温度采集模块7
2.2.3放大、滤波模块9
2.2.4A/D转换模块11
2.2.5基准温度设置模块12
2.2.6温度显示模块13
2.2.7执行控制模块13
第3章软件部分16
3.1整体软件流程图16
3.2各个软件部分16
3.2.1采集模块16
3.2.2基准温度设置模块18
3.2.3温度显示模块20
3.2.4串口发送模块23
3.2.5PID控制模块26
第4章MATLAB仿真32
4.1串口接收温度值方面32
4.2MATLAB画图方面32
4.3仿真调试方面34
结论36
参考文献37
致谢38
第1章绪论
1.1温度测控技术的发展与现状
在工业生产中,温度的测量和控制的准确性是安全生产、高效率、高质量、低成本和节约能源的前提,它们关系着重大的技术经济指标。
因此,重视温度的测控系统,使其测量和控制精确化、快速化显得尤其重要。
近年来,检测温度的理论比较成熟,但在实际的温度测控系统中,如何保证实时温度数据的快速采集,保证数据的传输正确,并能把测量的温度控制得较精确,仍然是温度测控系统中一个重要的课题。
温度测控技术主要包括两个方向,分别为:
温度测量技术和温度控制技术。
温度的测量技术主要分为接触式测温和非接触式测温两方面。
接触式测温有很久的历史,凭借其简单、方便、低成本和测量精度较高等优点,应用广泛。
这种方式虽然可以测得真实温度,但是因为检测元件热惯性的影响,需要较长的响应时间。
不仅如此,这种方式还不能够测量超高温的场合,不能测量运动的场合,不能对有腐蚀性的物体进行测量。
非接触式温度测量方法是一种通过检测辐射能实现温度的测量方法,凭借其不破坏被测温场、能测量运动的物体和有腐蚀性的物体和快速的响应速度等优点,也有很多应用。
但是也有很多缺点,例如:
较大的测量误差、只能测量物体的表观温度、需要结构复杂的测温装置和成本高。
因此,实际温度的测量,要根据不同的测量对象选择最合适的测量方法,在满足精度要求的前提下最小化投资。
温度控制技术按照所要达到的控制目标不同,可分为两类:
温度恒值控制技术和温度动态跟踪技术。
温度动态跟踪技术是通过设定控制温度的变化曲线进行控制的。
在很多工业生产的控制现场,都要实现这样的控制目标,如:
燃烧的锅炉中的温度控制,化学反应所需要的温度控制和发酵生产中的温度控制等;温度的恒值控制技术是要实现让被控对象的温度值保持在某一特定的数值上,并且不能超过某个允许的波动幅度(即稳态误差)。
本次毕设的基于单片机的温度控制器就要实现对加热箱的恒值温度控制这一目标,下面仅分析温度的恒值控制。
通过观察工业控制器的发展过程,能够得到温度控制技术的几大类别:
1.1.1定值开关控温法
通过硬件电路设计或软件程序计算来判别采集温度值与设定目标温度值之间的大小,再对系统加热装置(或冷却装置)进行通断控制的方法叫定值开关控温法。
如果设定的温度值比采集的温度值低,则需要关断加热器(或开动制冷装置);如果设定的温度值比采集的温度值高,则需要开启加热器(或关断制冷器)。
这种没有计算机参与的开关控制温度的方法非常简单,通过简单的模拟电路就能够实现。
目前,我国许多工厂的老式工业电炉中还存在采用这种控制方法的温度控制器。
因为一旦系统温度上升到设定点时就关断电源,系统温度下降到设定点时就开通电源,温度变化过程中就会产生滞后性,被控对象温度波动就会很大,控制精度就会低,高精度的温度控制就不能够采用。
1.1.2PID线性控温法
PID线性控温法是来源于经典自动控制理论中的PID调节器。
PID控制有很长的发展历史,凭借其算法简单、鲁棒性好、可靠性高等优点,在工业过程控制中经常采用。
特别是在可建立精确数学模型的确定性控制系统中应用更加广泛。
因为PID调节器模型中考虑了系统的误差的倍数、误差的积分及误差微分三个方面,它的控制性能比定值开关控温法优越很多。
可以通过采用模拟电路或计算机软件方法实现PID的调节功能。
一个被称为模拟PID控制器,另一个被称为数字PID控制器。
其中能够在现场实现在线整定的数字PID控制器,具有较大的灵活性,控制效果较好。
本控制器就是采用数字PID技术,它的控制功能主要取决于三个PID参数(比例值、积分值、微分值)。
只要选择合适的PID参数,对被控对象的控制精度是比较不错的。
但是,如果被控对象特性发生了改变,三个控制参数就要相应地改变,不然就难以达到良好的控制品质。
1.1.3智能温度控制法
由于PID线性控温法缺点的存在,人们不得不研究一些自动调整PID参数的方法,如PID参数的自整定。
不仅如此还把PID控制与智能控制联系起来,达到温度的智能控制的目的。
智能温度控制法是在神经网络和模糊数学的基础上,配合专家系统实现智能化控制。
目前,已经研发了一种高精度的模糊控制器,它能够模拟人的操作经验,并改善控制参数,提高性能。
理论上能够完全消除稳态误差
。
目前,国内的温控仪表在控制算法上和国外还存在一定的差距。
具体表现在较差的自适应和全量程范围内较低的温度控制精度。
1.2系统总体设计方案
本论文所讨论的基于单片机的温度控制器是要实现加热箱的恒值温度控制。
加热箱的温度控制范围在0摄氏度到150摄氏度之间。
下面讨论系统的性能要求系统的的硬件方案分析和软件方案分析。
1.2.1系统性能要求
系统性能要求:
(a)通过按键人为地设定温度的基准值;
(b)温度误差在1摄氏度以内;
(c)能够将温度的基准值和采集的温度值在液晶屏上显示出来;
(d)能够通过串口传送温度值,并在上位机上显示温度图形,辅助调节PID参数值;
(e)最终控制温度的稳态误差在2摄氏度以内;
(f)既有升温环节,又有降温环节。
1.2.2系统硬件方案分析
因为要实现上述系统的功能要求,以及智能化仪表要符合体积小、成本低、功能强、抗干扰和精度高的要求。
本系统在硬件设计方面有如下选择:
根据性能要求,采用AT89S51作为控制主板的核心芯片;
根据加热箱的测温范围的要求,温度传感器采用PT100铂电阻。
1.2.3系统软件方案分析
目前,51系列单片机的开发语言主要有两种:
汇编语言和c语言。
相比于汇编语言,C语言有很多优点,如下:
(a)具有结构化控制语句。
(b)适用范围大和可移植性好。
(c)能够准确地对硬件资源操作。
因此,本控制器采用c语言编程,并采用模块化结构。
第2章硬件部分
2.1整体硬件结构
本温度控制器包括7个硬件方面,分别为:
单片机、温度采集、放大滤波、A/D转换、基准温度设置、温度显示、执行控制。
其整体硬件框图如图2.1:
图2.1整体硬件框图
2.2各个模块硬件设计
2.2.1单片机模块
本次毕设采用了AT89S51这款单片机,它具有以下几个部分:
●8位的CPU1个
●片内时钟电路和振荡器各1个
●中断源共5个
●ROM程序存储器4KB
●RAM数据存储器128B
●16位定时/计数器2个
●可编程的串行接口1个
●8位并行输入输出4个
●可寻址的64KB外部数据存储器和可寻址的64KB外部程序存储器
AT89S51一共有三种常见的封装形式,分别为PLCC、PDID、TQFD,其中最为常见的是40个引脚封装的双列直插式PDID封装。
其管脚图如图2.2:
图2.2AT89S51管脚图
该芯片一共有40个引脚,芯片的引脚排列顺序是从有缺口的那方左边那列引脚逆时针数起,引脚数字序号依次是1、2……40,其中芯片的40脚和1脚中间有一个明显的凹点(即缺口),目的是用来识别方便。
这40个引脚,分别为:
32根可编程I/O引脚、4根控制引脚,2根电源引脚以及2根外接晶体振荡器引脚。
2.2.1.14组8位可编程I/O引脚(32根)
AT89S51单片机有4组可编程I/O口,分别为P3口、P2口、P1口、P0口,每个I/0接口都有8根引脚(8位),一共是32根。
每一根引脚都能实现独立编程,完成独立的作用,比如用来控制LED灯、加热箱和电机等。
本设计中就通过P2.6接光耦可控硅模块控制加热箱加热,实现温度控制的功能。
(1)P3口(引脚10~引脚17):
名称为P3.0~P3.7,它有两种功能:
作为8位I/O口线(内部具有上拉电阻,不需要外接上拉电阻)。
作为第二功能使用时,每一位都有特殊功能。
本控制器中都有用到,在后文中逐一介绍。
在应用中,P3口的各位如不设定为第二功能,则默认为第一功能。
在更多的情况下,根据需要,将几条口线设为第二功能,剩下几条口线作为第一功能使用,此时,宜采用位操作形式。
(2)P2口(引脚21~引脚28):
名称为P2.0~P2.7,它有两种功能:
作为8位I/O口使用,能够外部接输入输出设备。
在外接I/O口或者存储器时,被用作系统的地址总线,用来输出16位地址总线中的高8位地址
(3)P1口(引脚1~引脚8):
名称为P1.0~P1.7,具有单一接口功能,每一位都可以作为可编程的输入输出口线。
电路结构中驱动部分接有上拉电阻,当输入时,要先对该接口写“1”。
(4)P0口(引脚39~引脚32):
名称为P0.0~P0.7,它具有双重功能。
作为输入输出口,外接输入输出设备(作为输入输出口线时应外接10千欧姆的上拉电阻)。
在外接I/O接口或者存储器时,输出低8位地址总线,和P2口配合组成16位地址总线,传送数据时,作为数据总线,两者分时使用P0口。
2.2.1.2控制引脚(4根)
(1)EA/VPP(引脚31):
内外部程序存储器的选通,如果从外部程序存储器读指令要接低电平,如果从内部程序存储器读指令则接高电平。
(2)ALE/PROG(引脚30):
地址锁存允许信号。
该引脚的输出信号ALE锁存P0口的低8位地址以配合单片机访问外部存储器。
单片机时钟震荡频率的1/6就是它的输出频率。
(3)PSEN(引脚29):
程序存储器的控制信号。
它的作用是作为选通输出读外部程序存储器的信号。
(4)RST/VPP(引脚9):
复位引脚,要想让单片机复位就给引脚上2个机器周期的高电平。
单片机片内电路的初始化是通过复位操作完成的,它让单片机从一种确定的状态开始运行。
复位一般有两种操作方式,分别为上电复位和开关复位。
接通电源后,单片机自动实现复位操作的方式叫做上电复位。
在电源接通的条件下,单片机发生死机,用按钮开关实现复位的方式叫做开关复位。
2.2.1.3主电源引脚(2根)
(1)VCC(引脚40):
电源输入,接+5V电源
(2)GND(引脚20):
接地线
当需要单片机通过输入输出接口控制外部器件时,一定要将单片机的地和外部电路的地连接在一起,以便形成一个基准,否则难以通过给引脚一个“1”或者“0”实现控制功能。
2.2.1.4外接晶振引脚(2根)
(1)XTAL1(引脚19):
片内振荡电路的输入端。
外部时钟信号通过该管脚接入以配合CHMOS单片机采用外部时钟信号。
(2)XTAL2(引脚20):
片内振荡电路的输出端。
外部时钟信号通过该管脚接入以配合HHMOS单片机采用外部时钟信号。
一般能够通过两种方法得到51单片机的时钟信号:
一种是外部震荡形式,一种是内部震荡形式。
内部震荡形式就是在引脚XTAL1和XTAL2外接陶瓷谐振器或者晶体振荡器。
产生震荡时钟脉冲的原因是单片机内部的高增益反向放大器接上晶振后,发生了自激震荡。
晶振通常选用6MHz、12MHz、24MHz。
把外部已有的时钟信号引入单片机内的方式是外部震荡方式。
他的目的是让单片机的信号与外部时钟信号保持相同
。
2.2.2温度采集模块
温度采集模块是通过PT100配合稳压电路和桥路将温度信号转变成相应的电压信号实现的。
2.2.2.1采集模块整体电路
采集模块整体电路如图2.3所示:
图2.3采集模块整体电路图
2.2.2.2PT100
PT100是铂热电阻,它的阻值跟温度的变化近似成正比。
两者的关系如式(2.1)所示:
(2.1)
式中,A、B、C——分别为常数系数,分别为0.00390802、0.00000058、0.0000000000042;
——为电阻值;
T——为温度值。
由式(2.1)可以看出,当温度在0到100摄氏度之间时,PT100的线性度非常好,其阻值与温度的关系可近似简化为RPt100=100(1+0.0039t),电阻值变化0.39欧姆,就表示温度变化1摄氏度。
由上面的理论基础,再通过PT100的分度表(如图2.4所示)不难发现,温度值的变化会直接影响铂电阻PT100电阻值的变化,而且电阻值随温度的变化是基本成线性的关系。
因此,我们就能够通过得到电阻值的变化来近似估计温度值的变化。
但是,单片机难于处理阻值的变化,所以我们要把阻值的变化转变为电压的变化,而桥路能够帮我们解决初始电压不为0的问题,所以我们采用桥路的方式来获得电压信号,以方便单片机的处理。
图2.4PT100分度表
PT100有三种不同的连接方式,分别为:
(1)二线制:
二线制是一种低成本、操作简单的连线方式。
对于热电阻来说,只需要在两端各连接一根导线就能够完成,但是因为引线电阻的存在,必然会带来附加误差,因此,二线制不能够在测量精度要求比较高的场合被采用。
(2)三线制:
三线制是我们在工业现场见到最多的连线方式。
它的连接方式虽然有复杂,但是配合电桥使用能够起到消除引线电阻的良好作用。
对于热电阻来说,三线制就是一端引出一根导线,另一端引出两根导线的连线方式。
(3)四线制:
四线制只有在精度要求非常高的场合被采用。
这种接线方式虽然复杂,但是具有能够完全消除引线电阻的优点。
对于热电阻来说,就是在两端各连接两根导线的方式,再通过后续操作,完全消除误差电阻
。
在本次实验中,由于导线很短,导线电阻几乎没有影响,所以采用了最简单的两线制方式。
2.2.2.3稳压管LM317
虽然采用桥路,但是还存在一个问题,就是电压的稳定性,由于桥路输出的差分信号很小,电压波动会产生很大的误差,所以一定要采用稳压电路,对桥路的输入电压进行稳压。
LM317是一种非常易于使用的、输出可调节的稳压器,要想设置需要的输出电压只需要改变两个外部电阻就可以。
只要满足输入电压在输出电压加三以上就能够实现输出电压范围在1.2伏特到37伏特之间的功能。
本实验中采用了稳压管LM317。
它的常用稳压电路如图2.5所示:
图2.5LM317稳压电路
输出电压如式(2.2)所示:
(2.2)
式中,R1,R2,Iadj——分别如图;
Vout——为稳压管输出电压。
只要将电流控制在100微安以下,后者就能够忽略,因此将R1控制在200欧姆左右,输出电压如式(2.3)所示:
(2.3)
因此,我们将R1设置为200欧姆,输出为5伏特,根据式(2.3)计算得出R2的值为600欧姆。
现实中,我们用变阻器202代替R2,调节变阻器的值让输出为5伏特即可。
2.2.3放大、滤波模块
本控制器中,放大电路是通过两级放大实现的,滤波电路是最简单的阻容滤波。
2.2.3.1放大滤波模块整体电路
整体电路图如图2.6所示:
2.2.3.2放大器LM358
通过查找比较,我们发现芯片LM358包括两个运算放大器,正好满足本次放大电路采用两级放大的要求。
其中第一级放大的倍数为2倍,第二级放大的倍数为40倍左右。
LM358采用双列直插式,可以双电源供电也可以单电源供电,本实验中采用双电源供电,分别为+5伏特和-5伏特。
值得注意的是正负电源要有公共地,并与稳压管LM317的地相连,以达到共地的要求。
图2.6放大滤波模块整体电路图
2.2.3.3确定放大倍数及电阻值:
此电路的放大倍数是根据0至150摄氏度变换为0至5伏特计算的。
(2.4)
式中,Vpt——为PT100的电压值;
——为PT100的电阻值。
(2.5)
式中,V——为R3的电压值。
(2.6)
式中,倍数——为运算放大器第二极的放大倍数;
——为150摄氏度时PT100两端电压与R3两端电压差值。
(2.7)
式中,倍数——为运算放大器第二极的放大倍数;
R12——为运算放大器第二极负输入端和输出端之间的电阻。
(2.8)
式中,
——为运算放大器两级放大的输出;
t——为采集的温度值。
当温度为150摄氏度时,查图2.4得PT100为158.2欧姆,根据式(2.4)得PT100两端电压为162.8毫伏,由于0摄氏度时PT100的值为100欧姆,则R3的值为100欧姆,根据式(2.5)得分压V的值为104.17毫伏,求的PT100与R3两端电压差值为58.65毫伏,第一级放大倍数为2,根据公式(2.6)求的第二级放大倍数为42.5,再根据公式(2.7),求的R12=2075欧姆,则将变阻器R12电阻值调节为2075欧姆,放大部分的理论计算就完成了。
但是,实际电路跟理论值肯定存在允许性误差,我们只需要两步就能够让电路达到要求:
(a)0摄氏度时,PT100为100欧姆,用変阻箱调成输出为100欧姆,接到本来PT100的位置,让输出为0伏特。
(b)150摄氏度时,PT100为158.2欧姆,用変阻箱调成输出为158.2欧姆,接到本来PT100的位置,让输出为5伏特。
调节完毕,检测一下,使其误差最小:
50摄氏度时,根据式(2.8)求得理论电压值为1.67伏特,根据图2.4可知PT100电阻值为119.70欧姆,将変阻箱调节到119.7欧姆,连接到PT100本来的位置,则实际值测量值为1.66伏特。
80℃时,根据式(2.8)