📄 pidcontral.asm
字号:
YKF1: ANL A,#7FH
MOV 0F0H,A
CLR C
MOV A,#080H
SUBB A,0F0H
MOV R2,A ;计算-YK
LJMP YKF
PID: MOV R5, #00H
MOV R4, 3AH
MOV R3, #00H
MOV R2, 5BH
MOV A,5BH
JB 0E7H,YKF1 ;E7H=1跳转,说明5BH(YK)有符号
LCALL CPL1
YKF: CLR C
MOV A, R4
ADD A, R2
MOV R2, A
MOV A, R5
ADDC A, R3
MOV R3, A
MOV R0, 02H
MOV R1, 03H
MOV R4, 73H
MOV R5, 74H
CLR C
MOV A, R0
SUBB A, 71H
MOV 73H,A
MOV A, R1
SUBB A, 72H
MOV 74H,A
MOV 71H,R0
MOV 72H,R1
CLR C
MOV A, 73H
SUBB A, R4
MOV 75H,A
MOV A, 74H
SUBB A, R5
MOV 76H,A
CLR A
MOV 77H,A
MOV 78H,A
MOV 79H,A
MOV 7AH,A
MOV A, R3
JNB 0E7H,EK1
LCALL CPL1
EK1: MOV A, R2
CLR C
SUBB A, 3BH
MOV A, R3
SUBB A, #00H
JC II
CLR A
MOV 7CH,A
MOV 7DH,A
LJMP DDD
II: MOV R5, 01H
MOV R4, 00H
MOV R7, #00H
MOV R6, 39H
MOV R0, #77H
LCALL L20
MOV R2,7AH
MOV R3,79H
MOV R4,78H
MOV R5,77H
PUSH 0D0H
MOV R7,43H
MOV R6,42H
LCALL DIV1
POP 0D0H
JNC II1
MOV A,R5
CPL A
ADD A,#01H
MOV R5,A
MOV A,R4
CPL A
ADDC A,#00H
MOV R4,A
II1: MOV 7DH,R4
MOV 7CH,R5
DDD: MOV R5,76H
MOV R4,75H
MOV R7,44H
MOV R6,45H
MOV R0,#77H
LCALL L20
MOV R2,7AH
MOV R3,79H
MOV R4,78H
MOV R5,77H
PUSH 0D0H
MOV 0F0H,39H
MOV A,#08H
MUL AB
MOV R6,0F0H
MOV R7,A
LCALL DIV1
POP 0D0H
JNC DD1
MOV A,R5
CPL A
ADD A,#01H
MOV R5,A
MOV A,R4
CPL A
ADDC A,#00H
MOV R4,A
DD1: MOV A,7CH
ADD A,R5
MOV R5,A
CLR 0D2H
MOV A,7DH
ADDC A,R4
MOV R4,A
JB 0D2H,L9
L2: MOV A,73H
ADD A,R5
MOV R6,A
CLR 0D2H
MOV A,74H
ADDC A,R4
MOV R7,A
JB 0D2H,L3
L5: MOV R4,41H
MOV R5,40H
MOV R0,#77H
LCALL L19
L10: MOV A,31H
LJMP L11
JNB 0E6H,L11
LJMP L12
L11: MOV R0,#00CH
LJMP L13
L12: MOV R0,#09H
L13: CLR C
L6: MOV A,7AH
MOV C,0E7H
RRC A
MOV 7AH,A
MOV A,79H
RRC A
MOV 79H,A
MOV A,78H
RRC A
MOV 78H,A
MOV A,77H
RRC A
MOV 77H,A
DJNZ R0,L6
LCALL L14
LJMP L7
L9: MOV A,7DH
JB 0E7H,L1
MOV R4,#07FH
MOV R5,#0FFH
LJMP L2
L1: MOV R4,#080H
MOV R5,#000H
LJMP L2
L3: MOV A,74H
JB 0E7H,L4
MOV R7,#07FH
MOV R6,#0FFH
LJMP L5
L4: MOV R7,#080H
MOV R6,#00H
LJMP L5
L7: ADD A,5FH
JB 0D2H,L8
L18: MOV 5FH,A
ADD A,#80H
MOV 58H,A
RET
L8: MOV A,7AH
JB 0E7H,L17
MOV A,#07FH
LJMP L18
L17: MOV A,#080H
LJMP L18
L14: MOV A,7AH
RLC A
PUSH 0D0H
JC L15
MOV A,78H
ANL A,#0FEH
JZ L16
POP 0D0H
MOV A,#07FH
RET
L16: MOV A,78H
RRC A
MOV A,77H
RRC A
POP 0D0H
RRC A
RET
L15: MOV A,78H
ANL A,#0FEH
CLR C
SUBB A,#0FEH
JZ L16
POP 0D0H
MOV A,#080H
RET
L19: CLR C
LJMP L21
L20: CLR C
CPL C
L21: PUSH 0D0H
MOV A,R7
RLC A
MOV 6EH,C
JNC L22
MOV A,R6
CPL A
ADD A,#01H
MOV R6,A
MOV A,R7
CPL A
ADDC A,#00H
MOV R7,A
L22: MOV A,R5
RLC A
MOV 6FH,C
JNC L23
MOV A,R4
CPL A
ADD A,#01H
MOV R4,A
MOV A,R5
CPL A
ADDC A,#00H
MOV R5,A
L23: LCALL L24
MOV C,6EH
ANL C,6FH
JC L25
MOV C,6EH
ORL C,6FH
JNC L25
POP 0D0H
JC L26
DEC R0
DEC R0
DEC R0
MOV A,@R0
CPL A
ADD A,#01H
MOV @R0,A
LCALL L27
LCALL L27
LJMP L28
L25: POP 0D0H
L30: CLR C
L26: RET
L27: INC R0
MOV A,@R0
CPL A
ADDC A,#00H
MOV @R0,A
RET
L24: MOV A,R6
MOV 0F0H,R4
MUL AB
MOV @R0,A
MOV R3,0F0H
MOV A,R4
MOV 0F0H,R7
MUL AB
ADD A,R3
MOV R3,A
MOV A,0F0H
ADDC A,#00H
MOV R2,A
MOV A,R6
MOV 0F0H,R5
MUL AB
ADD A,R3
INC R0
MOV @R0,A
CLR 6DH
MOV A,R2
ADDC A,0F0H
MOV R2,A
JNC L29
SETB 6DH
L29: MOV A,R7
MOV 0F0H,R5
MUL AB
ADD A,R2
INC R0
MOV @R0,A
MOV A,0F0H
ADDC A,#00H
MOV C,6DH
ADDC A,#00H
INC R0
MOV @R0,A
RET
L28: LCALL L27
LJMP L30
CPL1: MOV A,R2 ;取反加1求补码
CPL A
ADD A,#01H
MOV R2,A
MOV A,R3
CPL A
ADDC A,#00H
MOV R3,A
RET
DIV1: MOV A,R3
CLR C
SUBB A,R7
MOV A,R2
SUBB A,R6
CLR 0D2H
JC L31
MOV R4,#07FH
MOV R5,#0FFH
SETB 0D2H
RET
L31: MOV 0F0H,#10H
L34: CLR C
MOV A,R5
RLC A
MOV R5,A
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
RLC A
MOV R3,A
XCH A,R2
RLC A
XCH A,R2
MOV 0D5H,C
CLR C
SUBB A,R7
MOV R1,A
MOV A,R2
SUBB A,R6
JB 0D5H,L32
JC L33
L32: MOV R2,A
MOV A,R1
MOV R3,A
INC R5
L33: DJNZ 0F0H,L34
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -