?? tpp.asm
字號:
TICK EQU 50
T20MS EQU 65536-10000
C20MS EQU 7BH
ORG 0000H
LJMP START
ORG 000BH
LJMP INTT0
START: MOV DPTR,#8003H
MOV A,#81H
MOVX @DPTR,A
MOV R0,#70H
MOV R7,#20H
INIT: MOV @R0,#00H
INC R0
DJNZ R7,INIT
MOV TMOD,#01H
MOV TH0,#0D8H
MOV TL0,#0F0H
MOV IE,#10000010B
SETB TR0
MOV C20MS,#TICK
MLOOP:
LCALL SCAN
LCALL KS1
JZ MLOOP
MOV R1,#76H
LCALL LK2
CJNE A ,#0DH,MLOOP
CLR TR0
RRLOOP: LCALL KEYPLAY
LCALL KS1
JZ RRLOOP
LCALL LK2
CJNE A ,#0DH,LOOP1
SETB TR0
LCALL SCAN1
LJMP MLOOP
LOOP1: LJMP RRLOOP
SCAN1:
MOV A, 71H
MOV B,#10
MUL AB
ADD A,70H
MOV 78H,A
MOV A, 73H
MOV B,#10
MUL AB
ADD A,72H
MOV 79H,A
MOV A, 75H
MOV B,#10
MUL AB
ADD A,74H
MOV 7AH,A
RET
SCAN: MOV A,78H
MOV B,#0AH
DIV AB
MOV 71H,A
MOV 70H,B
MOV A,79H
MOV B,#0AH
DIV AB
MOV 73H,A
MOV 72H,B
MOV A,7AH
MOV B,#0AH
DIV AB
MOV 75H,A
MOV 74H,B
KEYPLAY:
DIR1: MOV R0,#70H
MOV R3,#01H
MOV A,R3
DI1: MOV DPTR,#8000H
MOVX @DPTR,A
MOV A,@R0
MOV DPTR,#CODE1
MOVC A,@A+DPTR
MOV DPTR,#8001H
MOVX @DPTR,A
ACALL DELAY1
INC R0
MOV A,R3
JB ACC.6,DI11
RL A
MOV R3,A
AJMP DI1
DI11:JMP SCANOUT
CODE1:DB 3FH,06H,5BH,4FH,66H,6DH
DB 7DH,07H,7FH,6FH,77H,7CH
DB 39H,5EH,79H,71H,73H,3EH
DB 31H,6EH,1CH,23H,40H,03H
DB 18H,00H,00H,00H
DELAY1:MOV R7,#02H
DE1: MOV R6,#0FFH
DE2: DJNZ R6,DE2
DJNZ R7,DE1
RET
SCANOUT:RET
INTT0: PUSH PSW
CLR ET1
MOV TH0,#0D8H
MOV TL0,#0F0H
SETB ET1
DEC C20MS
MOV A,C20MS
JNZ OUTT0
MOV C20MS,#TICK
INC 78H
MOV A,78H
CJNE A,#3CH,OUTT0
MOV 78H,#00
INC 79H
MOV A,79H
CJNE A,#3CH,OUTT0
MOV 79H,#00
INC 7AH
MOV A,7AH
CJNE A,#18H,OUTT0
MOV 7AH,#00
OUTT0 :POP PSW
RETI
KKEYBORAD:
LK2: MOV R2,#0DFH
MOV R5,#4
MOV R4,#00H
LK4: MOV DPTR,#8000H
MOV A,R2
MOVX @DPTR,A
INC DPTR
INC DPTR
MOVX A,@DPTR
JB ACC.0,LONE
MOV A,#00H
AJMP LKP
LONE: JB ACC.1,LTWO
MOV A,#04H
AJMP LKP
LTWO: JB ACC.2,LTHR
MOV A,#08H
AJMP LKP
LTHR: JB ACC.3,NEXT
MOV A,#0CH
LKP: ADD A,R4
ACALL KEYIN
PUSH ACC
LK3: ACALL KS1
JNZ LK3
POP ACC
RET
NEXT: INC R4
MOV A,R2
RR A
MOV R2,A
DJNZ R5,LK4
KEND: RET
KEYIN:
MOV DPTR,#KEYTAB
MOVC A,@A+DPTR
MOV @R1,A
DEC R1
RET
KS1: MOV DPTR,#8000H
MOV A,#00H
MOVX @DPTR ,A
INC DPTR
INC DPTR
MOVX A,@DPTR
CPL A
ANL A,#0FH
RET
KEYTAB: DB 00H,0FH,0EH,0DH
DB 01H,02H,03H,0CH
DB 04H,05H,06H,0BH
DB 07H,08H,09H,0AH
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -