基于单片机的锅炉温度水位控制系统设计_第1页
基于单片机的锅炉温度水位控制系统设计_第2页
基于单片机的锅炉温度水位控制系统设计_第3页
基于单片机的锅炉温度水位控制系统设计_第4页
基于单片机的锅炉温度水位控制系统设计_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录中文摘要 .1英文摘要 .21 绪论 .31.1 电热锅炉的应用背景及其控制理论的发展.31.2 本文的设计指标.42 硬件电路设计 .52.1 系统方案概述.5温度检测元件 DS18B20 .62.3 显示模块设计.82.4 键盘模块设计.92.4.1 键盘工作原理 .92.4.2 键盘识别方法 .102.4.3 键盘工作方式 .102.5 指示及报警电路.112.6 功率驱动电路.122.6.1 固态继电器简介 .122.6.2 功率驱动电路设计 .132.7 水位检测及控制电路.132.7.1 水位检测电路 .132.7.2 水位控制电路 .14电源电路.152.9 单片机选型及简

2、介.153 软件的设计 .193.1 系统软件总体概述.193.2 主程序.193.3 T0 中断服务子程序 .213.3.1 中断系统简介 .213.3.2 T0 中断服务程序的编写.233.4 键盘中断服务子程序.243.5 PID 运算设计 .253.6 其他子程序介绍.273.6.1 显示子程序 .273.6.2 DS18B20 相关子程序.283.6.3 PID 输出转换程序.294 系统的仿真 .304.1 PID 参数整定方法 .304.2 系统仿真结果.315 结论 .33致谢 .34参考文献 .35附录 1.36附录 2.37电热锅炉温度水位控制系统设计摘要:在冶金、化工、机

3、械等各类工业控制中,电热锅炉都得到了广泛应用。它具有环保、高效、体积小等优点。因此对电热锅炉控制系统的研究就显得十分有必要。本文介绍了以 AT89S51 单片机为核心的温度和液位控制系统的工作原理和设计方法。温度信号由温度芯片 DS18B20 采集,以数字信号的形式传送给单片机;水位信号由电接点水位计采集,以开关量形式传送给单片机。文中介绍了该控制系统的硬件部分,包括:温度检测电路、温度控制电路、水位检测电路,水位控制电路和其他一些单片机接口电路。文中还介绍了软件设计部分,在这里采用模块化结构编程。软件主要分三个部分:主程序、键盘中断及按键处理程序、T0 中断程序。其他的一些子程序包括:温度信

4、号处理程序、数码管显示程序、PID 处理程序等。最后利用 MATLAB 和电热锅炉的近似数学模型,对温度控制进行了仿真。关键词:电热锅炉;AT89S51 单片机;DS18B20 温度芯片;温度控制;水位控制;PID 控制The design of temperature and water-level control system of electric boilerAbstract:Electric water boiler has been widely used in every kinds of industrial control,such as metallurgy, chemic

5、al industry, machinery etc. It is environmentally friendly, efficient, small size and so on. So it is very necessary to study the control system of electric water boiler. This paper introduces the working principle and design method of the temperature and liquid level control system which is based o

6、n AT89S51 MCU. Temperature signal collected by DS18B20 temperature chip is transmitted to the MCU in the form digital signal. The water signal collected by electric contact sensor, is transmitted to the MCU in switch forms. In this paper, the control system hardware part includes temperature sensing

7、 circuit, temperature control circuit, the water level detection circuit, the water level control circuit and other microcontroller interface circuit. The paper also introduces the software part, which uses the modular structure in programming. Software part is divided into three main parts: the mai

8、n program, the keyboard interrupt and key processes program, To interrupt program. Some other subroutines include: temperature signal processing, digital control program, PID process procedures. Finally, with MATLAB and the approximate mathematical model of electric boilers, the temperature control

9、system is simulated.Keywords: Electric Water Boiler, AT89S51 MCU, DS18B20 Temperature Chip, Temperature Control, Water-level Control, PID Control.1 绪论1.1 电热锅炉的应用背景及其控制理论的发展 根据国内实际情况和环保上的考虑和要求,燃煤锅炉由于污染并且效率不高,已经逐渐被淘汰;燃油和燃气锅炉也存在着燃料供应部方便和安全性等问题。因此在人口密集的居民区、旅馆、医院和学校,电加热锅炉完全能替代燃煤、燃油、燃气锅炉。 电加热锅炉采用全新加热方式,无污

10、染,完全可以称为绿色环保锅炉。电加热锅炉具有许多优点,使其比其他形式的锅炉更具吸引力,其具体优点如下1:(1) 无污染。由于采用电加热方式,电能直接转换为热能,不需要采用燃烧的方式将化学能转换为热能,因此就不会排放出有害气体及飞灰,不会产生灰渣,完全符合环保方面的要求,更适合安放在人口密集的生活区和办公区。(2) 能量转化效率高。电加热锅炉采用加热元件直接与水接触,加热时转换效率很高,能量转化率也很高,一般可达到 95%,而最新最好的锅炉更是能达到 98%以上。(3) 锅炉本体结构简单,安全性好。电加热锅炉本体结构非常简单,不需要布置管路,没有燃烧室,没有烟道,故而不会出现燃煤、燃气、燃油锅炉

