单片机编程:用接在P2.7口的按键控制接在P1.0口LED灯

来源:百度知道 编辑:UC知道 时间:2024/05/31 03:58:04
本人写的程序,编译通过,写片之后,效果不行,请高手给看看,有什么不妥之处
ORG 0000H ;THIS PROGRAM IS NOT OK
AJMP MAIN
MAIN: MOV P2,#FFH
DD: MOV A,P2 ;读P2口
JNB ACC.7,DD ;判断P2.7口有否按键按下
ACALL DELAY20MS
MOV A,P2
JNB ACC.7,DD
CPL P1.0
DD1: MOV A,P2;以下三句判断按键释放
JNB ACC.7,DD
AJMP DD1
AJMP MAIN
DELAY20MS: MOV R2,#20
DL20MS: ACALL DELAY1MS
DJNZ R2 DL20MS
RET
DELAY1MS: MOV R0,#02H
DL2: MOV R1,#247
DL1: DJNZ R1 DL1
DJNZ R0 DL2
RET
END
用JB ACC.7,DD,LED不亮,用JNB ACC.7,DD,LED常亮

ORG 0000H ;THIS PROGRAM IS NOT OK
AJMP MAIN
MAIN: MOV P2,#0FFH ;FF前面加个0
DD: MOV A,P2
JB ACC.7,DD ;P2.7=1,没有按键按下,继续等
ACALL DELAY20MS ;等20ms
MOV A,P2
JB ACC.7,DD ;P2.7=1,没有按键按下,继续等
;P2.7=0,往下执行
CPL P1.0

DD1: MOV A,P2 ;以下三句判断按键释放
JNB ACC.7,DD1 ;P2.7=0,没有松开,继续等
AJMP MAIN ;松开了,转移到开始