ORG 0000H
LJMP MAIN
ORG 000BH
CLR ET0
LJMP A_T0
ORG 0030H
MAIN: ......
MOV TMOD,#01H
MOV TH0,#XXH ;20mS时间常数
MOV TL0,#XXH
SETB ET0
SETB TR0
SET EA
......
A_T0: PUSH PSW
PUSH ACC
MOV TH0,#XXH ;重置20mS时间常数
MOV TL0,#XXH
A_KEY1: MOV A,MF_KEY1
CJNE A,#4,A_KEY1_0
DJNZ MT_KEY1,A_KEY2
MOV MF_KEY1,#0
SJMP A_KEY2
A_KEY1_0:CJNE A,#0,A_KEY1_1
MOV MF_KEY1,#1
KEY1键按下转A_KEY2
MOV MF_KEY1,#0
SJMP A_KEY2
A_KEY1_1:CJNE A,#1,A_KEY1_2
MOV MF_KEY1,#2
KEY1键按下转A_KEY2
MOV MF_KEY1,#0
SJMP A_KEY2
A_KEY1_2:CJNE A,#2,A_KEY1_3
MOV MF_KEY1,#3
KEY1键弹起转A_KEY2
MOV MF_KEY1,#2
SJMP A_KEY2
A_KEY1_3:CJNE A,#3,A_KEY1_4
MOV MF_KEY1,#4
KEY1键弹起转A_KEY5
MOV MF_KEY1,#2
SJMP A_KEY2
A_KEY1_4:MOV MF_KEY1,#0
SJMP A_KEY2
A_KEY1_5:MOV MT_KEY1,#100 ;延时20mS*100=2S
LCALL KEY1键处理子程序
A_KEY2: MOV A,MF_KEY2
CJNE A,#4,A_KEY2_0
DJNZ MT_KEY2,A_KEY3
MOV MF_KEY2,#0
SJMP A_KEY3
A_KEY2_0:CJNE A,#0,A_KEY2_1
MOV MF_KEY2,#1
KEY2键按下转A_KEY3
MOV MF_KEY2,#0
SJMP A_KEY3
A_KEY2_1:CJNE A,#1,A_KEY2_2
MOV MF_KEY2,#2
KEY2键按下转A_KEY3
MOV MF_KEY2,#0
SJMP A_KEY3
A_KEY2_2:CJNE A,#2,A_KEY2_3
MOV MF_KEY2,#3
KEY2键弹起转A_KEY3
MOV MF_KEY2,#2
SJMP A_KEY3
A_KEY2_3:CJNE A,#3,A_KEY2_4
MOV MF_KEY2,#4
KEY2键弹起转A_KEY5
MOV MF_KEY2,#2
SJMP A_KEY3
A_KEY2_4:MOV MF_KEY2,#0
SJMP A_KEY3
A_KEY2_5:MOV MT_KEY2,#100 ;延时20mS*100=2S
LCALL KEY2键处理子程序
A_KEY3: ......
......
A_KEY_END:POP ACC
POP PSW
SETB ET0
RETI