11、存在的爆炸和泄漏的危险。(4) 体积小,重量轻,占地面积小。由于本体结构简单,使得电热锅炉体积可以做的很小,简单的结构更加便于布置,占地面积也就减小。(5) 锅炉启动、停止速度快,运行负荷调节范围大,调节速度快,操作简单。由于加入元件工作由外部电气开关控制,所以锅炉启停速度快,通过控制各加热元件的开关,可以在很大范围内调节运行负荷,调节操作迅速、简单。与燃煤、燃油、燃气锅炉相比,操作运行更加方便、简单。(6) 可采用计算机监控,完全实现自动化。电热锅炉的温度和水位的控制都能通过计算机完成,使电热锅炉的运行完全实现自动化,最大程度的将计算机技术应用于传统的锅炉行业。根据偏差的比例(P) 、积分(

12、I) 、微分(D)进行控制(简称 PID 控制) ,是控制系统中应用最为广泛的一种控制规律2。PID 控制器问世至今已有近 70 年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用 PID 控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用 PID 控制技术。由于电加热锅炉是一个具有非线性、大滞后、大惯性、时变性、升温单向性等特点的控制对象3,很难用数学方法

13、建立精确的数学模型,因此用传统的控制理论和方法很难达到很好的控制效果。而这正符合 PID 控制使用的条件,因而 PID 控制被广泛用于电热锅炉的控制中,用来取代传统的控制方法6,并获得良好的控制效果。1.2 本文的设计指标本设计要求设计一个以单片机为核心的温度闭环控制系统以及水位控制系统,具体的技术指标如下:a. 恒温温度控制在 0-100之间,连续可调,误差在1之内;b. LED 实时显示系统温度,用键盘输入设定的温度;c. 水位控制保持在 50cm 左右,过高或过低时报警提示。本文需要完成以下工作:详细分析课题任务,设计电源电路,键盘电路,单片机系统,显示电路,执行器电路,报警电路等系统。

14、然后根据课题任务的要求设计出实现控制任务的硬件原理图和软件,并进行仿真调试。2 硬件电路设计2.1 系统方案概述系统的框图如图 2.1 所示:图 2.1 系统框图如框图所示,系统总体上分为两部分,即温度控制单元和液位控制单元。下面将分别对这两个部分进行说明。从图上能看出,温度控制单元采用 DS18B20 作为温度采集元件,该元件的输出为数字信号,所以能直接送入单片机,而不需要 A/D 转换模块。温度信号送入单片机,经过处理后,对固态继电器进行控制,通过 I/O 口控制固态继电器的通断,从而实现对加热电阻的控制。键盘电路则用来输入设定值,显示电路对系统采集到的温度实时显示。水位控制单元通过水位电

15、极将水位信号送入单片机,由于水位信号设计为开关信号,所以不需要 A/D 转换模块。单片机根据水位信号,通过 I/O 口对电磁阀进行控制,从而实现对水位的控制。很显然,该方案较其它相比无论在经济上和实现容易程度上都要好。在进行数据采集时,使用了合适的传感器,这样就不需要使用 A/D 转换电路。在实现温度控制时不像其它采用 D/A 转换后再控制调节阀的方法,而是直接外接一个固态继电器,通过内部改变定时器的中断时间来调节一个周期内电子开关的导通和断开时间。同AT89S51DS18B20水位电极SSR加热电阻电磁阀显示电路键盘电路报警电路继电器样,在实现液位控制时,也没有使用 D/A,而是直接外接继电

16、器,通过控制继电器的吸合控制电磁阀的通断。这样既节省了材料也可以很大程度上减少硬件电路的结构。温度检测元件 DS18B204DS18B20 温度传感器是美国 DALLAS 半导体公司推出的一种改进型温度传感器,与传统的热敏电阻等温度元件相比,它能直接读出被测温度,而且可根据实际要求通过简单的编程实现 9-12 位的数字值读数方式。DS18B20 的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信;多个 DS18B20 可以并联在唯一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围 3.0-5.5V;零待机功耗;温度以 9 或 12 位数字读出;用户可以定义报警设置;报

17、警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,只是不能正常工作而已。图 2.2 DS18B20 的内部结构框图正因为 DS18B20 有如上的优点,在本系统中采用温度芯片 DS18B20 测量温度。该芯片的物理化学性很稳定,它能用做工业测温元件,且此元件线形较好。在 0100 摄氏度时,最大线形偏差小于 1 摄氏度。该芯片直接向单片机传输数字信号,VDDVDDDQ64 位 ROM 和一线端口供电方式选择存储和控制逻辑高速缓冲器8位CRC生成器温度传感器高温触发器 TH低温触发器 TL配置寄存器便于单片机处理及控制。DS18B20

