基于单片机的电加热炉温度控制系统的设计 第10页
图 5.3 采样子程序流程图
   SAMP:  MOV     R0, #2CH        ;采样值始送R0
           MOV     R2, #03H       ;采样次数初值送R2
           MOV     DPTR, @
SAM1:  MOVX    @DPTR, A        ;启动ADC0809工作
          MOV     R3, #20H
DLY:   DJNZ    R3, DLY         ;延时
HERE:   JB        P3.3,  HERE   ;等待A/D完成
           MOVX    A,  @DPTR        ;采样值送A
           MOV     @R0,  A          ;存放采样值
           INC      R0
           DJNZ     R2,  SAM1        ;若采样未完,则SAM1
           RET                        ;若已采样完,则返回 
微机控制系统通常直接放在生产现场,会受到严重干扰,系统采用滤波方法来滤除干扰,数字滤波算法有很多,本系统采用中值滤波,就是连续三次取样,取中间值作为本次采样值。
三次采样值分别放于2CH,2DH,2EH中,取中间值放在累加器A中,同时也转放在2AH单元中,以备进行温度标度转换用。
图 5.4 数字滤波程序流程图
FITER:     MOV   A, 2CH                 ;(2CH)送A
       CJNE   A, 2DH,  CMP1       ;若(2CH)≠(2DH),则CMP1
       AJMP   CMP2                  ;否则,转CMP2 
CMP1:      JNC     CMP2                  ;若(2CH)>(2DH),则
       XCH    A, 2DH               ;
       XCH    A, 2DH               ;   
CMP2:      MOV    A, 2DH               ;(2DH)送A
        CJNE    A, 2EH, CMP3    ;若(2DH)≠(2EH),则CMP
        MOV    2AH,A             ;否则,(2DH)送2AH
         RET                     ;返回
CMP3:      JC       CMP4            ;若(2DH)<(2EH),则CMP4
        MOV    2AH,  A           ;否则, (2DH)送2AH
        RET                      ;返回
CMP4:       MOV    A, 2EH             ;(2EH)送A
        CJNE    A, 2CH, CMP5     ;若(2EH)≠(2CH),则 CMP5 
        MOV    2AH, A              ;否则,(2EH)送2AH
        RET                      ;返回
CMP5:      JC      CMP6              ;若(2EH)<(2CH),则CMP6
a. MOV    R5, 31H          ; 
   MOV    R4, 32H          ;
   MOV    R3, 2AH          ;    Ui(K) 送R3R2:
   MOV    R2, #00H         ;    
   ACALL  CPL1             ;取ui(K)的补码
   ACALL  DSUM            ;计算E(K)
MOV    39H,  R7         ;    
   MOV    3AH,  R6         ; E(K)送39H和3AH单元:
   MOV    R5 , 35H         ; K1送R5R4:  
   MOV    R4, 36H          ;    
   MOV    R0  #4AH         ;基地址
ACALL  MULT1            ;计算Pi=Ki·E(k)
   MOV    R5, 39H          ;E(K)送R5R4   
   MOV    R4, 3AH               
   MOV    R3, 3BH          ; E(K-1)送R3R2  
   MOV    R2, 3CH             
   MOV    R4, 48H              
   MOV    R3, 4DH           ;KP1送R3R2   
   MOV    R2, 4CH              
   ACALL  DSUM               ;求得Pp+p1
   MOV    4AH, R7      
   MOV    4BH,R8             ; 存入4AH和4BH单元            
MOV    R5, 39H            ; E(K)送R5R4              
   MOV    R4, 3AH             
   MOV    R3, 3DH            ; E(K-2)送R3R2          
   MOV    R2, 3EH
ACALL  DSUM                ;计算E(K)+E(K-2)              
          MOV    R5, R7             
   MOV    R4, R6              ;存入R5﹑R4                
   MOV    R3, 3BH             ;E(K-1)送R3R2       
   MOV    R2, 3CH           
   ACALL  CPL1                ;对E(K-1)求补
   ACALL   DSUM                ;计算{E(K)+E(K-2)-E(K-1)}
MOV     R5, R7              ;存入R5﹑R4    
   MOV     R4, R6               
   MOV     R3, 3BH            ;E(K-1)送R3﹑R2      
   MOV     R2, 3CH            
ACALL   CPL1                 ;对E(K-1)求补
ACALL   DSUM                 ;求E(K)-2E(K-1)+E(K-2)
MOV     R5, 37H             ;Kd送R5R4 
MOV     R4, 38H
MOV     R0, #46H            ;基地址46H送R0
ACALL   MULT1                ;求得Pd
MOV     R5, 49H             ;送入R5R4 
MOV     R5,2FH              
MOV     R4,30H              
ACALL   DSUM                   
MOV     2FH,R7              
MOV     30H,R6               
MOV     3DH,3BH              
MOV     3EH,3CH             
MOV     3BH,39H             
MOV     3CH,3AH             
RET
b. 双字节加法程序DSUM
DSUM:  MOV  A, R4
ADD A, R2
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>