基于单片机的电加热炉温度控制系统的设计 第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] ... 下一页 >>