📄 pinlv.asm
字号:
JI EQU 49H
SHU EQU 48H
ORG 0000H
JMP MAIN
ORG 000BH
JMP INT0
ORG 001BH
JMP INT1
ORG 0100H
MAIN: MOV SP,#90H
MOV R0,#00H
MOV R7,#0FFH
CLEAR:MOV @R0,#00H
INC R0
DJNZ R7,CLEAR
MOV SHU,#14H
MOV JI,#00H
MOV TMOD,#51H
MOV TL0,#0B0H
MOV TH0,#3CH
MOV TH1,#00H
MOV TL1,#00H
SETB EA
SETB ET0
SETB ET1
JB P3.5,$
JNB P3.5,$
SETB TR1
SETB TR0
HERE:
; MOV 50H,TL1
; MOV 51H,TH1
; MOV 52H,JI
CALL BCD1
CALL FEN
CALL DISP
CALL DELAY
JMP HERE
INT0: MOV TL0,#0B0H
MOV TH0,#3CH
DJNZ SHU,LOOP
MOV SHU,#14H
CLR TR1
CLR TR0
MOV 50H,TL1
MOV 51H,TH1
MOV 52H,JI
MOV TH1,#00H
MOV TL1,#00H
MOV JI ,#00H
SETB TR1
SETB TR0
LOOP: RETI
INT1: INC JI
MOV TH1,#00H
MOV TL1,#00H
RETI
;****************************************
;HB2 功能:三字节十六进制整数转换成三字节BCD码整数
;入口条件:待转换的双字节十六进制整数在r1,R6、R7中。
;出口信息:转换后的三字节BCD码整数在r2,R3、R4、R5中。
;影响资源:PSW、A、R2~R7 堆栈需求: 2字节
BCD1: MOV A,51H
MOV R6,A
MOV A,50H
MOV R7,A
MOV A,52H
MOV R1,A
CLR A ;;BCD码初始化
MOV R3,A
MOV R4,A
MOV R5,A
MOV R2,A
MOV 58H,#18H ;;转换双字节十六进制整数
HB31: MOV A,r7 ;;从高端移出待转换数的一位到CY中
RLC A
MOV r7,A
MOV A,r6
RLC A
MOV r6,A
MOV A,r1
RLC A
MOV r1,A
MOV A,R5 ;;BCD码带进位自身相加,相当于乘2
ADDC A,R5
DA A ;;十进制调整
MOV R5,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
MOV A,R3
ADDC A,R3
DA A
MOV R3,A ;;双字节十六进制数的万位数不超过6,不用调整
MOV A,R2
ADDC A,R2
MOV R2,A
DJNZ 58H,HB31 ;;处理完16bit
MOV A,R2
MOV 40H,A
MOV A,R3
MOV 41H,A
MOV A,R4
MOV 42H,A
MOV A,R5
MOV 43H,A
ret
;**********16转化BCD******************
FEN: MOV R4,43H
MOV R5,42H
MOV R6,41H
MOV R7,40H
MOV A,R4
DA A
ANL A,#0FH
MOV 62H,A
MOV A,R4
SWAP A
ANL A,#0FH
MOV 61H,A
MOV A,R5
DA A
ANL A,#0FH
MOV 64H,A
MOV A,R5
SWAP A
ANL A,#0FH
MOV 63H,A
MOV A,R6
DA A
ANL A,#0FH
MOV 66H,A
MOV A,R6
SWAP A
ANL A,#0FH
MOV 65H,A
MOV A,R7
DA A
ANL A,#0FH
MOV 68H,A
MOV A,R4
SWAP A
ANL A,#0FH
MOV 67H,A
RET
DISP: MOV P1,#0FFH
MOV DPTR,#TABLE
MOV A,68H
MOVC A,@A+DPTR
MOV P0,A
MOV P1,#11111110B
ACALL delay
ACALL delay
MOV P1,#0FFH
MOV A,67H
MOVC A,@A+DPTR
MOV P0,A
MOV P1,#11111101B
ACALL delay
MOV P1,#0FFH
MOV A,65H
MOVC A,@A+DPTR
MOV P0,A
MOV P1,#11111011B
ACALL delay
MOV P1,#0FFH
MOV A,64H
MOVC A,@A+DPTR
MOV P0,A
MOV P1,#11110111B
ACALL delay
MOV P1,#0FFH
MOV A,63H
MOVC A,@A+DPTR
MOV P0,A
MOV P1,#11101111B
ACALL delay
MOV P1,#0FFH
MOV A,62H
MOVC A,@A+DPTR
MOV P0,A
MOV P1,#11011111B
ACALL delay
RET
DELAY: MOV R7,#10H
DL0: MOV R6,#10H
DL60:DJNZ R6,DL60
DJNZ R7,DL0
RET
TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -