P1.5、P1.6、P1.7,三个输入端,它们的高电平,是单独输入的吗?
每个输入,都能等2秒以后吗?
假设各个按键,是顺序的按下,且间隔2S以上。
--------------
ORG 0000H
JMP START
ORG 0030H
START:
;-------------------------------------------------
;(1)如果P1.5高电平,则P1.1=0和P1.0=0 2秒后P1.0=1,P1.1=0
PRG5:
JNB P1.5, $ ;为0就是没有按下,重新读入.
CALL DELAY ;延时10ms
JNB P1.5, PRG5 ;为0就是没有按下,重新读入.
;-------------------------------
CLR P1.1
CLR P1.0
CALL DL1S
CALL DL1S
SETB P1.1
; SETB P1.0
;-------------------------------------------------
;(2)如果P1.6高电平,则P1.1=0和P1.4=0 2秒后P1.0=1,P1.4=1
PRG6:
JNB P1.6, $ ;为0就是没有按下,重新读入.
CALL DELAY ;延时10ms
JNB P1.6, PRG6 ;为0就是没有按下,重新读入.
;-------------------------------
CLR P1.1
CLR P1.4
CALL DL1S
CALL DL1S
SETB P1.1
SETB P1.4
;-------------------------------------------------
;(3)如果P1.7高电平,则P1.0=0和P1.3=0 2秒后P1.0=1,P1.3=0
PRG7:
JNB P1.7, $ ;为0就是没有按下,重新读入.
CALL DELAY ;延时10ms
JNB P1.7, PRG7 ;为0就是没有按下,重新读入.
;-------------------------------
CLR P1.0
CLR P1.3
CALL DL1S
CALL DL1S
SETB P1.0
; SETB P1.3
;-------------------------------------------------
;(4)如果P1.6高电平,则P1.4=0和P1.3=0 2秒后P1.4=1,P1.3=1
PRG6_2:
JNB P1.6, $ ;为0就是没有按下,重新读入.
CALL DELAY ;延时10ms
JNB P1.6, PRG6_2;为0就是没有按下,重新读入.
;-------------------------------
CLR P1.3
CLR P1.4
CALL DL1S
CALL DL1S
SETB P1.3
SETB P1.4
SJMP START
;-------------------------------------------------
DELAY: ;延时5ms
MOV R6, #10
MOV R7, #200
DJNZ R7, $
DJNZ R6, $ - 2
RET
DL1S:
MOV R5, #200
ACALL DELAY
DJNZ R5, $ - 2
RET
END
;==================================================
温馨提示:答案为网友推荐,仅供参考