毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

单片机温度自动控制系统论文 第4页

更新时间:2007-11-12:  来源:毕业论文

是给定值;y(t)为被控变量;U(t)为调节器输出的控制信号;Kp为比例系数;Ti为积分时间常数;Td为微

分时间常数。计算机只能处理数字信号,若采样周期为T,第几次采样输入偏差为en,调节器输出为Un,PID算法中的微分 用差分 代替,积分 代替,于是得到,写成递

推形式:

改写成:

由于电阻炉一般都属于一阶对象和带纯滞后的一阶对象,所以式中KPKIKD的选择取决于电阻炉的阶跃响应特性和实际经验,在程序中假设都为正小数,参与运算的数都变为计算机易于处理的形式,数据处理方法如下:

(1)    把所有的数都变成定点纯小数进行处理

(2)    算式中的各项都有正负,用补码表示,计算结果以原码输出。

(3)    双精度运算,为了保证运算精度把单字节16位进行运算,最后结果取8位有效值输出。 

 

 

第七章 系统程序设计

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

7.1 系统控制主程序的设计

其中T1中断嵌套在T0中断之中,而T1的初值是由PID计算值决定的。所以PID的最大输出必须小于250,即保证在T0再次溢出中断之前,T1中断服务结束,并以T0中断返回到主程序,否则程序不能正常进行。

程序所点用8031内部数据存贮的单元如图:

 

 

7.1 参数内部RAM分配图

                   

 

7.2 主程序流程图

 

主程序

MOV  81H, 50H;设堆栈

CLR  5EH       ;清本次越限标志                        

CLR  5FH       ;清上次

CLR   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  TMOD,#56HT0方式2T1方式1计数

MOV  TL0, #06H

MOV  TH0, #06HTO赋值

CLR  PT0        T0为低优先级中断

SETB TR0        ;启动T0

SETB ET0        ;允许T0中断

SETB EA         CPU中断

LOOPACALL  DISPLY   ;调用显示程序

          ACALL  SCAN     ;调用扫描程序

          ATMP   LOOP     ;等待中断

 

7.2 中断服务程序的设计

 

T0中断服务程序:

PUSH   A       

PUSH   DPL     

PUSH   DPH      ;保护现场

SETB   D5H      ;置标志

ACALL  SAMP     ;调用采样子程序

ACALL  FILTER   ;调用数字滤波程序

CJNE A42HTPLUiK≠UmaxTPL

WL:  MOV  C5EH    

         MOV  5FHC     ;交换标志

         CLR  5EH        ;清本次标志

         ACALL    UPL    ;上限处理

         POP      DPH   

         POP      DPL    ;恢复现场

          POP      A      

         RETI            ;中断返回

TPL JNC      TPL1   ;若UiK>VmaxTPL1

CLR     5FH    ;清上次越限标志

CJNE  A43HMTPLUiKUminMTPL

HATSETB    P1.1    ;正常,绿

         ACALL  PID    ;计算PID

         MOV  A2FH   PLD值→(A

         CPL   A        

         INC   A        ;求TL1

NM SETB     P1.3  ;输出控制脉冲

         MOV  TL1 A  T1赋初值

         MOV  TH1#OFFH

         SETB   PT1     T1高优先级中断³

         SETB   TR1    ;启动T1

         SETB   ET1    ;允许T1中断

         ACALL TRAST  ;标度转换

LOOPACALL DISPLY  ;显示温度

         JB    D5HLOOP;等待T1中断

         POP   A       

POP   DPH      

POP   DPL      

RETI            ;中断返回

MTPLJNC    HAT     ;若Ui(k)>UminHAT

         SETB   P1.0    

         MOV  A45H  

         CPL   A        

         INC   A        

         AJMP  NM      

TPL1SETB   5EH      ;置本次越限标志

         JNB    5FHWL ;若上次没越限则转

         INC    44H      ;越限计数器加1

         MOV  A44H   

         CLR   C        

         SUBB  A #N  

         JNZ        WL   ;越限次数不等于N

         SETB    P1.2     ;上限报警,红灯亮

         CLR     5EH    

         CLR     5FH     ;清标志

         POP     A      

         POP     DPH    

         POP     DPL     ;恢复现场

         RETI             ;从中断返回

  T1中断服务程序(由001BH转来)                                  

         CLR     D5H     ;清标志

         CLR     P1.3     ;停止输出

         RETI             ;从中断返回

 

 

7.3T1中断程序图

 

 

7.4系统控制流程图

 

 

 

7.3 采样程序的设计

 

      

根据流程图写程序如下:

SMAP MOV   R0#2CH ;采样值首址

               MOV   R1 #03H ;计数器赋值

SAM1 MOV  DPTR#03F8H

               MOVX  @DPTR A  ;启动ADC

               MOV   R2 #20H    ;延时

DLY DJNZ   R2 DLY    ;结束?

HEREJB     P3.3 HERE  ;等待ADC结束

             MOVX  A  @DPTR

               MOV    @RO  A   ;存放采样值

             INC     RO         

             DJNE    R1   SAM1 

             RET                 

 

 

 

 

7.4 数字滤波子程序设计

微机控制系统通常直接放在生产现场,会受到严重干扰,系统采用滤波方法来滤除干扰,数字滤波算法有很多,本系统采用中值滤波,就是连续三次取样,取中间值作为本次采样值。

三次采样值分别放于2CH2DH2EH中,取中间值放在累加器A中,同时也转放在2AH单元中,以备进行温度标度转换用。

上一页  [1] [2] [3] [4] [5] 下一页

单片机温度自动控制系统论文 第4页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。