ORG 0000h
AJMP main0
ORG 0030h
MAIN0:
CLR 21H ;清标志
// MOV P0,#0
main:
MOV C,P0.0 ;检测按键
JC main
MOV R6,#200 ;设定延时
MOV R7,#200
TT0:
JNB 21H,TT2 ;检测灯状态
tt:
MOV C,P0.0 ;检测按键
JNC tt1
JNB 20H,MAIN ;检测时间标志
CLR 20H
AJMP TT3
TT2:
MOV C,P0.0 ;检测按键
JNC TT2
TT3:
CPL 21H ;改变灯状态
CPL p2.0
AJMP main
TT1: NOP ;延时但不是子程序
NOP
NOP
NOP
NOP
NOP
DJNZ R6,TT
MOV R6,#200
DJNZ R7,TT
MOV R7,#200
SETB 20H
AJMP TT
END
这个是用51单片机做的按键控制灯亮或者灭的,程序中我有好几处不懂。对于51单片机来说IO口都是默认的0电平,当进入TT2的时候程序怎么出来的(按键按下就将IO口拉低)。程序又是怎么进入TT3的? |