ORG 0000H
LJMP START
ORG 000BH
LJMP TIM0
START:
MOV TMOD,#00000001B
MOV IE,#10000010B
L1:
LCALL KEY;
CLR EA
CLR TR0
JB F0,L1
MOV A,22H
RL A
MOV DPTR,#TABLE
MOVC A,@A+DPTR;
MOV TH0,A
MOV 21H,A
MOV A,22H
RL A
INC A
MOVC A,@A+DPTR;
MOV TL0,A
MOV 20H,A
L2:
LCALL KEY;
CLR EA
CLR TR0
JB F0,L1;
LJMP L2;
KEY:
SETB F0
MOV R3,#0F7H;
MOV R1,#00H;
L3:
MOV A,R3;
MOV P1,A;
MOV A,P1;
CLR C;
CPL C;
MOV R5,#04H
L4:
RLC A;
JNC KEYIN;
INC R1;
DJNZ R5,L4;
MOV A,R3;
CLR C;
CPL C;
RRC A;
MOV R3,A;
JC L3;
RET;
KEYIN:
MOV 22H,R1;
CLR F0;
RET;
TIM0:
PUSH ACC;
PUSH PSW;
MOV TL0,20H;
MOV TH0,21H;
CPL P3.5
POP ACC;
RETI ;
TABLE:
DW 64021,64103,64230,64400
DW 64524,64580,64684,64777
DW 64820,64898,64968,65030
DW 65058,65110,64968,65030
END
ORG 0000H
LJMP START
ORG 000BH
LJMP TIM0
START:
MOV TMOD,#00000001B
MOV IE,#10000010B
L1:
LCALL KEY;
CLR EA
CLR TR0
JB F0,L1
MOV A,22H
RL A
MOV DPTR,#TABLE
MOVC A,@A+DPTR;
MOV TH0,A
MOV 21H,A
MOV A,22H
RL A
INC A
MOVC A,@A+DPTR;
MOV TL0,A
MOV 20H,A
L2:
LCALL KEY;
CLR EA
CLR TR0
JB F0,L2;
LJMP L2;
KEY:
SETB F0
MOV R3,#0F7H;
MOV R1,#00H;
L3:
MOV A,R3;
MOV P1,A;
MOV A,P1;
CLR C;
CPL C;
MOV R5,#04H
L4:
RLC A;
JNC KEYIN;
INC R1;
DJNZ R5,L4;
MOV A,R3;
CLR C;
CPL C;
RRC A;
MOV R3,A;
JC L3;
RET;
KEYIN:
MOV 22H,R1;
CLR F0;
RET;
TIM0:
PUSH ACC;
PUSH PSW;
MOV TL0,20H;
MOV TH0,21H;
CPL P3.5
POP ACC;
RETI ;
TABLE:
DW 64021,64103,64260,64400
DW 64524,64580,64684,64777
DW 64820,64898,64968,65030
DW 65058,65110,65157,65178
END