|
|
AA1: RET
AA2: JNC AA3
SETB 20H ;清风扇标志位
MOV R3,39H
MOV R2,3AH
LCALL CPL1
MOV A,R3
MOV R7,A
MOV A,R2
MOV R6,A
MOV R5,42H
MOV R4,43H ;取K(风扇)参数
MOV R0,#5AH
ACALL MULI1 ; 计算P`=K*E(K),且结果防在51H,50H单元中
MOV 28H,5BH ;取8位有效值,放到28H单元中
AJMP AA1
这是pid中调用的几个子程序!
;**********************************************************
DSUM: MOV A,R4 ;[双字节加法子程序]:(R5R4)+(R3R2)-->(R7R6) ADD A,R2
MOV R6,A
MOV A,R5
ADDC A,R3
MOV R7,A
RET
;**********************************************************
CPL1: MOV A,R2 ;[双字节求补子程序]:(R3R2)求补
CPL A
ADD A,#01H
MOV R2,A
MOV A,R3
CPL A
ADDC A,#00H
MOV R3,A
RET
;**********************************************************
MULT1: MOV A,R7 ;[双字节有符号数乘法]:被乘数(R7R6),乘数(R5R4) RLC A
MOV 5CH,C ;被乘数符号C1-->5CH位
JNC POS1 ;为正数则转
MOV A,R6 ;为负数则求补
CPL A
ADD A,#01H

