毕业论文
主程序
在主程序中首先给定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
4.2.2中断服务程序框图
毕业论文
T0中断服务程序是温度控制系统的主体程序,用于启动数/模转换器、读入采样数据、数字滤波、越限温度报警和越限处理、PID计算和输出可控硅的触发脉冲等。P1.3引脚上输出的该同步触发脉冲宽度由T1计数器的溢出中断控制,8051利用等待T1溢出中断的空闲时间(形成P1.3输出脉冲顶宽)完成把本次采样值转换成显示值而放入显示单元缓冲区和调用温度显示程序。8051从T1中断服务程序返回后即可恢复现场和返回主程序。
系统软件采用中断方式编程,主要部分是时钟中断程序,主要由输入处理程序、控制算法程序、显示处理、输出处理和自诊断程序等组成,其流程图如图2所示。仪表通电启动后,初始化程序进行时间给定,每隔500ms时钟中断一次,中断后进入时钟中断处理。对于纯滞后,大惯性环节控制对象,一般采用积分分离PID控制算法。在一般的PID控制中,当系统有较大的扰动或设定值较大幅度提降时,由于偏差较大及系统存在惯性和滞后,在积分项的作用下,会产生较大的超调和长时间波动,在温度缓慢变化过程中这一现象尤为严重,为此采用积分分离措施,即在偏差较大时,取消积分作用,偏差较小时,才将积分作用投入。
毕业论文
中断服务程序框图
毕业论文
4.3 程序清单
4.3.1 报警电路子程序
1.子程序框图
2.报警子程序:
FLAG
BIT 00H ORG 00H JB P1.7,START JNB FLAG,NEXT MOV R2,#200 CPL P2.2 LCALL DELY500 LCALL DELY500 DJNZ R2,DV
START:
DV:
毕业论文
CPL FLAG MOV R2,#200 CPL P1.0 LCALL DELY500 DJNZ R2,DV1 CPL FLAG SJMP START
NEXT: DV1:
DELY500: MOV R7,#250 LOOP: NOP
DJNZ R7,LOOP RET END
4.3.2 键盘显示管理程序。
为了使8279具有合适的键盘、显示功能,首先要对芯片初始化。可适当地挑选8279的控制字,例如:使8279具有8位显示、右端输入、编码键盘、双键锁定时可选控制字10H.这时每次按键都将产生键特征码,并且存放在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引脚电平的翻新过程。