OUT: PUSH PSW
SETB RS1
ACALL BCDHEX
ACALL SUBBV
POP PSW
CLR A
RET
;**********减电流
JIAN: MOV 3AH,#0FFH
MOV A,DISP3
DEC A
MOV DISP3,A
CJNE A,#0FFH,OUT1
MOV DISP3,#9
MOV A,DISP2
DEC A
MOV DISP2,A
CJNE A,#0FFH,OUT1
MOV DISP2,#9
MOV A,DISP1
DEC A
MOV DISP1,A
CJNE A,#0FFH,OUT1
MOV DISP1,#9
MOV A,DISP0
DEC A
MOV DISP0,A
CJNE A,#0FFH,OUT1
MOV DISP0,#0
MOV DISP1,#0
MOV DISP2,#0
MOV DISP3,#0
OUT1: PUSH PSW
SETB RS1
ACALL BCDHEX
ACALL SUBBV
POP PSW
CLR A
RET
BCDHEX:
MOV R7,#03H
MOV R0,#DISP0
CLR A
MOV R1,A
MOV R2,A
MOV R4,A
MOV R5,A
MOV R3,A
MOV A,@R0
MOV R1,A
CLR C
LOOP16: MOV A,R1
ADD A,R1
MOV R1,A
MOV A,R2
ADDC A,R2
MOV R2,A
MOV A,R1
MOV R3,A
MOV A,R2
MOV R4,A
MOV A,R1
ADD A,R1
MOV R1,A
MOV A,R2
ADDC A,R2
MOV R2,A
MOV A,R1
ADD A,R1
MOV R1,A
MOV A,R2
ADDC A,R2
MOV R2,A
MOV A,R1
ADD A,R3
MOV R1,A
MOV A,R2
ADDC A,R4
MOV R2,A
INC R0
MOV A,@R0
MOV R5,A
MOV A,R1
ADD A,R5
MOV R1,A
MOV A,R2
ADDC A,#00H
MOV R2,A
MOV R5,#00H
DJNZ R7,LOOP16
RET
SUBBV: MOV 3EH,R2
MOV 3FH,R1
MOV R4,3EH ;高位
MOV R3,3FH ;低位
MOV R2,#DATB1
;********************************乘5
MULI:
MOV A,R2 ;取乘数
MOV B,R3 ;取被乘数低位
MUL AB ;计算(R3)*(R2)
MOV R5,A ; 乘积的低位送R5
MOV R6,B ; 乘积的高位送R6
MOV A,R2 ;恢复乘数
MOV B,R4 ;取被乘数高位
MUL AB ;计算(R4)*(R2)
ADD A,R6 ;(R3)*(R2)积的高位加(R4)*(R2)积的低位
MOV R6,A ;存结果
MOV A,B ;取(R4)*(R2)
ADDC A,#00H ; (R4)*(R2)积的高位加低位进位
MOV R7,A ;存最高位
;RET
MOV A,R6
MOV R1,A
MOV A,R5
MOV R0,A
;*******************除8
MOV R2,#00H
MOV R3,#DATB
MOV R4,#00H
MOV R5,#00H
MOV R7,#10H
CHU5: MOV A,R0
ADD A,R0
MOV R0,A
MOV A,R1
ADDC A,R1
MOV R1,A
MOV A,R2
ADDC A,R2
MOV R2,A
MOV A,R4
上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页