电加热炉温度控制系统的设计 第8页

基于单片机的电加热炉温度控制系统的设计 第8页

5  系统程序设计

系统控制程序采用两次中断嵌套方式来设计,首先使T0计数器能产生与秒钟定时中断,作为本系统的采样周期,在中断服务程序中启动A/D读入采样数据,进行数据滤波、上下线报警处理、PID计算,然后输出控制脉冲信号,脉冲的宽度由T1计数器溢出中断决定。在等待T1中断时,将本次采样数值转换成对应的温度值放入显示缓冲区,然后用显示子程序,从T1中断返回后,再从T0中断返回主程序并继续显示本次采样温度,等待下次T0中断。

5.1 系统控制主程序的设计

主程序应包括89C52本身的初始化,8155初始化等等。为简化起见,本程序只给出有关标志,暂存单元和显示缓冲区清零,T0初始化、开CPU中断。温度显示和键盘扫描等程序。

5.1.1 主程序流程图

 

5.1主程序流程图

5.1.2 主程序清单:

ORG 0100H

DISM0  DATA 78H

DISM1  DATA 79H

DISM2  DATA 7AH

DISM3  DATA 7BH

DISM4  DATA 7CH

DISM5  DATA 7DH

MOV  SP,  #50H       ; 50HSP

   CLR  5EH             ; 清本次越限标志

   CLR  5FH             ; 清上次越限标志

   CLR  A               ;清累加器A

   MOV  2FH,   A   

   MOV  30H,   A

   MOV  3BH,   A           

MOV  3CH,   A     ;清暂存单元

   MOV  3DH,   A       

   MOV  3EH,   A       

   MOV  44H,   A       

   MOV  DISM0, A    ;

   MOV  DISM1, A    ;

   MOV  DISM2, A    ;

   MOV  DISM3, A    ;清显示缓冲区

MOV  DISM4, A       

   MOV  DISM5, A   

   MOV  DISM6, A

MOV  DISM7, A

MOV  TMOD, #56H  ; T0为记数方式2T1为记数方式1

MOV  TL0,  #06H  ;

   MOV  TH0,  #06H  ;T0赋初值

   CLR   PT0         ;T0为底中断优先级

   SETB  TR0         ;启动T0工作

SETB  ET0         ;允许T0中断

   SETB  EA          ;CPU中断

LOOP : ACALL DISPLY      ;调用显示程序

   ACALL SCAN         ;调用扫描程序

   AJMP  LOOP         ;等待中断

5.2 T0 中断服务程序CT0

T0中断服务程序是温度控制系统的主体程序,用于启动A/D转换,读入采样数据,数字滤波,越限温度报警和越限处理,PID计算和输出可控硅的同步触发脉冲等。P1.3引脚输出的该同步触发脉冲宽度由T1计数器的溢出中断控制,89C52利用等待T1溢出中断空隙时间完成把本次采样值转换成显示值而放入显示缓冲区和调用温度显示程序。89C52T1中断服务程序返回后便可以恢复现场和返回主程序,以等待下次T0中断。

T0中断服务程序中,还需要用到一系列子程序。例如:温度采样值的子程序,数字滤波子程序,越限处理子程序,PID计算程序,标度转换程序和温度显示程序。在PID计算程序中,也需要双字节加法子程序,双字节求补子程序和双字节带符号数乘法子程序等。 若图片无法显示请联系QQ3249114,基于单片机的电加热炉温度控制系统的设计 第8页系统,转发请注明源于www.751com.cn

5.2.1 T0中断服务程序流程图:

如下图所示

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

  • 上一篇文章:
  • 下一篇文章:
  • Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有