18、 采用 3 脚 PR-35 封装或 8 脚 SOIC 封装,其内部结构框图如图 2.2 所示。64 位 ROM 的结构开始 8 位是产品类型的编号,接着是每个器件的唯一序号,共48 位,最后 8 位是前面 56 位的 CRC 校验码,这也是多个 DS18B20 可以采用一线进行通信的原因。温度报警触发器 TH 和 TL,可通过软件写入用户报警上下限。DS18B20 温度传感器的内部存储器还包括一个高速暂存 RAM 和一个非易失性的可电擦除的 EERAM。高速暂存 RAM 的结构为 8 字节的存储器,其结构如图 2.3 示。图 2.3 DS18B20 字节定义图中,前 2 个字节包含测得的温度信

19、息,第 3 和第 4 字节是 TH 和 TL 的拷贝,是易失的每次上电复位时被刷新。第 5 个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20 工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图 2.3 所示。低 5 位一直为 1,TM 是工作模式位,用于设置 DS18B20 在工作模式还是在测试模式,DS18B20 出厂时该位被设置为 0,用户要去改动,R1 和 R0 决定温度转换的精度位数,来设置分辨率。DS18B20 完成温度转换后,就把测得的温度值与 RAM 中的 TH、TL 字节内容作比较。若 TTH 或 TT0INT1T1RI/TI。 T

20、0中断服务程序的编写T0中断入口保护现场赋T0初值从DS18B20中读取数据数据转换温度显示PID运算赋T1初值T1运行恢复现场返回图3.2 T0中断子程序流程图定时器0的中断子程序主要用来完成数据采集及显示、数据处理、PID运算和输出控制。定时器0选择工作方式1,即16位计数器。定时初值为TH0=3CH,TL0=B0H,即X=15536,这样可得到定时时间为,)(05. 0*1*)15536(*)(102616sTXNt由于采样周期为4s,所以需要对溢出进行计数,当溢出80次时才执行一次中断服务程序,这样就实现了采样周期为4s。T0中断服务子程序流程图如图3.2所示。具体程序见附录2。3.4

21、 键盘中断服务子程序当ENTER被按下时,进入键盘输入状态,然后进行键盘扫描,当有键位按下时,转入响应的键位子程序,当ENTER再被按下时,退出中断服务子程序,键盘输入完成。键盘中断服务子程序流程图如图3.3所示。程序如下:KEY_SCAN:PUSH PSW;保护现场LCALL K_DELAY;软件去抖JB P3.2,EXIT;JB ,EXIT ;如果有 Enter 键入,则开始键盘输入JB P1.7,EXIT;CLR ENTER_FLAG ;每次进来都赋值输入标志,设置为 0MOV KEY_BUF_G,DIS_BUF_G ;将当前的温度赋值给 KEY_BUF,也就是说是以当前;温度为基准,进

22、行加减的MOV KEY_BUF_S,DIS_BUF_SMOV KEY_BUF_B,DIS_BUF_BJB ENTER_FLAG,EXIT ;如果输入完成,ENTER_FLAG 则为 1,退出键盘程序;JNB P1.6,KEY_UP;JNB P1.7,KEY_DOWN;CLR P1.5;JNB P1.6,KEY_SHUTDOWN;JNB P1.7,KEY_ENTER;LCALL DISPLAY;EXIT:POP PSW;RETI; 键盘中断子程序的流程图3.5 PID运算设计键盘中断入口保护现场ENTER键是否按下ENTER_FLAG是否为1ENTER是否按下UP键是否按下DOWN键是否按下SH

23、UT键是否按下DISPLAY显示恢复现场返回ENTER子程序UP子程序DOWN子程序SHUT子程序是否否是是是是是否否否否在模拟控制系统中,其过程是将被测参数,如温度、压力、流量、成分、液位等,由传感器变换成统一的标准信号后输入调节器,在调节器中与给定值进行比较,再把比较出来的差值经PID运算后送到执行机构,改变进给量,以达到自动调节的目的。这种系统多用电动或电气单元组合仪表DDZ或QDZ来完成。而在数字控制系统中,则使用数字调节器来代替模拟调节器。其调节过程是首先采集过程参数的信号并通过模拟量输入通道将模拟量变成数字量,这些数字量通过计算机按一定控制算法进行运算处理,运算结果经D/A转换成模

24、拟量后由模拟量输出通道输出,并通过调节机构去控制进给量,以达到给定值。根据偏差的比例(P)、积分(I)、微分(D)进行控制的调节器(简称PID调节器),是连续系统中技术成熟、应用最为广泛的一种调节器。它的结构简单,参数易于调整,在长期应用中已积累了丰富的经验。特别是在工业过程控制中由于控制对象的精确数学模型难以建立,系统的参数又经常发生变化,运用现代控制理论分析综合要耗费很大代价进行模型辨识。模型辨识,是通过对系统输入/输出数据的测量与处理,从而建立系统的数学模型。当用模型辨识代替系统辨识,往往不能得到预期的效果,所以人们常采用PID调节器,并根据经验进行在线整定。整定即实验和分析的方法来确定

25、PID调节器的参数。随着计算机特别是微型计算机技术的发展,PID数字控制算法已能用微机和单片机简单实现。下面介绍一下PID控制中三个环节的作用:1)比例控制能迅速反应误差,但比例控制不能消除稳态误差,Kp的加大,会引起系统的不稳定。2)积分控制的作用是,只要系统存在误差,积分控制作用就不断的积累,控制输出量以消除误差,因而,只要有足够的时间,积分控制将能完全消除误差,积分作用太强会使系统超调加大,甚至使系统出现振荡。3)微分控制可以减小超调量,克服振荡,使系统的稳定性提高,同时加快系统的动态响应速度,减小调整时间,从而改善系统的动态性能。PID调节之所以不衰,而且在数字化计算机时代仍能得到广泛

