温度控制系统的设计_毕业设计论文(编辑修改稿)内容摘要:

主程序包括 8051 本身的初始化等等。 大体说来,本程序包括设置有关标志、暂存单元和显示缓冲区清零、 T0初始化、 CPU 开中断、温度显示和键盘扫描程序 16 主程序 在主程序中首先给定 PID算法的参数值 ,然后通过循环显示当前温度 ,并且设定键盘外部中断为最高优先级 ,以便能实时响应键盘处理。 软件设定定时器 T0 为 5秒定时 ,在无键盘响应时每隔 5 秒响应一次 ,以用来采集经过 A/ D 转换的温度信号。 设定定时器 T1为嵌套在 T0 之中的定时中断 ,初值由 PID 算法子程序提供。 在主程序中必须分配好每一部分子程序的起始地址 ,形式如下: ORG 0000H AJMP MAIN ORG 0003H AJMP INTO ORG 000BH AJMP TT0 ORG 001BH AJMP TT1 中断服务程序框图 17 T0 中断服务程序是温度控制系统的主体程序,用于启动数 /模转换器、读入采样数据、数字滤波、越限温度报警和越限处理、 PID 计算和输出可控硅的触发脉冲等。 引脚上输出的该同步触发脉冲宽度由 T1 计数器的溢出中断控制,8051 利用等待 T1 溢出中断的空闲时间(形成 输出脉冲顶宽)完成把本次采样值转换成显示值而放入显示单元缓冲区和调用温度显示程序。 8051 从 T1 中断服务程序返回后即可恢复现场和返回主程序。 系统软件采用中断方式编程,主要部分是时钟中断程序,主要由输 入处理程序、控制算法程序、显示处理、输出处理和自诊断程序等组成,其流程图如图 2所示。 仪表通电启动后,初始化程序进行时间给定,每隔 500ms 时钟中断一次,中断后进入时钟中断处理。 对于纯滞后,大惯性环节控制对象,一般采用积分分离 PID控制算法。 在一般的 PID 控制中,当系统有较大的扰动或设定值较大幅度提降时,由于偏差较大及系统存在惯性和滞后,在积分项的作用下,会产生较大的超调和长时间波动,在温度缓慢变化过程中这一现象尤为严重,为此采用积分分离措施,即在偏差较大时,取消积分作用,偏差较小时,才将积分作用投入。 18 中断 服务程序框图 19 程序清单 报警电路子程序 : FLAG BIT 00H ORG 00H START: JB ,START JNB FLAG,NEXT MOV R2,200 DV: CPL LCALL DELY500 LCALL DELY500 DJNZ R2,DV 20 CPL FLAG NEXT: MOV R2,200 DV1: CPL LCALL DELY500 DJNZ R2,DV1 CPL FLAG SJMP START DELY500: MOV R7,250 LOOP: NOP DJNZ R7,LOOP RET END 键盘显示管理程序。 为了使 8279 具有合适的键盘、显示功能,首先要对芯片初始化。 可适当地挑选 8279 的控制字,例如:使 8279 具有 8 位显示、右端输入、编码键盘、双键锁定时可选控制字 ,并且存放在FIFOROM 中,同时使 8279 的 IRQ引脚变为高电平,可作为向 CPU 申请中断信号,如果 CPU 是中断开放的,则转向中断服务程序,可在中断服务程序中读取特征码。 每当 CPU 读取 FIFOROM 中的数据后, 8279 自动撤消 IRQ 信号, IRQ 引脚变为低电平。 CPU 返回主程序后,可由键特征码来决定程序的流向。 问题是,当 CPU 从 8279的 FIFOROM 中读取键特征码后, IRQ 虽然恢复底电平,但 FIFOROM 中的数据并没有消失,仍保存在里面,这时即使使用对改 8279 清除的指令 D3H,也不能将FIFOROM 中的数改变,只有按其它键才能改变 FIFOROM 中的数据,因这样是无法实现按钮功能的。 为了使键盘具有按钮功能,应该利用 8279 的传感方式功能,在传感器方式中, 8279 每当检测到传感状态变化时, IRQ 就变为高电平,图 1是以 8051CPU构成的系统为例,说明 IRQ 引脚电平的翻新过程。 21 8279 的 IRQ 端经反相器接到 8051 的 INT1 端 (即 引脚 )。 先将 8279设置成编码键盘,允许 INT1 中断,当键按下时,反相器输出低电平, CPU 进入中断服务程序,读取键特征码后,又为高电平。 返回主程序后,转向功能程序(例如调模进)。 输出控制信号(例如 为“ 1”时调模进电磁阀得电)后,将8279 设置为传感器方式,并且不允许 INT1 中断,然后调试 是否为低电平。 如果按键松开, 8279 将测出传感器状态发生变化,而使 IRQ 由低电平转为高电平。 也就是说 脚为低电平时,按键已经松开,程序重新设置 8279 为编码键盘, INT1 中断开放,以便使键盘脱离按钮功能。 程序清单如下: ORG 0000H MOV DPTR,7000H。 指向 8279 数据口 INC DPTR。 指向 8279 控制口 MOV A, 00H。 设定 8279 工作方 式 M0VX @DPTR,A MOV A , 0GFH。 清除 8279 内部显示 RAM 状态 MOVX @DPTR, A MOV A , 22H MOVX @DPTR , A。 设定 8279 分频系数 LOOP:MOVX A , @DPTR JB , LOOP。 显示 RAM 清除完毕吗 ? MOV A , 80H。 指向第一位数码管 MOVX @DPTR , A MOV A , 9FH。 输出 1一个字形 MOV DPTR ,7000H MOVX @DPTR , A INC DPTR LOOP1:M0VX A , @DPTR AND A , 07H 22 CJNE A , 00H,L00P2 AJMP LOOP1。 无键按下转 LOOP2:MOV DPTR ,7000H MOVX A , @DPTR。 有键按下将键值送累加器 A 键值 ,由 8279 的行扫描信号 (SL0SL3)与列信号 (RL0RL4)组成 ,不同组合的矩阵将得到不同键 ,但 在同一矩阵中不会有相同的键值 ,这对初学者编制键显示程序大为方便 .下表是通用键盘板键值 : 名称 0 1 2 3 4 5 6 7 8 9 键值 C1 C8 C9 D0 D8 E0 C2 CA D1 D9 名称 状态切换 清除 键值 DA C3 : 判定有无闭合键的子程序为 KSI,供在键盘扫描程序中调 用。 程序如下: 如前所述,在单片机应用系统中常常是键盘和显示器同时存在,因此可以把KSI: MOV DPTR, 0FDF9H ; A口地址 MOV A, 00H MOVX @DPTR, A ; A口送 00H INC DPTR INC DPTR ; C口地址 MOVX A, @DPTR ;读。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。