KEY:ACALL INT
ACALL KSI
JNZ LK1
ACALL DIR
AJMP KEY
INT:CLR LCDD
CLR LCDM
CLR KEYC
SETB KEYR
RET
KSI:clr p0.0
clr p0.1
clr p0.2
clr p0.3
SETB KEYC
NOP
CLR KEYC
MOV P0,#0FFH
CLR KEYR
NOP
NOP
MOV A,P0
SETB KEYR
CPL A
ANL A,#0FH
RET
LK1:ACALL DIR
ACALL INT
ACALL KSI
JNZ LK2
ACALL DIR
AJMP KEY
LK2:MOV R2,#0FEH
MOV R4,#00H
LK4:ACALL INT
MOV P0,R2
SETB KEYC
nop
CLR KEYC
MOV P0,#0FFH
NOP
CLR KEYR
NOP
NOP
MOV A,P0
NOP
NOP
SETB KEYR
JB ACC.0,LONG
MOV A,#00H
AJMP LKP
LONG:JB ACC.1,LTWO
MOV A,#4H
AJMP LKP
LTWO:JB ACC.2,LTHR
MOV A,#8H
AJMP LKP
LTHR:JB ACC.3,NEXT
MOV A,#0CH
AJMP LKP
LKP:ADD A,R4
PUSH ACC
LK3:ACALL DIR
ACALL KSI
JNZ LK3
POP ACC
MOV R5,A
RL A
ADD A,R5
MOV DPTR,#TABLE
JMP @A+DPTR
NEXT:INC R4
MOV A,R2
JNB ACC.3,KND
RL A
MOV R2,A
AJMP LK4
KND:AJMP KEY
TABLE:LJMP PRG0
LJMP PRG1
LJMP PRG2
LJMP PRG3
LJMP PRG4
LJMP PRG5
LJMP PRG6
LJMP PRG7
LJMP PRG8
LJMP PRG9
LJMP PRG10
LJMP PRG11
LJMP PRG12
LJMP PRG13
LJMP PRG14
LJMP PRG15
DIR:MOV R6,25
DIR1:MOV R7,200
DJNZ R7,$
DJNZ R6,DIR1
RET
PRG0:CLR P2.0
SETB P2.0
LCALL DIR
CLR P2.1
SETB P2.1
LCALL DIR
CLR P2.2
SETB P2.2
AJMP KEY
PRG1:CLR P2.0
SETB P2.0
LCALL DIR
CLR P2.1
SETB P2.1
LCALL DIR
CLR P2.2
SETB P2.2
AJMP KEY
PRG2:CLR P2.0
SETB P2.0
LCALL DIR
CLR P2.1
SETB P2.1
LCALL DIR
CLR P2.2
SETB P2.2
AJMP KEY
PRG3:CLR P2.0
SETB P2.0
LCALL DIR
CLR P2.1
SETB P2.1
LCALL DIR
CLR P2.2
SETB P2.2
AJMP KEY
PRG4:CLR P2.0
SETB P2.0
LCALL DIR
CLR P2.1
SETB P2.1
LCALL DIR
CLR P2.2
SETB P2.2
AJMP KEY
PRG5:CLR P2.0
SETB P2.0
LCALL DIR
CLR P2.1
SETB P2.1
LCALL DIR
CLR P2.2
SETB P2.2
AJMP KEY
PRG6:CLR P2.0
SETB P2.0
LCALL DIR
CLR P2.1
SETB P2.1
LCALL DIR
CLR P2.2
SETB P2.2
AJMP KEY
PRG7:CLR P2.0
SETB P2.0
LCALL DIR
CLR P2.1
SETB P2.1
LCALL DIR
CLR P2.2
SETB P2.2
AJMP KEY
PRG8:CLR P2.0
SETB P2.0
LCALL DIR
CLR P2.1
SETB P2.1
LCALL DIR
CLR P2.2
SETB P2.2
AJMP KEY
PRG9:CLR P2.0
SETB P2.0
LCALL DIR
CLR P2.1
SETB P2.1
LCALL DIR
CLR P2.2
SETB P2.2
AJMP KEY
PRG10:CLR P2.0
SETB P2.0
LCALL DIR
CLR P2.1
SETB P2.1
LCALL DIR
CLR P2.2
SETB P2.2
AJMP KEY
PRG11:CLR P2.0
SETB P2.0
LCALL DIR
CLR P2.1
SETB P2.1
LCALL DIR
CLR P2.2
SETB P2.2
AJMP KEY
PRG12:CLR P2.0
SETB P2.0
LCALL DIR
CLR P2.1
SETB P2.1
LCALL DIR
CLR P2.2
SETB P2.2
AJMP KEY
PRG13:CLR P2.0
SETB P2.0
LCALL DIR
CLR P2.1
SETB P2.1
LCALL DIR
CLR P2.2
SETB P2.2
AJMP KEY
PRG14:CLR P2.0
SETB P2.0
LCALL DIR
CLR P2.1
SETB P2.1
LCALL DIR
CLR P2.2
SETB P2.2
AJMP KEY
PRG15:CLR P2.0
SETB P2.0
LCALL DIR
CLR P2.1
SETB P2.1
LCALL DIR
CLR P2.2
SETB P2.2
AJMP KEY