26、应用,主要有以下几方面的有点:1) 技术成熟。PID控制是连续控制系统中技术最成熟,且应用最广泛的一种控制方法。它的结构灵活,不仅可以用常规的PID调节,而且可以根据系统的要求,采用各种PID的变种,如PI、PD控制,不完全微分控制,积分分离式PID控制,带死区的PID控制,变速积分PID控制,比例PID控制等等。在PID控制系统中,系统参数整定方便,而且在大多数工业生产过程中效果良好。2) 易被人们熟悉和掌握。生产技术人员及操作人员都比较熟悉它,并在实践中积累了丰富的经验,特别是一些在工作时间比较长的工程技术人员更是如此。到目前为止,仍有许多工业对象得不到或很难得到精确的数学模型,因此,应用

27、直接数字控制方法比较困难甚至根本不可能,所以必须应用PID算法。3) 控制效果好。虽然计算机控制是离散的,但对于时间常数比较大的系统来说,其近似于连续变化。因此,用数字PID完全可以代替模拟调节器,而且可以得到比较满意的效果。所以,用数字方式模拟PID调节器仍是目前应用比较广泛的方法之一。综上,由于软件系统的灵活性,PID算法可以得到修正而更加完善。本系统选用整型变量来实现PID算法,由于是用整型变量来做,所以不是很精确,但对于本系统所要求的电热锅炉来说,这个精度足够了。数字PID控制算法的实现方式有位置型算法和增量型算法。由于位置型算法控制算式不够方便,需要累加偏差,不仅要占用较多的存储单元

