《基于STC89C52单片机的蒸汽加热式水温控制系统设计与实现12000字(论文)》_第1页
《基于STC89C52单片机的蒸汽加热式水温控制系统设计与实现12000字(论文)》_第2页
《基于STC89C52单片机的蒸汽加热式水温控制系统设计与实现12000字(论文)》_第3页
《基于STC89C52单片机的蒸汽加热式水温控制系统设计与实现12000字(论文)》_第4页
《基于STC89C52单片机的蒸汽加热式水温控制系统设计与实现12000字(论文)》_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

基于STC89C52单片机的蒸汽加热式水温控制系统设计与实现TOC\o"1-2"\h\z\u摘要 [22]。2.1系统的设计总体方案作为主要设计控制器,单片机主要负责处理温度传感器发送的数据,并将处理后的数据传送给LCD1602液晶显示器,DS18B20温度传感器主要用来采集上层水杯中水的温度,之后将采集到的温度数据发送到STC89C52单片机上。单片机的复位操作和初始温度的设定主要由按键电路完成。蜂鸣器电路由三极管实现,用于判断上层水杯中水的温温度是否超过设定峰值,显示电路主要用于显示水杯中的实时温度。2.1.1系统整体方案设计选择方案一:基于STC89C52单片机的水温控制系统的设计根据水温控制系统的设计思想,采用单片机作为整个系统的控制核心。通过用户编程,采集DS18B20温度传感器测到的水温数据,通过读取按键判断水温,然后通过LCD显示器显示实际温度。如果水温超过预设的温度范围,通过LCD显示器显示实际温度,DS18B20温度传感器采集相关温度,单片机通过判断温度来控制加热继电器,然后加热水温。采用普通单片机,其中EPROM有8KB,STC89C52单片机片有256bRAM,编写的程序可以直接通过串行口下载,非常方便。当晶体频率为12MHZ时,单指令只需1us,可以达到本毕业设计的要求。另外,该STC89C52单片机市场价格相比于其他高端单片机比较便宜,每片仅5.8元。如图1所示,为基于STC89C52单片机的恒水温控制系统的设计结构图。图1基于STC89C52单片机的水温控制系统结构图方案二:采用fastMCU,如STC12c5a32s2、ATmega16、W77E58等,以ATmega16为例,ATmega16单片机为低功耗8位微控制器铁塔,采用AVR增强型RISC结构。由于其先进的指令集和单一的时钟周期指令执行时间,数据吞吐率在ATmega16是高达1mips/MHz。在相同的晶体频率下,速度比普通晶体快8-12倍。从性能上看,单片机是一种功能非常强大将上述两种方案比较,方案二虽然性能方面比方案一更好,但其考虑到设计成本较高,另外本系统并不需要太快的运行速度,故采用方案一。2.2单片机控制方式方案一:P控制是最简单的控制方法。控制器的输出与输入误差信号成比例。当只有比例控制时,系统输出存在稳态误差。同时,由于水的温度调节,可等效纯滞后+一阶惯性,容易产生振荡。方案二:PI控制主要是在传统的比例积分控制基础上增添了一个积分功能,在对积分的控制中,控制器的输出和对于输入错误信号的积分功能呈现成正比的关系,采用了传统的比例积分控制的方式,只要控制器具有一个足够长的响应时间,理论上就可以直接做到稳态而不是静差。方案三:PID系统控制器就是根据系统的统计误差,利用对通过比例、积分、微分等多种计算方式得到的系统控制器测量值和数值信号来对其进行控制的,也就是在系统采取了对比例、积分等进行控制的计算方式下,加入了系统微分控制,在这种系统微分控制中,控制器的插入输出和对于所有控制输入的系统误差计算信号(这也即系统误差信号变化率)之间也就形成了一个呈负正比的函数关系。通过以上三种方案的比较,由于本毕业设计不需要静态误差,被控对象,即产生的蒸汽惯性大,为了加快温度调节速度,本课程采用了第三种方案PID算法作为控制算法。2.3传感器的选择方案一:采用模拟类温度传感器,比如LM45、AD590、铂电阻等。增加适当的放大电路和AD转换电路以后,就可以将温度信号送入单片机。然而,这种设计需要用到A/D转换电路,并且对温度传感器进行接线时会有一些麻烦,制作成本较高。方案二:采用数字类温度传感器,比如DS18B20。DS18B20为数字式温度传感器,直接将温度信号转换为数字量,可编程的分辨率为9~12位,采用独特的单总线接口,只需要一条总线就可以实现与单片机通信,从而简化了硬件电路的设计,降低了毕业设计的成本。将上述两种方案比较,方案二硬件电路设计得到简化并且设计成本降低,故采用方案二。2.4本章小结在系统的整体方案设计方面包含很多器件的选择,此部分对系统的控制核心部件进行了选择对比,毕业设计对比了STC89C52与fastMCU等微控制器进行了对比,但是由于fastMCU成本较高,故选用了STC89C52作为设计的控制核心部件,还对单片机的控制方式进行了对比,即P控制、PI控制、PID控制方式,对这三种控制方式进行了分析后,考虑到设计不需要静态误差,被控对象蒸汽的惯性比较大,为了加快水温的调节速度,故选择了PID控制方式。另外还对传感器是采用采用模拟类温度传感器,比如LM45、AD590、铂电阻等,还是采用数字类温度传感器,比如DS18B20进行了论证,由于DS18B20设计成本低,最终选择了DS18B20。经过此部分的研究,认识到对于器件的选择要充分考虑各方面的利弊,如价格,性能,便捷等的优劣,最终对器件进行选择。第3章系统的硬件构成本毕业设计系统硬件设计电路主要由电源模块为硬件供电,键盘设定模块用来设置预期温度,预期温度即警戒温度、温度检测模块用来采集水的温度变化、继电器控制模块用来控制蒸汽加热的中断,用加热下层水产生的蒸汽加热上一层杯中水使其温度上升、报警模块的工作方式为当温度传感器检测到温度达到预期值时会发出警报、液晶显示模块用来实时显示传感器检测到的温度信息,其他模块有复位电路模块、晶振模块。硬件框图如图2所示。图2硬件框图3.1系统的主控模块介绍本毕业设计的核心控制部件STC89C52单片机主要用于接收和处理温度测量信号,控制加热器产生蒸汽进而加热上层水杯,使控制对象符合毕业设计要求,另外还控制着显示电路,显示着水的实时温度,控制键盘设定水温的预设值。它可以通过软件编程实现各种算法和逻辑控制,具有功耗低、体积小、成本低等优点。以STC89C52单片机为控制核心器件,对水温采集、实时显示和加热装置进行控制,读取各个采集器和按键的信号,发送温度显示数据,控制蜂鸣器和加热继电器。另外,单片机的40个端口接入电源,18-20个端口接入外部电源,实现了系统的硬件设计。如图3所示图3单片机引脚排列图3.2电源电路模块设计单片机、电阻各种芯片和电容等器件组成了本毕业设计的整个系统,系统的工作需要的电压为+5V,并不要负电压。5V的输出电压按输出电流可分为78m05和78L05,可以输出的电流分别为0.5A和1.0A,若变成功率的话分别为2.5瓦和5瓦。从本毕业设计的系统来看,需要的总功率为2W左右,为了满足整个系统的功率需求,本毕业设计采用78M05作为整个系统的电源芯片。如图4所示。图4电源电路图3.3温度检测模块设计DS18B20温度传感器作为本毕业设计的恒水温控制的关键器件,是采集水温的关键。通过采集水温,再通过转换器将其转换成数字信号,传输给单片机进行逻辑判断。由于DS18S20温度传感器是一个数字传感器,它不需要A/D转换电路转换收集到的信号。在使用DS18B20温度传感器的过程中,需要将其DQ输出端口与STC89C52单片机的P34端口连接起来,以便通过串行数据通信与温度传感器传输的数据进行通信。系统硬件主要由DS18B20温度传感器、STC89C52型微控制器及配套系统控制电路组成。单片机系统负责各被控对象的状态检测和信息收发,并向被控对象发送数据和指令。DS18B20控制系统的温度测量要求传感器具有防水性,因此系统采用防水DS18B20温度传感器将温度信号转换成数字信号直接输出。在指令写入过程中,传感器将温度数据写入存储器。在指令读取过程中,DS18B20温度传感器采集温度数据后向单片机发送数据,在STC89C52单片机接收到来自DS18B20温度传感器的数据后,MCU开始下一步操作。温度传感器网络电路图如图5所示。图5温度传感器在组网电路图3.4继电器控制模块设计水温加热继电器的控制电路通过端口P10对其进行控制,如图6所示。继电器控制电路的设计。首先,继电器与家用220V电源相连供电,继电器控制电路通过P10口控制三极管的工作状态。如果发出低电平,三极管将导通,继电器将导通,加热器开始工作产生大量蒸汽对上层水进行加热。相反,如果端口P10发送高电平,三极管将关闭,继电器将停止工作。图6继电器控制电路示意图3.5报警模块设计本课程设计采用蜂鸣器报警电路,如图7所示,蜂鸣器一般需要的的额定电流要≤30mA。对于STC89C52的微控制器,15毫安的电流需要灌注到P3口。能看出来,如果电流通过要P3口附近的单片机则不能驱动蜂鸣器。这时必须采用晶体管放大器电路。可以采用PNP型晶体管来降低微控制器的功率。当水温达到预设置的温度时蜂鸣器开始工作。由于蜂鸣器的发音需要一定的电流来驱动,但单片机的IO管脚只能输出很小的电流,所以单片机的输出电流不能驱动蜂鸣器工作,因此电流放大电路的增加是非常必要的。本课程设计采用两级三极管对蜂鸣器进行放大和驱动。蜂鸣器的正极与VCC(+5V)电源相连,负极与三极管的发射极e相连。单片机IO口输出低电平时,三极管被切断,线圈中不会有电流通过过,蜂鸣器不会工作。当单片机的IO端口输出高电平时,两级三极管会导通,蜂鸣器会工作发出声音。图7报警模块3.6复位电路模块设计复位电路就像是个保护机制,当CPU开启时,我们一般需要使其恢复到开始状态,或者当处理器死机、程序出现死循环时,我们就要按下复位电路使其结束当前状态而回到初始状态。单片机一般都会带有上电复位,需要注意的是复位引脚上的高电平必须大于复位所要求的高电平时间;有一些情况还需要人为按键复位,与上电复位类似只需要在复位电容旁并联一个按键即可。复位电路原理图如图8所示图8复位电路3.7晶振模块设计晶体振荡器有一个重要参数,即负载电容值。通过选择与负载电容相等的并联电容,可以得到标称值。晶体振荡器的负载电容一般为15pF或12.5pF。如果考虑元件的等效输入电容,最好选择由两个20pF电容组成的振荡电路。本设计采用一个12mhz晶体振荡器和两个20pf电容并联构成晶体振荡器电路。晶振图如图9所示图9晶振电路3.8键盘设定模块设计键盘设定模块主要用来设定要想达到的控制温度。选择用4个按键组成一个小键盘执行在毕业设计中的功能,如清零、预置值、改变测量范围等。如图10所示。图10按键电路其中SW为单片机总开关,通过配合加热电路可实现蒸汽加热的通断;k2、k3用来设定期待温度、最高和最低的报警温度;k4用来确定设定的温度,并且启动设定好的温度测量程序。3.9液晶显示模块设计如图11所示,是LCD1602液晶显示模块的图,它的接线方法按照总线接法来连接,LCD1602数据口应该接在单片机的P0端口。图11液晶显示电路3.10本章小结:本课程设计的整体硬件设计包括系统的主控模块设计、传感器测温模块设计、LCD显示模块设计、报警模块等主要模块设计,介绍了各个模块的工作方式及模块的作用,这些模块是硬件设计的重要组成部分,任何一个部分出现错误都会对实物的实现造成影响或导致不能得到自己想要的结果,所以硬件设计的这些模块对设计的实物实现功能起着至关重要的作用。第四章系统的软件设计系统软件部分以主程序为入口,初始化完成后,调用键盘管理器,完成对键盘的扫描,读取键值,并根据相应的键值进行各种操作。温度采样频率由软件延时控制,每次采样后计算控制时间并刷新显示。软件部分主要包括主函数、温度采集子函数、键扫描子函数、PID处理子函数、PWM波生成子函数、报警显示等功能。4.1主函数主程序作为程序的入口,控制各类程序的调用。在系统中其主要的任务是调用键盘管理程序。然后其它的功能都由DS18B20温度转换程序和中断程序完成。可以说主程序起到了重启动后读入E2PROM中的设计温度和上、下限温度;设计各类定时器和开中断的,并调用键盘管理程序的功能。这样处理主程序起到了分散功能的作用,即主程序会变得很容易编写,而具体的功能都由功能子程序完成。流程图如图12所示。图12主程序流程图4.2按键设定函数系统的控制温度和上下报警温度由按键设定。因为键盘连接是最常见的,所以按键处理功能不会占用整个程序太多的时间序列。流程图如图13所示。图13按键设定流程图4.3温度采集函数DS18B20是应用广泛的数字式温度传感器,它与单片机的硬件接口电路比较简单,其采用单总线工作方式,所以在使用DS18B20温度传感器时需要详细了解其工作时序和内部寄存器。主机通过拉低单线480微秒以上,产生复位脉冲,然后释放该线,进入RX接收模式。主机释放总线时,会产生一个上升沿。DS18B20检测到上升沿后,延时15至60微秒,DS18B20通过拉低总线60-240微秒来产生应答信号,主机接收到有应答信号后,说明有单线器件在线。流程图如图14所示。图14DS18B20测温流程图4.4静态显示函数串行静态显示是将要显示的数字以二进制的形式串行发送到外部移位寄存器,然后移位寄存器将串行输入的数字以并行的方式输出到数码管。软件部分只需将需要显示的数字在CLK信号的作用下串行发送出去。流程图如图15所示。图15串行静态显示流程图4.5PID运算子函数常规的模拟PID控制系统原理框图如图16所示。模拟PID控制器和被控对象共同组成了该系统。其中r(t)是已知的给定值,y(t)是当系统工作时实际输出值,两个值之间构成控制偏差e(t):(4-1)图16模拟PID控制系统原理图PID控制的输入为e(t),PID控制器的输出被控对象的输入和PID控制器的输出为u(t),所以模拟PID控制器的控制规律为(4-2)其中Kp:控制器的比例系数Ti:控制器的积分系数Td:控制器的微分系数1、比例部分在仿真中,比例的作用是当控制量出现偏差时,对偏差产生的瞬时响应。当偏差产生时,控制器会立马产生作用,并起到一定的控制效果,控制量会朝着减小偏差的方向发生变化。控制效果的强弱主要还是有Kp的比例系数决定。当比例系数Kp变得越来越大时,控制效果就会变得更加强,相对而言过渡过程也会越快,从而使控制过程的静态偏差变得更小。然而,当Kp的比例系数变得越来越大时,系统越容易产生振荡,从而使系统的稳定性遭到破坏。因此,当选择Kp对比例系数时一定要选择适当,因为只有这样才能用比较小的静态误差和比较少的过渡时间达到想要的稳定效果。2、积分部分积分部分的数学表达式是:KpTi从积分部分的数学表达式可以看出,如果有偏差的存在,该系统的控制效果就会变得越来越好。只有当偏差消失变为零时,她的积分才会变成常数,其控制效果不会增加。由此可以反映出,积分部分是可以在一定程度上消除系统偏差的0。3、微分部分微分部分的数学表达式是:Kp*Tdde(t)dt实际控制系统不仅希望消除问题,还需要加快调整过程。当偏差出现或发生变化时,不仅要立即对偏差作出反应(比例环节的作用),还要根据偏差的变化趋势提前给予适当的修正。为了实现这一功能,可以在PI控制器上增加差动连接,形成PID控制器。该系统以实际测试的温度与设定的峰值温度偏差为输入,以PWM波的脉冲宽度为输出。由于产生的蒸汽温度具有热惯性的特性,在整个温度控制过程中不应使温度超过设定温度峰值,所以在选择比例系数时不能过大,而是为了配合相应的时间,当温差大于10时,不能进行PID计算,只有当温度偏差在10以内时,才能启动PID控制。一般该系统可以把忽略微分项忽略不计,只进行比例和积分运算,最终达到稳定、准确、快速的指标。流程图如图17所示。图17PID运算流程图4.6PWM产生函数脉冲宽度调制是一种模拟控制模式,它根据相应负载的变化调节晶体管栅极或基极的偏置,实现开关电源输出晶体管或晶体管导通时间的变化。PWM的优点之一是,从处理器到控制系统的信号是数字形式的,没有数模转换。利用PWM波输入固态继电器的输入端,改变加热装置加热时间进而改变蒸汽的产生,来减弱蒸汽对水的加热。在本毕业设计中,PWM是由单片机的定时器中断产生的,不影响主程序和其他功能。脉冲宽度由PID控制器的输出控制,流程图如图18所示。图18PWM产生流程图4.7本章小结:通过对本课程设计软件部分方面知识的学习,学习到各个程序的调用及工作方式,让我对本毕业设计的实物功能的实现有了更深一步的理解,通过绘制流程图也让我进一步掌握了流程图的绘制方法与窍门,这方面的学习让我受益良多。第5章系统的性能分析5.1测试方案:本毕业设计采用继电器模块来控制220W“加热器”在A水杯中放入加热器使其加热A水杯中的水,使其产生蒸汽,产生的蒸汽进而对上端的B水杯中的水进行加热,在此之前应先用键盘设定预期加热峰值,然后在B水杯中放入DS18B20温度传感器,用来检测水温变化,然后检测的温度值将显示到1602显示器上,当温度达到时蜂鸣器会报警,继电器断开停止加热。之后再经过多次调试并和设定PID参数来完善该系统。5.2仿真分析:仿真图如图18所示。对于系统的性能分析方面,当时遇到了一些困难,首先是刚开始时由于操作失误,发现单片机没有反应,之后发现为USB供电口松动,造成接触不良,其次对于性能的分析多次完成的,由于拿实物不小心造成脱焊现象,造成设计产品无法工作,后期在焊接后恢复了正常运行,最后的问题是由于加热功率太大,又是在寝室进行的测试,因寝室有限功率装置,造成寝室断电,后期测试均在教学楼进行了测试分析,最终经过不断的尝试得到了满意的结果。如图18整体仿真图5.3测试结果:经过反复的测试,最终得到以下结果,如表1所示。设置水温实际水温3029.164039.355048.896059.167069.228079.069089.19表1测试结果对比表由测试结果和表1所示,数据得出:(1)测试阶段将温度初步设定范围为20~90℃(在30~90范围内),最小区分度达到0.1℃(小于1℃)以上,标定温度值也基本符合设计要求。(2)由于本毕业设计采用PID控制算法,当环境温度降低时,静态误差的温度控制小于0.9(精度高于设计要求)。(3)用液晶显示屏来显示水的实际温度和设定温度值,显示很稳定。(4)采用PID控制。当设定温度突然变化(从40到60)时,经过多次调试,知道当p=20时。I=15。D=6,系统具有最小的调整时间和超调量。(5)在加热到设定温度达到稳定时,温度控制的静态误差≤0.5℃。5.4本章小结:对于调试阶段,在调试时有很多问题,如:USB松动造成硬件部分没有通电,由于多次测试,不小心造成焊接部分脱焊,没有考虑到寝室电路限功率问题,使用大功率加热造成断电现象,这三个部分的问题造成了性能分析的中断,之后经过检查,补焊,转换测试地点,最终完成了对性能的分析,实验的各个方面都达到了预期值。第6章总结与展望6.1总结:首先,通过学习及动手制作本毕业设计,首先了解的基于PID的蒸汽加热式恒水温控制设计与实现的研究背景,国内外发展现状,其次明确了自己的研究目的及意义进而确定了自己的研究方向和研究方法,经过对于P、PI、PID算法控制的对比研究,发现PID算法控制能够更大程度提高控制精度,因此为最优控制算法,最终确定了采用PID为控制算法,对于本毕业设计的核心控制部件,在确定型号之前,用STC89C52与其他型号的单片机作了充分的对比,从性能及便捷方面,价格方面等方面综合考虑,最终确定使用了STC89C52单片机为本次毕业设计的核心控制部件,另外对于传感器是采用模拟类温度传感器,比如LM45、AD590、铂电阻等,还是采用数字类温度传感器,比如DS18B20进行了对比选择,考虑到DS18B20价格便宜,所以选择DS18B20传感器为本毕业设计的温度传感器。对于硬件及软件方面的设计经过多方面查找书本及网上下载参考文献,对此部分在很大程度上有了掌握。另外通过本毕业设计的研究和学习,进一步提高了我对于毕业设计独立思考能力,详细理解了对于单片机的选型、控制方法的选择及在众多传感器型号中选择最优的传感器,同时也对软件部分及编程部分有了更深层次的学习。6.2展望:通过本次设计的思路,我们对单片机有了更深的了解,精通单片机的控制,b对DS18B20温度传感器有了更深的了解。关于本毕业设计的硬件选择主要还是在低端,价格便宜的硬件中进行对比选择,在低端的硬件选择能实现毕业设计功能的硬件,在以后的学习中想要接触一些高端的单片机如:STM32系列和多核的ARM类型的单片机,进而实现更高要求的设计内容及功能。另外由于本毕业设计依赖于温度传感器,对于传感器的稳定性、线性度等诸多方面有着严格的要求,但是传感器的性能越好,相对来说,价格也就越高,所以在本设计中,温度传感器仍有一些遗憾。对于本毕业设计在蒸汽加热方面也有一些缺点,由于设计太简单仅仅是通过一个小口排出蒸汽对水进行加热,没有设置蒸汽排除量控制阀,所以蒸汽加热方面由于惯性会造成误差较大,所以在今后的学习中应加强对于蒸汽控制阀的研究,以此来达到更精确蒸汽加热式恒水温控制。总的来说本毕业设计还有很多地方

温馨提示

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

评论

0/150

提交评论