参考程序
KEY BIT P1.0
LED BIT P1.7
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: SETB LED ;LED 灭
LL1: JB KEY , LL1 ;等待按键第一次按下
LCALL YS ;延时去抖
JB KEY,LL1 ;按键第一次按下 则往下执行
LL12: MOV TMOD,#10H
MOV TH1, # 00H ;送时间常数较小 定时时间长
MOV TL1, #1CH
SETB TR1
LL13: JNB TF1, LL13
CLR TF1
CPL LED ;低频闪
LL2: JB KEY,LL12 ;判断按键第二次按下?
LCALL YS ;延时去抖
JB KEY, LL12 ;按键第二次按下 则往下执行
LL22: MOV TMOD,#10H
MOV TH1, # 2CH ;增大时间常数
MOV TL1, #0FCH
LL23: JNB TF1, LL23
CLR TF1
CPL LED ;中频闪
LL3: JB KEY,LL22 ;判断按键第三次按下?
LCALL YS ;延时去抖
JB KEY, LL22 ;按键第三次按下 则往下执行
LL32: MOV TMOD,#10H
MOV TH1, # 0ACH ;继续增大时间常数
MOV TL1, #0FCH
LL33: JNB TF1, LL33
CLR TF1
CPL LED ;高频闪
LL4: JB KEY,LL32 ;判断按键第四次按下?
LCALL YS ;延时去抖
JB KEY, LL32 ;按键第四次按下 则停止闪
CLR TR1 ;停止计时
LJMP MAIN
YS: MOV R7,#20 ;延时子程序
YY: MOV R6,#200
YL: DJNZ R6,YL
DJNZ R7,YY
RET
呵呵 按你的要求写的 给加分吗?
什么啊