Skip to content

Instantly share code, notes, and snippets.

@clive819
Created November 9, 2016 08:48
Show Gist options
  • Save clive819/159e02188070b3ff446ee39abccf00f6 to your computer and use it in GitHub Desktop.
Save clive819/159e02188070b3ff446ee39abccf00f6 to your computer and use it in GitHub Desktop.
keybuf1 EQU 44h
keybuf2 EQU 45h
keycode EQU 46h
port4 EQU 0E8h
shift7LED EQU 0FEh
dispBuf EQU 40h
ORG 0000h
MOV a, #0FFh
MOV port4, a
MOV 0A0h,a
MOV 0B0h,a
MOV keybuf1,#0FFh
MOV keybuf2,#0FFh
MOV keycode,#0
MOV dispBuf, #1
MOV dispBuf+1, #2
MOV dispBuf+2, #3
MOV dispBuf+3, #4
MOV dptr, #led_table
reset: MOV r0, #dispBuf
MOV a, #shift7LED
loop: MOV port4, A
ACALL covled
ACALL getkeycode
ACALL displaykeycode
ACALL delay
INC r0
RL A
JB ACC.4, loop
SJMP reset
Delay:
MOV r4, #1
delay0: MOV r5, #2
delay1: MOV r6, #100
delay2: MOV r7, #100
delay3: DJNZ r7, delay3
DJNZ r6, delay2
DJNZ r5, delay1
DJNZ r4, delay0
RET
Covled: PUSH 0E0h
MOV a, @R0
ANL a, #0fh
MOVC a, @a+dptr
MOV p0, a
POP 0E0h
RET
displaykeycode:
push 0E0h
MOV a,keycode
MOV dispBuf,a
MOV dispBuf+1,a
MOV dispBuf+2, a
MOV dispBuf+3, a
POP 0E0h
RET
getkeycode:
push 0E0h
MOV a,0A0h
MOV keybuf1,a
MOV a,0B0h
MOV keybuf2,a
CJNE a,#0FFh,sub1
MOV r2,#0h
MOV a,keybuf1
back:jnb ACC.0,gotkeycode
INC r2
RR a
CJNE r2,#8h,back
POP 0E0h
RET
gotkeycode:MOV keycode,r2
exitkeycode:POP 0E0h
RET
sub1:
MOV r2,#8h
MOV a,keybuf2
loop1: jnb acc.0,gotkeycode
INC r2
RR a
CJNE r2 ,#16,loop1
POP 0E0h
RET
Led_table:
DB 0c0h
DB 0F9h
DB 0A4h
DB 0B0h
DB 99h
DB 92h
DB 82h
DB 0D8h
DB 80h
DB 90h
DB 88h
DB 83h
DB 0C6h
DB 0A1h
DB 86h
DB 8Eh
END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment