




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、9.2 应用系统设计实例单片机温度控制系统 9.2.1 技术指标 烘干箱的具体指标如下: (1) 烘干箱由2 kW电炉加热,最高温度为500。 (2) 烘干箱温度可预置,烘干过程恒温控制,温度控制误差2。 (3) 预置时显示设定温度,烘干时显示实时温度,显示精确到1。 (4) 温度超出预置温度5时发声报警。 (5) 对升降温过程的线性没有要求。 9.2.2 控制方案 产品的工艺不同,控制温度的精度也不同,因而所采用的控制算法也不同。就温度控制系统的动态特性来讲,基本上都是具有纯滞后的一阶环节,当系统精度及温控的线性性能要求较高时,多采用PID算法或达林顿算法来实现温度控制。 本系统是一个典型的
2、闭环控制系统。从技术指标可以看出,系统对控制精度的要求不高,对升降温过程的线性也没有要求,因此,系统采用最简单的通断控制方式,即当烘干箱温度达到设定值时断开加热电炉,当温度降到低于某值时接通电炉开始加热,从而保持恒温控制。 9.2.3 硬件设计 系统的硬件电路包括主机、温度检测、温度控制、人机对话(键盘/显示/报警)4个主要部分。图9.10为系统的结构框图,图9.11为系统的硬件电路原理图。 下面对各部分电路分述如下。 1) 主机 由于系统控制方案简单,数据量也不大,因此选用8031作为控制系统的核心,外扩EPROM2764作为程序存储器。也可视具体情况换用8051、8052、8751、875
3、2、80C51、89C51、89C52等。其中,8051、8052、8751、8752的各个引脚输入/输出电平只与TTL电平兼容;89C51、89C52、80C51各引脚输入/输出电平既与TTL电平兼容,也与CMOS电平兼容。图9.10 电烤箱控制系统结构框 8031的晶振频率为6 MHz。 2) 温度检测 这部分包括温度传感器、变送器和A/D转换三部分。 温度传感器和变送器的类型选择与被控温度的范围及精度等级有关。型号为WZB003,分度号为BA2的铂热电阻适用于0500的温度测量范围,可以满足本系统的要求。 变送器将电阻信号转换成与温度成正比的电压,当温度在0500时变送器输出04.9 V
4、左右的电压。 A/D转换器件的选择主要取决于温度的控制精度。本系统要求温度控制误差2,采用8位A/D转换器,其最大量化误差为=,完全能够满足精度要求。这里我们采用ADC0809作为A/D转换器。电路设计好后,调整变送器的输出,使 0500的温度变化对应于04.9 V的输出,则A/D转换对应的数字量为00HFAH,即0250,则转换结果乘以2正好是温度值。用这种方法一方面可以减少标度转换的工作量,另一方面还可以避免标度转换带来的计算误差。 为使系统简单紧凑,键盘只设置4个功能键,分别是启动、“百位+”、“十位+”和“个位+”键,由P1口低4位作为键盘接口。利用+1按键可以分别对预置温度的百位、十
5、位和个位进行加1设置,并在LED上显示当前设置值。连续按动相应位的加1键即可实现0500的温度设置。 报警功能由蜂鸣器实现。当由于意外因素导致烤箱温度高于设置温度时,P1.6口送出的低电平经反向器驱动蜂鸣器鸣叫报警。 5) 其它可扩展电路 对于要求更高的系统,在现有电路的基础上,读者还可以视需要自行扩展以下接口电路: (1) 实时时钟电路:连接实时时钟芯片DS12887可以获得长的采样周期,显示年、月、日、时、分、秒,而其片内带有的114 B非易失性RAM,可用来存入需长期保存但有时也需变更的数据。如采样周期、PID控制算法的系数KP、KI、KD等。 (2) “看门狗”电路:连接集成监控芯片M
6、AX705可实现对主电源VCC的监控,提高系统的可靠性。 由于本书附带的实验板已将P1口用排针引出,因此,读者可以方便地用实验板来实现上述系统。可在P1.6口外接蜂鸣器电路,在P1.7口外接电炉驱动控制电路,P1.0P1.3口外接4个功能按键(启动、+100、+10、+1)。 9.2.4 软件设计 1. 工作流程 烤箱在上电复位后先处于停止加热状态,这时可以用“+1”键设定预置温度,显示器显示预定温度;温度设定好后就可以按启动键启动系统工作了。温度检测系统不断定时检测当前温度,并送往显示器显示,达到预定值后停止加热并显示当前温度;当温度下降到下限(比预定值低2)时再启动加热。这样不断重复上述过
7、程,使温度保持在预定温度范围之内。启动后不能再修改预置温度,必须按复位/停止键回到停止加热状态再重新设定预置温度。 2. 功能模块 根据上面对工作流程的分析,系统软件可以分为以下几个功能模块: (1) 键盘管理:监测键盘输入,接收温度预置,启动系统工作。 (2) 显示:显示设置温度及当前温度。 (3) 温度检测及温度值变换:完成A/D转换及数字滤波。 (4) 温度控制:根据检测到的温度控制电炉工作。 (5) 报警:当预置温度或当前炉温越限时报警。 3. 资源分配 为了便于阅读程序,首先给出单片机资源分配情况。数据存储器的分配与定义见表9.2。表9.2 温度控制软件数据存储器分配表地址功能名称初
8、始化值50H51H当前检测温度,高位在前TEMP1TEMP000H52H53H预置温度,高位在前ST1ST000H54H56HBCD码显示缓冲区,百位、十位、个位T100,T10,T00H57H58H二进制显示缓冲区,高位在前BT1,BT000H59H7FH堆栈区PSW.5报警允许标志F0=0时禁止报警;F0=1时允许报警F00 程序存储器:EPROM2764的地址范围为0000H1FFFH I/O口:P1.0P1.3键盘输入;P1.6、P1.7报警控制和电炉控制。 A/D转换器0809:通道0通道7的地址为7FF8H7FFFH,使用通道0。 4. 功能软件设计 1) 键盘管理模块 上电或复位
9、后系统处于键盘管理状态,其功能是监测键盘输入,接收温度预置和启动键。程序设有预置温度合法检测报警,当预置温度超过500时会报警并将温度设定在500。键盘管理子程序流程图如图9.12所示。 键盘管理子程序KIN: KIN:ACAL CHK ;预置温度合法性检测 MOV BT1,ST1 MOVBT0,ST0 ;预置温度送显示缓冲区 LCALLDISP ;显示预置温度KIN0: ACALLKEY ;读键值 JZKIN0 ;无键闭合和重新检测 ACALL DISP ACALLDISP ;二次调用显示子程序延时去抖 ACALLKEY;再检测有无键按下 JZKIN0;无键按下重新检测 JBACC.1,S1
10、0 MOVA,#100;百位键按下 AJMP SUMS10:JB ACC.2,S1 MOVA,#10;十位键按下 AJMPSUM S0: JNB ACC.0,KIN;无键按下重新扫描键盘 RET;启动键按下返回 KEY: MOVA,P1;读键值子程序 CPLA ANLA,#0FH RET 预置温度合法性检测子程序CHK(用双字节减法比较预置温度是否大于500(01F4H): CHK:MOVA,#0F4H;预置温度上限低8位送ACLRCSUBBA,ST0;低8位减,借位送CYMOVA,#01H;预置温度上限高8位送ASUBBA,ST1;高8位带借位减JC OUTA ;预置温度越界,转报警MOVA
11、,#00H;预置温度合法标志RET OUTA:MOVST1,#01H;将500写入预置温度数据区MOVST0,#0F4HCLRP1.6;发报警信号0.6 sACALLD0.6s SETBP1.6;停止报警RET 2) 显示模块 显示子程序的功能是将显示缓冲区57H和58H的二进制数据先转换成三个BCD码,分别存入百位、十位和个位显示缓冲区(54H、55H和56H单元),然后通过串口送出显示。显示子程序DISP: DISP:ACALL HTB ;将显示数据转换为BCD码 MOV SCON,#00H ;置串行口为方式0 MOV R2,#03H ;显示位数送R2 MOV R0,#T100 ;显示缓冲
12、区首地址送R0 LD: MOV DPTR,#TAB ;指向字型码表首地址 MOV A,R0 ;取显示数据 MOVC A,A+DPTR;查表 MOVSBUF,A;字型码送串行口WAIT:JBC TI,NEXT;发送结束转下一个数据并清中断标志 SJMP WAIT;发送未完等待NEXT: INCR0 ;修改显示缓冲区指针 DJNZR2,LD;判3位显示完否,未完继续RET TAB:;字型码表(略) BCD码转换子程序HTB: HTB:MOVA,BT0;取二进制显示数据低8位MOVB,#100 ;除100,确定百位数DIVABMOVT100,A;百位数送54H单元MOVA,#10;除10,确定十位
13、ADDA,T DAA;个位加6(十进制加) MOVT,A;结果送回个位 MOVA,#05H ADDCA,T10 DAA;十位加5(十进制加) MOVT10,A;结果送回十位 MOVA,#02H ADDCA,T100 DA A ;百位加2(十进制加) MOVT100,A;结果送回百位RET图9.13 温度检测子程序流程图 温度检测子程序TIN:TIN: MOV TEMP1,#00H ;清检测温度缓冲区 MOV TEMP0,#00H MOV R2,#04H ;取样次数送R2 MOV DPTR,#7FF8H ;指向A/D转换器0通道 LTIN1: MOVX DPTR,A ;启动转换HERE:JNB
14、IE1,HERE ;等待转换结束 MOVX A,DPTR ;读转换结果 ADDA,TEMP0;累加(双字节加法)MOVTEMP0,AMOVA,#00HADDCA,TEMP1MOVTEMP1,ADJNZR2,LTIN1;4次采样完否,未完继续CLR C ;累加结果除2(双字节除法)MOVA,TEMP1 RRCAMOVTEMP1,AMOVA,TEMP0 RRCAMOVTEMP0,ARET 4) 温度控制模块 将当前温度与预置温度比较,当前温度小于预置温度时,继电器闭合,接通电阻丝加热;当前温度大于预置温度时,继电器断开,停止加热;当二者相等时电炉保持原来状态;当前温度降低到比预置温度低2时,再重新
15、启动加热;当前温度超出报警上下限时将启动报警,并停止加热。由于电炉开始加热时,当前温度可能低于报警下限,为了防止误报,在未达到预置温度时,不允许报警,为此设置了报警允许标志F0。模块流程见图9.14。图9.14 温度控制流程图 温度控制子程序CONT: CONT:MOVA,TEMP0;当前温度-预置温度(双字节减)CLRCSUBBA,ST0MOVB,A;低8位相减的差值暂存BMOVA,TEMP1SUBBA,ST1 JNCLOFF ;无借位,表示当前温度预置温度,转LOFF JNBF0,LON ;当前温度预置温度,判是否达到过预置温度 MOVA,B ;若达到过预置温度,判二者差值是否大于2 CL
16、RC SUBBA,#02H JNC ACC.7,LOFF ;差值不大于2,转LOFFLON:CLR P1.7 ;开电炉 SJMPEXIT ;返回LOFF:SETBF0;设置允许报警标志SETBP1.7;关电炉EXIT:RET 在此,读者也可自行加入PID算法程序来实现PID控制。 5) 温度越限报警模块 报警上限温度值为预置温度+5,即当前温度上升到高于预置温度+5时报警,并停止加热;报警下限温度值为预置温度-5,即在当前温度下降到低于预置温度-5,且报警允许时报警,这是为了防止开始从较低温度加温时误报警。报警的同时也关闭电炉。图9.15为报警子程序流程图。图9.15 报警子程序流程图 报警子
17、程序ALARMALARM:MOVA,TEMP0;当前温度低字节ACLRCSUBBA,ST0;(当前温度低字节-预置温度低字节)AMOVB,A ;低字节相减结果送B暂存MOVA,TEMP1 ;当前温度高字节ASUBBA,ST1 ;(当前温度高字节-预置温度高字节)A JC LA0 ;有借位,当前温度小于预置温度转LA0 SETB F0 ;当前温度预置温度,允许报警 AJMP LA1LA0: MOV A,ST0 ;预置温度低字节A CLR CSUBB A,TEMP0;(预置温度低字节-当前温度低字节)A MOV B,A ;低字节相减结果送B暂存 MOV A,ST1 ;预置温度高字节A SUBB A
18、,TEMP1;(预置温度高字节-当前温度高字节)A LA1:XCH A,B ;高低字节互换,判断相减结果是否大于5 CLRC SUBBA,#05H;(低字节差-5)A XCHA,B;(低字节差-5)B,高字节差A SUBBA,#00H;(高字节差-0)A(因为5的高字节为0) JCLA2;相减结果小于5,不报警返回 JNBF0,LA2;相减结果5,判是否允许报警,不允许则返回 CLRP1.6;启动报警SETBP1.7;关电炉LCALLD0.6s;报警延时0.6 sSETBP1.6;关报警LA2:RETD0.6s:(略);延时0.6 s子程序 6) 主程序和中断服务子程序 主程序采用中断嵌套方式设计,各功能模块可直接调用。主程序完成系统的初始化,温度预置及其合法性检测,预置温度的显示及定时器0设置。定时器0中断服务子程序是温度控制体系的主体,用于温度检测、控制和报警(包括启动A/D转换、读入采样数据、数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高三班会演讲稿
- 4 公民的基本权利和义务(教学设计)2023-2024学年统编版道德与法治六年级上册
- logo购买合同范本
- 100以内的加法和减法(二)-不退位减(教学设计)-2024-2025学年二年级上册数学人教版
- 食品运送合同范本
- 12急行跳远教学设计8-八年级体育与健康
- Module 3 Unit1 Point to the door(教学设计)2024-2025学年外研版(三起)英语三年级上册
- 研学活动合同范本
- 2024-2025学年九年级上学期牛津译林版英语Unit 5 Reading 教学设计
- 2023初一暑假前教育家长会演讲稿
- 集成电路研究报告-集成电路项目可行性研究报告2024年
- 2024年湖南生物机电职业技术学院高职单招职业技能测验历年参考题库(频考版)含答案解析
- 桩基承载力自平衡法检测方案资料
- 2025云南昆明空港投资开发集团招聘7人高频重点提升(共500题)附带答案详解
- 简单的路线图(说课稿)2024-2025学年三年级上册数学西师大版
- 成都市2024-2025学年度上期期末高一期末语文试卷(含答案)
- 2025年教育局财务工作计划
- 中小学智慧校园建设方案
- 危险性较大的分部分项工程清单安全管理措施
- 高压输电线路质量、检查、验收培训课件
- 混合型颈椎病课件
评论
0/150
提交评论