📄 runing3.asm
字号:
ORG 0000H
AJMP START
ORG 000BH
AJMP ZHUAN
ORG 0030H
START:
MOV TMOD, #01H
MOV TH0, #10H
MOV TL0, #0B0H
MOV IE, #82H
SETB TR0
MOV 22H,#0
SETB 20H.0
MOV 21H, #0
MOV 24H, #7
MOV 26H, #0
MOV 25H, #3
MOV 30H, #4
DD: MOV 27H, #0
ACALL KEYREAD
JB 22H.0, SHUZI
ACALL DISPA
AJMP PANDUAN
SHUZI:
ACALL DISPB
PANDUAN:
JB 27H.7, FANHUI
CPL 20H.0
FANHUI:AJMP DD
DISPB:
MOV R5, #08H
MOV R2, #01H
MOV R0, #00H
DISP1B:MOV DPTR,#8FFFH
MOV A, R2
MOVX @DPTR,A
MOV A, R0
ADD A, 21H
MOV B , #17
DIV AB
MOV A, B
DISP2B:MOV DPTR,#SHOWTABLE
MOVC A, @A+DPTR
MOV DPTR,#9FFFH
MOVX @DPTR,A
ACALL DEL5
ACALL DEL5
MOV A, R2
RL A
MOV R2, A
INC R0
DJNZ R5, DISP1B
RET
SHOWTABLE:
DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DEL5: MOV R6, #00H
TM5: MOV R7, #01H
DJNZ R7, $
DJNZ R6, TM5
RET
DISPA:MOV R3,21H
MOV R5, #10
MOV R2, #0
DISP1A:MOV A, R3
ADD A, R2
MOV B, #20
DIV AB
DISP2A:MOV A, B
MOV DPTR, #ZIWEIA
MOVC A, @A+DPTR
MOV DPTR, #8FFFH
MOVX @DPTR, A
MOV A, B
MOV DPTR, #ZIXINGA
MOVC A, @A+DPTR
MOV DPTR, #9FFFH
MOVX @DPTR, A
INC R2
ACALL DEL0
DJNZ R5, DISP1A
RET
ZIWEIA:
DB 80H,40H,20H,10H,08H,04H,02H,01H,01H,01H
DB 01H,02H,04H,08H,10H,20H,40H,80H,80H,80H
ZIXINGA:
DB 01H,01H,01H,01H,01H,01H,01H,01H,02H,04H
DB 08H,08H,08H,08H,08H,08H,08H,08H,10H,20H
DEL0: MOV R6, #00H
TM: MOV R7, #01H
DJNZ R7, $
DJNZ R6,TM
RET
ZHUAN:
MOV R3, 21H
DJNZ 30H,NEXT
MOV 30H,#2
JNB 20H.0, SHUNA
NIA: MOV A, R3
JNZ JIXUA
MOV R3, #20
JIXUA:DEC R3
AJMP NEXT
SHUNA: INC R3
CJNE R3, #20,NEXT
MOV R3, #0
NEXT:
MOV 21H, R3
MOV TH0, #20H
MOV TL0, #0B0H
RETI
;读键子程
NEW_KEY EQU 22H
OLD_KEY EQU 23H
KEYREAD:
CLR PSW.5
KEY_AGAIN:
ACALL KEY_INPUT
JNB PSW.5, KEY_OVER
ACALL KEY_DELAY
ACALL KEY_INPUT
JNB PSW.5, KEY_OVER
MOV A, NEW_KEY
CJNE A, OLD_KEY,KEY_OVER
UPKEY:
ACALL KEY_INPUT
JB PSW.5, UPKEY
ACALL KEY_INPUT
JB PSW.5, UPKEY
MOV R0,NEW_KEY
RET
KEY_INPUT:
MOV A, #00H ;显示0
MOV DPTR, #9000H
MOVX @DPTR, A ;ZIXING
CLR F0
MOV R1, #00H
MOV R2, #04H
MOV R3, #01H
KEY_LOOP:
MOV A, R3
MOV DPTR, #8000H
MOVX @DPTR, A
MOVX A, @DPTR
MOV R4, #04H
KEY_LOOP1:
RRC A
JNC NEXT_KEY
MOV OLD_KEY,NEW_KEY
MOV A, R1
MOV DPTR, #KEY_TABLE_BCD
MOVC A, @A+DPTR
MOV NEW_KEY, A
SETB F0
AJMP KEY_OVER_OK
NEXT_KEY:
INC R1
DJNZ R4,KEY_LOOP1
MOV A, R3
RL A
MOV R3, A
DJNZ R2, KEY_LOOP
AJMP KEY_OVER_OK
KEY_OVER:
MOV 27H, #80H
KEY_OVER_OK:
RET
KEY_DELAY:
MOV R0, #0FFH
DJNZ R0, $
RET
KEY_TABLE_BCD:
DB 01H,01H,02H,02H
DB 01H,01H,02H,02H
DB 01H,01H,02H,02H
DB 01H,01H,02H,02H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -