按一下按键灯就亮,延时 10s 后自动灭。在亮灯期间再按一下键,灯立即就灭。
用定时器及中断实现。
LED EQU P3.3
KEY EQU P3.7
ORG 0000H
LJMP START
ORG 000BH
LJMP T0_INT
ORG 0030H
;--------------------------------
START:
MOV TMOD, #01H
MOV TH0, #HIGH(65536-62500)
MOV TL0, #LOW(65536-62500)
MOV IE, #82H
;--------------------------------
LP1:
SETB LED ;关灯
JB KEY, LP1 ;等待第一次按键
CALL DELAY
JB KEY, LP1
JNB KEY, $
;-------------------
MOV R2, #160 ;10s
SETB TR0 ;启动定时器
CLR LED ;开灯
LP2:
JNB TR0, LP1 ;如果已经定时结束,就去等待第一次按键
JB KEY,
1