28、,而且不便于编写程序,为此,我们选用增量型算法。增量型算法的算式如下9: (3.5.1))2() 1()()(210kekekekuqqq (3.5.2))() 1()(kukuku其中 (3.5.3)KqKKqKKKqDDPIDP2102根据式(3.5.1)和式(3.5.2)编写的程序见附录2。3.6 其他子程序介绍 显示子程序由于采用单片机的串口外接串入并出移位寄存器驱动显示,越早写入串口的数据移到离单片机越远的显示器。这样显示码的存储顺序和显示器的顺序刚好相反11。显示时,将显示缓存35H-38H中的显示码依次取出,写入单片机的串口中即可。程序清单如下:DISPLAY:MOV SCON,

29、#00H ;串口方式 0MOV R1,#04H;显示四位MOV R2,#0;用于判断是否应加入小数位MOV DPTR,NUMDATA;数字字型码地址MOV R0, DIS_BUF_X;移入显示数据的地址LOOPDIS:MOV A,R0;移入 AMOVC A,A+DPTR;取值MOV 24H,A;加入一寄存器用于缓冲MOV A,R2;CJNE A,#2,NOT2;MOV A,24H;判断是否为个位,如是则点亮小数点AJMP DD;NOT2:MOV A,24H;DD:MOV SBUF ,A;发送WAITDIS:JNB TI,WAITDIS;等待发送CLR TIINC R0;地址增 1DJNZ R1

30、,LOOPDIS;发送完毕否?OUTDIS: RET;NUMDATA DB C0H,F9H,D8H,B0H,99H,92H,82H F8H,80H,98H;09的字形码 DS18B20相关子程序由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都

31、是低位在先。因此需要编写DS18B20的复位子程序、读DS18B20子程序、写DS18B20子程序。相应的程序见附录的程序清单。由于 DS18B20 转换后的代码并不是实际的温度值,所以要进行计算转换。温度高字节(MS Byte)高 5 位是用来保存温度的正负(标志为 S 的 bit11bit15) ,高字节(MS Byte)低 3 位和低字节来保存温度值(bit0 bit10) 。其中低字节(LS Byte)的低 4 位来保存温度的小数位(bit0 bit 3) 。由于本程序采用的是的精度,小数部分的值,可以用后四位代表的实际数值乘以,得到真正的数值,数值可能带几个小数位,所以采取小数舍入,

32、保留一位小数即可。也就说,本系统的温度精确到了度。整数部分的值经过移位,存入相应的内存单元,用于后面数据处理,进行PID 运算;同时将其转换为 BCD 码,用于显示。具体的数据转换程序请查阅附录2。 PID输出转换程序本系统采用过零触发方式,即在正弦波过零的时刻通过令单片机的I/O口低电平使电路导通,这样通过控制I/O口低电平有效的时间实现对正弦波导通周波数的控制,进而对加热功率进行控制。简单的说,就是假设最大功率加热时导通100个周期的正弦波,那导通50个周期正弦波时加热功率就变为50%,以此类推。PID运算的输出是一个0-255的值,这里我们假设每个单位输出对应半个周期正弦波的导通,即10

33、对应5个周期正弦波,那么255就对应127.5个正弦波,而每个正弦波的周期为20ms。通过这样的关系我们就能建立起PID的输出u(k)与导通时间的关系: ()(55. 2*255)()(20*5 .127*255)(skumskutd而导通时间与定时器T1的初值关系为:td ()50*)(102616Xtd通过以上两式可编写将PID输出u(k)转换为定时器T1定时初值的子程序U(K)_TO_T1。具体程序见附录2。4 系统的仿真要对系统进行仿真,就需要知道系统的数学模型,而电热锅炉是一个具有非线性、大滞后、大惯性、时变性、升温单向性等特点的控制对象,其精确的数学模型比较难测得,因此在仿真的时候

34、选取一个近似模型作为电热锅炉的数学模型。一般情况下,电热锅炉的近似数学模型可以描述为一个一阶的、无振荡、纯时间滞后的惯性环节。在查阅相关资料后,这里我们取电热锅炉的近似数学模型12为:esss30113005)(G我们将用这个模型进行仿真。4.1 PID参数整定方法对本系统的仿真,就是对PID控制的三个参数(即Kp、Ki、Kd)进行整定,从而达到改善系统的动态和静态指标,取得最佳的控制效果。首先我们要了解三个参数对系统的影响:增加比例系数Kp一般将加快系统的响应,在有静差的情况下有利于减小静差,但过大的比例系数会使系统有较大的超调,并产生振荡,使稳定性变坏;增大积分时间Ti有利于减小超调,减小

35、振荡,是系统更加稳定,但系统的静差的消除将随之减慢;增大微分时间Td亦有利于加快系统响应,使超调量减小,稳定性增加,单系统对扰动的抑制能力减弱,对扰动有较敏感的响应。整定PID参数的有很多,归纳起来可分为两大类,即理论计算整定法和简易工程整定法。理论计算整定法要求已知过程的数学模型,且计算繁琐、工作量大、可靠性不高,因此在现场使用中,尚需反复修正。简易工程整定法不需要事先过程的数学模型,直接在过程控制系统中进行现场整定13。PID参数的简易工程整定法有很多,如扩充临界比例度法、扩充响应曲线法等。这些方法计算简便,易于掌握。虽然是一种近似方法,所得的整定参数不一定为最佳,但却相当实用。在工程上得

36、到广泛应用。这里将介绍扩充临界比例度法,其整定的步骤为:1)选择一个足够短的采样周期,具体说就是选择采样周期为被控对象纯滞后时候的十分之一以下。2)用选定的采样周期使系统工作。这时,去掉积分作用和微分作用,只保留比例作用。然后逐渐减小比例度(=1/Kp) ,直到系统发生持续等幅振荡。记下使系统发生振荡的临界比例度k及系统的临界振荡周期Tk。3)选择控制度,并根据所选的控制度查表4.1,求得T、Kp、Ti、Td。所谓控制度就是以模拟调节器为基准,将DDC的控制效果与模拟调节器的控制效果相比较。表4.1 按扩充临界比例度法整定参数控制度控制规律TKpTiTdPIkPIDkPIkPIDkPIkPID

37、k020TkPIkPIDk4.2 系统仿真结果采用MATLAB中的SIMLINK对本系统进行仿真。首先在SIMLINK中搭建系统的模型图。图4.1 SimLink中搭建的系统模型图假设当前温度和设定温度的温差为50。经过调试,确定PID参数为:Kp=3.4,Ki=0.0027,Kd=1。此时的波形图如图4.2所示。从图中可以看出,系统的响应速度较快,静差几乎为零,且没有超调量。图4.2 系统的仿真波形图5 结论基于 AT89S51 单片机的电热锅炉水位和温度控制系统,在硬件部分有以下的特点:(1) 对于液位,利用电接点传感器将采集到的开关信号送入单片机中,在单片机中进行比较操作,并控制电磁阀的

