📄 proc_10s.asm
字号:
SUM EQU 30H
ADDR EQU 32H
ORG 0000H
JMP START
ORG 0040H
START: MOV SP,#50H
CALL INIT_51
MAIN:
JMP MAIN
INIT_51:MOV TMOD,#01010001B
MOV IP,#0
MOV P0,#0
MOV IE,#0
MOV R2,#200
MOV TL1,#0
MOV TH1,#0
SETB TR0
SETB TR1
LL0: MOV TL0,#LOW(65536-50000)
MOV TH0,#HIGH(65536-50000)
JNB TF0,$
CLR TF0
DJNZ R2,LL0
CLR TR1
CALL ASKTOBCD
CALL DISP2
RET
READ: CALL ASKTOBCD
CALL DISP2
CLR P1.1
RET
ASKTOBCD: MOV R4,TH1
MOV R5,TL1
CALL CLR_SUM
MOV A,R4
SWAP A
MOV DPTR,#TAB1
CALL BCDAD
MOV A,R4
MOV DPTR,#TAB2
CALL BCDAD
MOV A,R5
SWAP A
MOV DPTR,#TAB3
CALL BCDAD
MOV A,R5
MOV DPTR,#TAB4
CALL BCDAD
RET
BCDAD: ANL A,#0FH
CALL READ_TAB
CALL BCD_ADD
RET
CLR_SUM: MOV R0,#SUM
MOV R2,#2
CLR A
CLR_SUM_NEXT: MOV @R0,A
INC R0
DJNZ R2,CLR_SUM_NEXT
RET
READ_TAB: MOV R1,#ADDR
MOV R2,#2
MOV B,#2
MUL AB
MOV B,A
READ_TAB_NEXT:
MOV A,B
MOVC A,@A+DPTR
MOV @R1,A
INC DPTR
INC R1
DJNZ R2,READ_TAB_NEXT
RET
BCD_ADD: MOV R0,#SUM
MOV R1,#ADDR
MOV R2,#2
CLR C
BCD_ADD_NEXT:
MOV A,@R0
ADDC A,@R1
DA A
MOV @R0,A
INC R0
INC R1
DJNZ R2,BCD_ADD_NEXT
RET
TAB1: DB 00H,00H
DB 96H,40H
DB 92H,81H
TAB2: DB 00H,00H
DB 56H,02H
DB 12H,05H
DB 68H,07H
DB 24H,10H
DB 80H,12H
DB 36H,15H
DB 92H,17H
DB 48H,20H
DB 04H,23H
DB 60H,25H
DB 16H,28H
DB 72H,30H
DB 28H,33H
DB 84H,35H
DB 40H,38H
TAB3: DB 00H,00H
DB 16H,00H
DB 32H,00H
DB 48H,00H
DB 64H,00H
DB 80H,00H
DB 96H,00H
DB 12H,01H
DB 28H,01H
DB 44H,01H
DB 60H,01H
DB 76H,01H
DB 92H,01H
DB 08H,02H
DB 24H,02H
DB 40H,02H
TAB4: DB 00H,00H
DB 01H,00H
DB 02H,00H
DB 03H,00H
DB 04H,00H
DB 05H,00H
DB 06H,00H
DB 07H,00H
DB 08H,00H
DB 09H,00H
DB 10H,00H
DB 11H,00H
DB 12H,00H
DB 13H,00H
DB 14H,00H
DB 15H,00H
DISP2: MOV R0,#SUM+1
MOV A,@R0
ANL A,#0F0H
JNZ DISP2_NEXT
MOV A,@R0
ANL A,#0FFH
JNZ DISP2_NEXT1
ORL A,#0FFH
JMP DISP2_NEXT2
DISP2_NEXT:
MOV A,@R0
JMP DISP2_NEXT2
DISP2_NEXT1:MOV A,@R0
ORL A,#0F0H
DISP2_NEXT2:
SETB P0.7
MOV P2,A
CLR P0.7
DEC R0
MOV A,@R0
SETB P0.6
MOV P2,A
CLR P0.6
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -