;=== 00-99计数器 ===
Count EQU 30H
SP1 BIT P3.7 ;定义P3.7为按键
ORG 0000H
START:MOV Count,#00H
NEXT:MOV A,Count
MOV B,#10
DIV AB
MOV DPTR,#TABLE ;取表的有效地址
MOVC A,@A+DPTR ;查表
MOV P0,A
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
WAIT:JB SP1,WAIT ;是否有按键?无,则继续检测
LCALL DELY10MS ;有,则延时消抖
JB SP1,WAIT ;是否真的有按键?无,则重新检测
INC Count ;有,则Count加1
MOV A,Count
JNB SP1,$
CJNE A,#100,NEXT ;按键次数是否为100,不是,则跳转至NEXT
LJMP START ;是,则重新计数
;=== 10ms延时子程序 ===
DELY10MS:MOV R6,#20
D1:MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
;=== 0-9的段码值 ===
TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END