38、通断。(2) 对于温度利用温度传感 DS18B20,将采样到的温度信号直接输入到单片机中,再由单片机根据测量温度与设定温度的差值和 PID 算法生成控制信号,控制电炉的通电与断电。(3) 在显示电路上采用了串行方式,从而减小了单片机口线的使用。(4) 电源电路虽未采用流行的开关稳压电源,但也经济实惠,性能稳定。这样的设计使系统不需要使用 A/D 转换芯片,使整个系统结构紧凑、所用芯片少。 在软件部分,有以下一些特点:(1) 温度控制部分采用了经典的 PID 算法,方法简单,且控制效果良好;(2) 同时采用过零触发直接使用 PID 的控制输出去控制加热的时间,免去了一级 D/A 转换器,减小了成

39、本,且简单易行;(3) 采用定时器中断对采样时间进行控制,使每一次的采样时间基本相同。(4) 在程序的编写过程中特别注意了人机的交互性及各种功能的实现,使系统的操作界面更容易让人理解。本论文是参阅相关资料并且分析、综合了相关方案利弊的基础上设计和完成的。由于时间和作者的水平有限,没有选择控制效果更好的模糊 PID 控制,对延迟环节没采用施密斯预估补偿处理,也没有在程序上更加的完善系统的设计,没能进一步提高控制精度。论文中存在的这些不足之处,敬请评审老师批评指正。致谢本文是在导师鲁照权老师悉心指导下完成的。他渊博的知识,严谨的治学态度,鞭策我不断努力探索。他敏锐的洞察力和孜孜不倦的教诲使我受益终

40、身,无论是现在还是将来,都将激励我奋发向上。值此论文完成之际,谨向鲁老师致以衷心感谢和崇高敬意。我还要特别感谢我的父母,多年来正是他们无私的奉献与无条件的支持才使得我得以完成学业。目前除了学习成绩尚可外无以为报,希望以后的学习、工作和生活能使父母宽慰。感谢和我一起生活四年的室友,是你们让我们的寝室充满快乐与温馨, “君子和而不同”,我们正是如此!愿我们以后的人生都可以充实、多彩与快乐!最后,对所有关心、理解、支持、帮助我的人们致以诚挚的谢意参考文献1 孙新国,闫晓,许为疆,惠世恩.电加热常压热水锅炉及其设计J.工业锅炉,2001, (61):6.2 于海生编著.微型计算机控制技术M.北京:清华

41、大学出版社,1999.84-86.3 Leonhard W.Control of Electrical DrivesM.Springer-Verlag,1985:73.4 叶钢.DS18B20 的应用J.研究与开发,2007.26(4):31-33.5 刘文洲,张立臣.利用 80C51 单片机串行口实现多个 LED 显示的一种简单方法J.国外电子元器件,2001, (1):52-53.6 M EATON.Controller tuning methods for industrial boilersJ.Industrial Electronics Society,2000,2(26):1457

42、-1462.7 蒋廷彪,刘电霆编著.单片机原理及应用(MCS-51) M.重庆:重庆大学出版社,2006.139-148,85-89.8 田亚娟.基于AT89S51的电阻炉温度控制系统的设计J.自动化技术与应用,2009,28(10):125-126.9 阎石主编.数字电子技术基础M.北京:高等教育出版社,1998.P49-P51.10 陶勇华,尹恰欣,葛芦生编著.新型PID控制及其应用M.北京:机械工业出版社,1998.1-7.11 陈伟强.MSC-51实用子程序集M.北京:北京北京航空航天大学出版社,1998.4:78-80.12 胡寿松主编.自动控制原理M.北京:科学出版社,40.13

43、邵裕森,巴筱云主编.过程控制系统及仪表M.北京:机械工业出版社,1999.153-155.附录1:系统硬件原理图附录2:软件清单TEMPERATURE_L DATA 31H ;DS18B20 低 8 位 BufferTEMPERATURE_H DATA 30H ;DS18B20 高 8 位 Buffer123456ABCD654321DCBATitleNumberRevisionSizeBDate:15-Jun-2010Sheet of File:D:my design业业业业.ddbDrawn By:A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9U774HC1

44、64A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9U874HC164A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9U1074HC164A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9U974HC16412345678161514131211109RESPACK1200*812345678161514131211109RESPACK2200*812345678161514131211109RESPACK3200*812345678161514131211109RESPACK4200*8Y112MC220

45、pC120P+5VR234.7K+5V-2+134U5SSRR19150业220V业业业+5VRLRES1U64N25R20300D11DIODE+5V+24V业12V业业业D9D10LS1SPEAKERR15500R16500R173.1K+5V+5VabfcgdeDPY1234567abcdefg8dpdppower9DS1DPY_7-SEG_DPabfcgdeDPY1234567abcdefg8dpdppower9DS2DPY_7-SEG_DPabfcgdeDPY1234567abcdefg8dpdppower9DS3DPY_7-SEG_DPabfcgdeDPY1234567abcdef

