《自动控制恒温箱》毕业设计.doc_第1页
《自动控制恒温箱》毕业设计.doc_第2页
《自动控制恒温箱》毕业设计.doc_第3页
《自动控制恒温箱》毕业设计.doc_第4页
《自动控制恒温箱》毕业设计.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

目 录摘要11 引言 12 恒温箱的方案确定23 恒温箱硬件系统设计2 3.1主机23.2 温度检测33.3 温度控制33.5 其他可扩展电路34 恒温箱的软件设计44.1 软件流程总框图44.1.1 工作流程44.1.2 功能模块54.1.3 资源分配54.2 键盘管理模块 54.3 显示模块84.4 温度检测模块94.5 温度控制模块114.6 温度越线报警模块124.7 主程序和中断服务子程序135 调试155.1 硬件调试155.2 软件调试156 抗干扰技术166.1 硬件抗干扰技术166.2 软件抗干扰技术167 总结16致谢18参考文献19自动控制恒温箱凌金 (信息电子技术04职信电 指导教师:屠志恋)【摘 要】在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。其中,温度控制也越来越重要。在工业生产的很多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用单片机对温度进行控制不仅具有控制方便、简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业生产中经常会遇到的控制问题。单片机是一种集CPU、RAM、ROM、I/O接口和中断系统等部分于一体的器件,只需要外加电源和晶振就可实现对数字信息的处理和控制。因此,单片机广泛用于现代工业控制中。本论文侧重介绍“单片机温度控制系统”的软件设计及相关内容。论文的主要内容包括:采样、滤波、键盘、LED显示和报警系统,加热控制系统,单片机MCS-51的开发以及系统应用软件开发等。作为控制系统中的一个典型实验设计,单片机温度控制系统综合运用了微机原理、自动控制原理、模拟电子技术、数字控制技术、键盘显示技术等诸多方面的知识,是对所学知识的一次综合测试。【关键词】:MCS-51 8051 温度控制 PID1 引言随着现代控制技术的发展,在工业控制领域需要对现场数据进行实时采集,在一些重要场合对数据采集的要求更高,例如在电厂、钢铁厂、化工领域的生产中都需要对大量数据进行现场采集,而温度采集又是其中极为重要的部分,因此,需要一种高精度、低成本的数据采集与控制系统。为了方便地实现温度采集与控制系统,我们采用以8051为内核的数据采集系统该恒温箱主要用于电子设备的高温实验。通过小键盘设定实验温度和时间,达到定时后并能发出警告,箱体打开后启动风扇散热,为了使温度控制更加准确,在箱体内采用多点测温,同时为了保证电子设备的均匀受热,设计中采用步进电机带动托盘使待测物在箱内转动,并在定时结束时停止转动。在恒温箱工业时,箱内温度通过数码管显示。定时剩余时间也通过数码管显示。本单片机温度控制系统,是利用单片机作为系统的主控制器,测量电路中的温度反馈信号经A/D变换后,送入单片机中进行处理,经过一定的算法后,单片机的输出用来控制可控硅的通断,控制加热炉的输出功率,从而实现对温度的控制。本单片机温度控制系统的具体指标要求是,对加热器加热温度调整范围为0500,温度控制误差小于-2+2,系统的超调量须小于15%。软件设计须能进行人机对话,考虑到本系统控制对象为电炉,是一个大延迟环节,且温度调节范围较宽,所以本系统对过渡过程时间不予要求。本论文主要介绍单片机温度控制系统,内容主要包括:采样、滤波、键盘显示、加热控制系统,单片机MCS-51的开发及系统应用软件的开发等。2恒温箱的方案确定根据系统具体指标要求,可以对每一个具体部分进行分析设计。整个控制系统分为硬件电路设计和软件程序设计两部分。硬件电路见附录。分析硬件电路主要包括:加热及控制电路部分,数据采集和模/数(A/D)转换处理部分,键盘和显示器部分,单片机与各部分的接口处理部分。这些可用一个方框图来表示,如图1所示。图1电烤箱控制系统结构框3 恒温箱硬件系统设计3.1主机由于系统控制方案简单,数据量也不大,因此选用8031作为控制系统的核心,外扩EPROM2764作为程序存储器。也可视具体情况换用8051、8052、8751、8752、80C51、89C51、89C52等。其中,8051、8052、8751、8752的各个引脚输入/输出电平只与TTL电平兼容;89C51、89C52、80C51各引脚输入/输出电平既与TTL电平兼容,也与CMOS电平兼容。3.2 温度检测这部分包括温度传感器、变送器和A/D转换三部分。温度传感器和变送器的类型选择与被控温度的范围及精度等级有关。型号为WZB003,分度号为BA2的铂热电阻适用于0500的温度测量范围,可以满足本系统的要求。变送器将电阻信号转换成与温度成正比的电压,当温度在0500时变送器输出04.9 V左右的电压。A/D转换器件的选择主要取决于温度的控制精度。3.3温度控制电炉控制采用可控硅来实现,双向可控硅和电炉电阻丝串接在交流220 V市电回路中。单片机的P1.7口通过光电隔离器和驱动电路送到可控硅的控制端,由P1.7口的高低电平来控制可控硅的导通与断开,从而控制电阻丝的通电加热时间。3.4人机对话这部分包括键盘、显示和报警三部分电路。本系统设有3位LED数码显示器,停止加热时显示设定温度,启动加热时显示当前烤箱温度。采用串行口扩展的静态显示电路作为显示接口电路。为使系统简单紧凑,键盘只设置4个功能键,分别是启动、“百位+”、“十位+”和“个位+”键,由P1口低4位作为键盘接口。利用+1按键可以分别对预置温度的百位、十位和个位进行加1设置,并在LED上显示当前设置值。连续按动相应位的加1键即可实现0500的温度设置。报警功能由蜂鸣器实现。当由于意外因素导致烤箱温度高于设置温度时,P1.6口送出的低电平经反向器驱动蜂鸣器鸣叫报警。3.5 其他可扩展电路实时时钟电路: 连接实时时钟芯片DS12887可以获得长的采样周期,显示年、月、日、时、分、秒,而其片内带有的114 B非易失性RAM,可用来存入需长期保存但有时也需变更的数据。如采样周期、PID控制算法的系数KP、KI、KD等。 “看门狗”电路: 连接集成监控芯片MAX705可实现对主电源VCC的监控,提高系统的可靠性。4 恒温箱的软件设计4.1软件流程总框图完整的系统不光要有硬件部分,软件部分也是不可或缺的。甚至与比硬件部分更能影响系统的性能。软件部分主要是完成对系统硬件实施情况的管理以及功能实现。为使系统容易维护,扩充,软件系统设计采用模块化设计。主程序采用中断嵌套方式设计,各功能模块可直接调用。图2软件总体流程图4.1.1 工作流程烤箱在上电复位后先处于停止加热状态,这时可以用“+1”键设定预置温度,显示器显示预定温度;温度设定好后就可以按启动键启动系统工作了。温度检测系统不断定时检测当前温度,并送往显示器显示,达到预定值后停止加热并显示当前温度;当温度下降到下限(比预定值低2)时再启动加热。这样不断重复上述过程,使温度保持在预定温度范围之内。启动后不能再修改预置温度,必须按复位/停止键回到停止加热状态再重新设定预置温度。4.1.2 功能模块根据上面对工作流程的分析,系统软件可以分为以下几个功能模块: (1) 键盘管理:监测键盘输入,接收温度预置,启动系统工作。 (2) 显示:显示设置温度及当前温度。 (3) 温度检测及温度值变换:完成A/D转换及数字滤波。 (4) 温度控制:根据检测到的温度控制电炉工作。 (5) 报警:当预置温度或当前炉温越限时报警。4.1.3 资源分配首先给出单片机资源分配情况。数据存储器的分配与定义见下表:地址功能名称初始化值50H51H当前检测温度,高位在前TEMP1TEMP000H52H53H预置温度,高位在前ST1ST000H54H56HBCD码显示缓冲区,百位、十位、个位T100,T10,T00H57H58H二进制显示缓冲区,高位在前BT1,BT000H59H7FH堆栈区PSW.5报警允许标志F0=0时禁止报警;F0=1时允许报警F00程序存储器:EPROM2764的地址范围为0000H1FFFHI/O口:P1.0P1.3键盘输入;P1.6、P1.7报警控制和电炉控制。A/D转换器0809:通道0通道7的地址为7FF8H7FFFH,使用通道0。4.2 键盘管理模块上电或复位后系统处于键盘管理状态,其功能是监测键盘输入,接收温度预置和启动键。程序设有预置温度合法检测报警,当预置温度超过500时会报警并将温度设定在500。键盘管理子程序流程图如图3所示。图3键盘管理子程序流程图键盘管理子程序KIN: KIN:ACAL CHK ;预置温度合法性检测 MOV BT1,ST1 MOVBT0,ST0 ;预置温度送显示缓冲区 LCALLDISP ;显示预置温度 KIN0: ACALLKEY ;读键值 JZKIN0 ;无键闭合和重新检测 ACALL DISPACALLDISP ;二次调用显示子程序延时去抖 ACALLKEY;再检测有无键按下 JZKIN0;无键按下重新检测 JBACC.1,S10 MOVA,#100;百位键按下 AJMP SUM S10:JB ACC.2,S1 MOVA,#10;十位键按下 AJMPSUM S1:JBACC.3,S0 MOVA,#01;个位键按下 SUM:ADDA,ST0;预置温度按键+1 MOVST0,A MOVA,#00H ADDCA,ST1 MOVST1,A KIN1: ACALL KEY;判断闭合键释放 JNZKIN1;未释放继续判断 AJMPKIN;闭合键释放继续扫描键盘S0: JNB ACC.0,KIN;无键按下重新扫描键盘 RET;启动键按下返回 KEY: MOVA,P1;读键值子程序 CPL A ANLA,#0FH RET预置温度合法性检测子程序CHK(用双字节减法比较预置温度是否大于500(01F4H): CHK:MOVA,#0F4H;预置温度上限低8位送A CLR CSUBBA,ST0;低8位减,借位送CYMOVA,#01H;预置温度上限高8位送ASUBBA,ST1;高8位带借位减JC OUTA ;预置温度越界,转报警MOVA,#00H;预置温度合法标志RET OUTA:MOVST1,#01H;将500写入预置温度数据区 MOVST0,#0F4H CLRP1.6;发报警信号0.6 s ACALLD0.6s SETBP1.6;停止报警 RET4.3 显示模块显示子程序的功能是将显示缓冲区57H和58H的二进制数据先转换成三个BCD码,分别存入百位、十位和个位显示缓冲区(54H、55H和56H单元),然后通过串口送出显示。显示子程序DISP1: DISP:ACALL HTB ;将显示数据转换为BCD码 MOV SCON,#00H ; 置串行口为方式0 MOV R2,#03H ;显示位数送R2 MOV R0,#T100 ; 显示缓冲区首地址送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,确定百位数 DIVAB MOVT100,A;百位数送54H单元 MOVA,#10; 除10,确定十位 XCH A,B DIV A,B MOV T10,A ;十位数送55H单元 MOVT,B ;个位数送56H单元 MOVA,BT1 ;取二进制显示数据高8位 JNZ LH1 ;高位不为0转LH1继续高8位转换 RET ;高位为0结束,返回 LH1:MOVA,#06H ;高位不为0,低位转换结果加256(因为温度数据不会;大于500,所以高8位最多为01H,即256)ADDA,TDAA;个位加6(十进制加)MOVT,A;结果送回个位MOVA,#05HADDCA,T10DAA;十位加5(十进制加)MOVT10,A;结果送回十位MOVA,#02HADDCA,T100DA A ;百位加2(十进制加)MOVT100,A;结果送回百位RET4.4 温度检测模块A/D转换采用查询方式。为提高数据采样的可靠性,对采样温度进行数字滤波。数字滤波的算法很多,这里采用4次采样取平均值的方法。如前所述,本系统A/D转换结果乘2正好是温度值,因此,4次采样的数字量之和除以2就是检测的当前温度。检测结果高位存入50H,低位存入51H。温度检测子程序流程图如图4所示2。图4 温度检测子程序流程图温度检测子程序TIN: TIN: MOV TEMP1,#00H ;清检测温度缓冲区 MOV TEMP0,#00HMOV R2,#04H ;取样次数送R2MOV DPTR,#7FF8H ;指向A/D转换器0通道 LTIN1: MOVX DPTR,A ;启动转换HERE:JNB IE1,HERE ;等待转换结束MOVX A,DPTR ;读转换结果ADDA,TEMP0;累加(双字节加法)MOVTEMP0,AMOVA,#00HADDCA,TEMP1MOVTEMP1,ADJNZR2,LTIN1;4次采样完否,未完继续CLR C ;累加结果除2(双字节除法)MOVA,TEMP1RRCAMOVTEMP1,AMOVA,TEMP0RRCAMOVTEMP0,ARET4.5温度控制模块将当前温度与预置温度比较,当前温度小于预置温度时,继电器闭合,接通电阻丝加热;当前温度大于预置温度时,继电器断开,停止加热;当二者相等时电炉保持原来状态;当前温度降低到比预置温度低2时,再重新启动加热;当前温度超出报警上下限时将启动报警,并停止加热。由于电炉开始加热时,当前温度可能低于报警下限,为了防止误报,在未达到预置温度时,不允许报警,为此设置了报警允许标志F0。模块流程见图5所示3。图5温度控制流程图温度控制子程序CONT: CONT:MOVA,TEMP0;当前温度-预置温度(双字节减)CLRCSUBBA,ST0MOVB,A;低8位相减的差值暂存BMOV A,TEMP1SUBBA,ST1JNCLOFF ;无借位,表示当前温度预置温度,转LOFFJNBF0,LON ;当前温度预置温度,判是否达到过预置温度MOVA,B ;若达到过预置温度,判二者差值是否大于2CLRCSUBBA,#02HJNC ACC.7,LOFF ;差值不大于2,转LOFF LON:CLR P1.7 ;开电炉SJMPEXIT ;返回 LOFF:SETBF0;设置允许报警标志 SETBP1.7;关电炉 EXIT:RET4.6 温度越线报警模块报警上限温度值为预置温度+5,即当前温度上升到高于预置温度+5时报警,并停止加热;报警下限温度值为预置温度-5,即在当前温度下降到低于预置温度-5,且报警允许时报警,这是为了防止开始从较低温度加温时误报警。报警的同时也关闭电炉。图6为报警子程序流程图4。图6 报警子程序流程图报警子程序ALARM ALARM:MOVA,TEMP0;当前温度低字节A CLRC SUBBA,ST0;(当前温度低字节-预置温度低字节)A MOVB,A ;低字节相减结果送B暂存MOVA,TEMP1 ;当前温度高字节ASUBBA,ST1 ;(当前温度高字节-预置温度高字节)AJC LA0 ;有借位,当前温度小于预置温度转LA0SETB F0 ;当前温度预置温度,允许报警AJMP LA1LA0: MOV A,ST0 ;预置温度低字节ACLR CSUBB A,TEMP0;(预置温度低字节-当前温度低字节)AMOV B,A ;低字节相减结果送B暂存MOV A,ST1 ;预置温度高字节ASUBB A,TEMP1;(预置温度高字节-当前温度高字节)ALA1:XCH A,B ;高低字节互换,判断相减结果是否大于5CLRCSUBBA,#05H;(低字节差-5)AXCHA,B;(低字节差-5)B,高字节差ASUBBA,#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子程序4.7 主程序和中断服务子程序主程序采用中断嵌套方式设计,各功能模块可直接调用。主程序完成系统的初始化,温度预置及其合法性检测,预置温度的显示及定时器0设置。定时器0中断服务子程序是温度控制体系的主体,用于温度检测、控制和报警(包括启动A/D转换、读入采样数据、数字滤波、越限温度报警和越限处理、输出可控硅的控制脉冲等)。中断由定时器0产生,根据需要每隔15 s中断一次,即每15 s采样控制一次。但系统采用6 MHz晶振,最大定时为130 ms,为实现15 s定时,这里另行设了一个软件计数器。主程序MAIN :(数据缓冲区的定义和初始化部分从略)ORG0000HAJMPMAINORG000BHAJMPPT0ORG0030HMAIN: MOVSP,#59H;设定堆栈指针MOV TMOD,#01H;定时器0初始化MOVTL0,#0B0H ;定时器定时时间100 msMOVTH0,#3CHMOVR7,#150;置15 s软计数器初值ACALLKIN;调键盘管理子程序SETBET0;允许定时器0中断SETBEA;开中断SETBTR0;启动定时器0SJMP$定时器0中断服务子程序PT0:PT0:MOVTL0,#0B0H MOVTH0,#3CH ;重置定时器0初值DJNZR7,BACK ;15 s到否,不到返回MOV R7,#150 ;重置软计数器初值 ACALLTIN ;温度检测MOVBT1,TEMP1 ;当前温度送显示缓冲区MOVBT0,TEMP0ACALL DISP ;显示当前温度ACALL CONT ;温度控制LCALL ALARM ;温度越限报警BACK:RETI5调试5.1 硬件调试根据设计的原理电路做好实验样机,便进入硬件调试阶段。调试工作的主要任务是排除样机故障,其中包括设计错误和工艺性故障。1 .脱机检查:用万能表或逻辑测试笔逐步按照逻辑图检查机中各器件的电源及各引脚的连接是否正确,检查数据总线、地址总线和控制总线是否有短路等故障。有时为保护芯片,先对各管座的电位(或电源)进行检查,确定其无误后再插入芯片检查。 2 .仿真调试:暂时排除目标板的CPU和EPROM,将样机接上仿真机的40芯仿真插头进行调试,调试各部分接口电路是否满足设计要求。这部分工作是一种经验性很强的工作,一般来说,设计制作的样机不可能一次性完好,总是需要调试的。通常的方法是,先编调试软件,逐一检查调试硬件电路系统设计的准确性。其次是调试MONITOR程序,只有MONITOER程序正常工作才可以进行下面的应用软件调试。3 .检查CPU的时钟电路。通过测试ALE信号,如没有ALE信号,则判断是晶体或CPU故障,这称之为“心脏”检查。 检查ABUS/DBUS的分时复用功能的地址锁存是否正常。 检查I/O地址分配器。一般是由部分译码或全译码电路构成,如是部分译码设计,则排除地址重叠故障。4 .对扩展的RAM、ROM进行检查调试。一般先后写入55H、AAH,再读出比较,以此判断是否正常。因为这样RAM、ROM的各位均写入过0、1代码。 5.2 软件调试软件调试 软件调试根据开发的设备情况可以有以下方法:1 .交叉汇编:用IBM PC/XT机对MCS51系列单片机程序进行交叉汇编时,可借助IBM PC/XT机的行编辑和屏幕编辑功能,将源程序按规定的格式输入到PC机,生成MCS51 HEX目标代码和LIST文件。 2 .用汇编语言:现在有些单片STD工业控制机或者开发系统,可直接使用汇编语言,借助CRT进行汇编语言调试。 3 .手工汇编:这种方法是最原始,但又是一种最简捷的调试方法,且不必增加调试设备。这种方法的实质就是对照MCS51指令编码表,将源程序指令逐条地译成机器码,然后输入到RAM重新进行调试。在进行手工汇编时,要特别注意转移指令、调用指令、查表指令。必须准确无误地计算出操作码、转移地址和相对偏移量,以免出错。 以上3种方法调试完成以后,即可通过EPROM写入器,将目标代码写入EPROM中,并将其插至机器的相应插座上,系统便可投入运行。 6 抗干扰技术6.1硬件抗干扰技术光电隔离: 在输入和输出通道上采用光电隔离器来进行信息传输是很有好处的,它将微机系统与各种传感器、开关、执行机构从电气上隔离开来,很大一部分干扰将被阻挡。抗干扰电源: 微机系统供电线路是干扰的主要来源,电源采用隔离变压器接入电网,可以防止电网的干扰侵入微机系统。配置去耦电容: 原则上每个集成电路芯片都应安置一个0.01mF的陶瓷电容

温馨提示

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

评论

0/150

提交评论