46、g8dpdppower9DS4DPY_7-SEG_DPGND3VDD1DQ2U2DS18B20业业业S1SW-PBS2SW-PBS4SW-PBS5SW-PBR1310KR1410K+5VU474LS06T58550+5V+5VP1.4P1.5P1.6P1.7P1.5P1.4P1.6P1.7T18550T28550T38550T48550R2500R5500R8500R12500+5VR34.7KR64.7KR94.7KR114.7K业业业业业业业业业业业业业业业业业业业业业业业业业业业业业业业业业业业业业R11KR41KR71KR101K12J24VAC12J12VACR2120/2WR225

47、.1/2WC111000u/35VC71000u/50VC5470u/25VC91000u/35VC100.1uC60.1UC80.1u+5V+24VD72CZ RU2D82CZ RU2D62CZ RU2D52CZ RU2Vin3GND1Vout2L7805CV5VD32CZ RU2D22CZ RU2D12CZ RU2C120.1uD42CZ RU2Vin1GND2Vout3L7824CV24VP1.01P1.12P1.23P1.34P1.45P1.5/MOSI6P1.6/MISO7P1.7/SCK8RST9P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P

48、3.4/T014P3.5/T115P3.6/WR16P3.7/RD17XTAL 218XTAL 119P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE30EA31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039GND20VCC40U1AT89S51(40)C40.1C322u123U3A74ALS08S7SW-PBR188.2KREDGREE NR241KT68050U64N25R251K+5vT8NPNVCCR261KKMKAC13R27KMLNK1TEMPERATURE_HC

49、DATA 32H ;计算后的百位和十位的 BCD 码存放 BUFFERTEMPERATURE_LC DATA 33H ;计算后的个位和小数位的 BCD 码存放 BUFFERTEMPERATURE_ZH DATA 34H ;计算后十位和个位 HEX 码的存放 BUFFERKEY_BUF_G DATA 39H ;键盘输入后,的个位值KEY_BUF_S DATA 40H ;键盘输入后,的十位值KEY_BUF_B DATA 41H ;键盘输入后,的百位值DIS_BUF_X DATA 35H ;数码管小数位 BufferDIS_BUF_G DATA 36H ;数码管个位 BufferDIS_BUF_S

50、DATA 37H ;数码管十位 BufferDIS_BUF_B DATA 38H ;数码管百位 BufferTEMP_G DATA 39H;TEMP_S DATA 40H;SET_TEMPERATURE DATA 41H;温度的设定值DS_TEMPERATURE DATA 42H;转换后的温度值UK DATA 43H;U(K)UK1 DATA 45H;U(K-1)DEL_U DATA 46H;UERR0 DATA 47H;E(K)ERR1 DATA 48H;E(K-1)ERR2 DATA 49H;E(K-2)KP DATA 50H;KI DATA 51H;KD DATA 52H;Q0 DATA

51、 53H;Q1 DATA 54H;Q2 DATA 55H;COUNT DATA 56H;HIGH_LEVEL_ALARM EQU P2.2;超高报警水位标志位HIGH_LEVEL EQU P2.3;高水位标志位LOW_LEVEL EQU P2.4;低水位标志位LOW_LEVEL_ALARM EQU P2.5;超低报警水位标志位SHUIWEI_CONTROL EQU P2.0;水位控制输出POWER EQU P2.7;主电路的通断开关ALARM EQU P1.0;蜂鸣器报警输出LED_GREEN EQU P1.1;绿灯输出LED_RED EQU P1.2;红灯输出P_DS18B20 EQU P3

52、.7; 读取 DS18B20 的输入端口FLAG EQU 20H.0 ;标志位,确定是否存在 DS18B20ENTER_FLAG EQU 20H.1 ;键盘输入的标志位,为 0 说明键盘正在输入,为 1 说明键盘输入退出SIGN EQU 21H.7;符号位,用于判断正负ORG 0000H;LJMP MAIN;ORG 1000H; MAIN:;主程序开始MOV SP,#60H;初始化堆栈MOV KEY_BUF_G,#00H ;由于 KEY_BUF 是由用户输入的,所以先赋值初始化MOV KEY_BUF_S,#00HMOV KEY_BUF_B,#00HMOV UK,#00H; PID 中一些数值初

53、始化MOV UK1,#00H;MOV ERR0,#00H;MOV ERR1,#00H;MOV ERR2,#00H;MOV KP,#03H;MOV KI,#01H;MOV KD,#01H;MOV TMOD,#11H;定时器 0、1 都为 16 位定时器MOV TH0,#3CH;定时器 0 的定时时间为 0.05S,所以算出定时初值为 3CB0HMOV TL0,#0B0H;SETB EA;开中断SETB EX0;开外部中断,键盘使用CLR IT0;外部中断为低电平触发SETB ET0;开 T0 中断SETB ET1;开 T1 中断SETB TR0;T0 开始运行MOV 58H,#50H;采样周期

54、4SSHUIWEI:JNB P2.3,L1;水位过高,跳转SETB P1.0;SETB P1.2;JNB P2.2,L2;高水位,跳转JNB P2.5L3;水位过低,跳转SETB P1.0;SETB P1.1;JNB P2.4L4;低水位,跳转SJMP SHUIWEI;L1:LCALL SOUND;CLR P1.2;红灯亮,告知为过高水位报警L2:SETB P2.0;电磁阀关断,停止加水SJMP SHUIWEI;L3:LCALL SOUND;CLR P1.1;绿灯亮,告知为过低水位报警L4:CLR P2.0;电磁阀开通,加水SJMP SHUIWEI;键盘中断子程序KEY_SCAN:PUSH P

55、SW;保护现场LCALL K_DELAY;软件去抖JB P3.2,EXIT;JB ,EXIT ;如果有 Enter 键入,则开始键盘输入JB P1.7,EXIT;CLR ENTER_FLAG ;每次进来都赋值输入标志,设置为 0MOV KEY_BUF_G,DIS_BUF_G ;将当前的温度赋值给 KEY_BUF,也就是说是以当前温度为基准,进行加减的MOV KEY_BUF_S,DIS_BUF_SMOV KEY_BUF_B,DIS_BUF_BJB ENTER_FLAG,EXIT ;如果输入完成,ENTER_FLAG 则为 1,退出键盘程序CLR P1.4;JNB P1.6,KEY_UP;JNB

56、P1.7,KEY_DOWN;CLR P1.5;JNB P1.6,KEY_SHUTDOWN;JNB P1.7,KEY_ENTER;LCALL DISPLAY;EXIT:POP PSW;RETI;T0 中断子程序INT0:PUSH PSW;MOV TH0,#3CH;赋 T0 初值MOV TL0,#0B0H;DJNZ 58H,BACK;MOV 58H,#50H;NEXT:LCALL READ_TEMP ;调用读温度子程序JB FLAG,NORMAL ;判断是否有 DS18B20 的存在CALL ERR ;不存在时显示错误信息AJMP NEXT;NORMAL: LCALL DATA_DEA ;处理从

57、DS18B20 得到的数据LCALL SET_DIS_BUF ;赋值给 DIS_BUF_X,G,S,BLCALL DISPLAY ;调用数码管显示子程序MOV A,TEMPERATURE_ZH;ANL A,#0F0H;SWAP A;MOV TEMP_S,A;MOV A,TEMPERATURE_ZH;ANL A,#0FH;MOV TEMP_G,A;LACLL EXCHANGE;MOV DS_TEMPERATURE,A;MOV TEMP_S,KEY_BUF_S;MOV TEMP_G,KEY_BUF_G;LCALL EXCHANGE;MOV SET_TEMPERATURE,A;LCALL PID;M

58、OV A,UK;LCALL UK_TO_T1;将 UK 转换为 T1 的计时初值MOV TH1,R1;赋 T1 初值MOV TL1,R0;MOV 57H,#32H;SETB TR1;POP PSW;BACK:RETI;T1 中断子程序,用于控制输出INT1:PUSH PSW; MOV TH1,R1;MOV TL1,R0;DJNZ 57H,BACK1;MOV 57H,#32H;CPL P2.7;POP PSW;BACK1:RETI;数值增加功能KEY_UP:INC KEY_BUF_G ;个位增一MOV A,KEY_BUF_G ;CJNE A,#0AH,UPNEXT;个位增加到 10,回 0MOV

59、 KEY_BUF_G,#00HINC KEY_BUF_S ;十位加一MOV A,KEY_BUF_S;CJNE A,#0AH,UPNEXT;十位超过 99,溢出了MOV R0,#200;ERROR1:LCALL ERR;DJNZ R0,ERROR1;DEC KEY_BUF_S ;退回 99MOV KEY_BUF_G,#09H;UPNEXT :MOV DIS_BUF_G,KEY_BUF_G; 增加完成后,赋值退出,然后显示出来MOV DIS_BUF_S,KEY_BUF_S;MOV DIS_BUF_B,KEY_BUF_B;CALL K_DELAY;RET;数值减少功能KEY_DOWN:DEC KEY

60、_BUF_G ;个位减一MOV A,KEY_BUF_G;CJNE A,#0FFH,DOWNNEXT;个位减到 0,回到 9MOV KEY_BUF_G,#09H;DEC KEY_BUF_S ;十位减一MOV A,KEY_BUF_S;CJNE A,#0FFH,DOWNNEXT;十位低于 0,溢出了MOV R0,#200;ERROR2:LCALL ERR;DJNZ R0,ERROR2;INC KEY_BUF_S ;退回 00MOV KEY_BUF_G,#00H;DOWNNEXT: MOV DIS_BUF_G,KEY_BUF_G ;减少完成后,赋值退出,然后显示出来MOV DIS_BUF_S,KEY_

温馨提示

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

评论

0/150

提交评论