硬件电路:
P1.0 ~ P1.5 外接 6 个 LED,分别称为 D1 ~ D6,低电平发光。
P0.0 ~ P0.3 外接 4 个 按键,分别称为 K1 ~ K4。
P3.2 ~ P3.3 外接 2 个 按键,分别称为 K5 ~ K6。
用汇编语言编程进行控制,要求:
当按下 K1 时,D1 发光;
按下 K2 时,D2、D3 发光;
按下 K3 时,D4、D5、D6 发光;
按下 K4 时,D1、D3、D6 发光;
按下 K5 时,全部熄灭;
按下 K6 时,全亮。
用查询方式完成上述动作。
做而论道编写的程序如下:
ORG 0000H
START:
JNB P0.0, K1
JNB P0.1, K2
JNB P0.2, K3
JNB P0.3, K4
JNB P3.2, K5
JNB P3.3, K6
SJMP START
;-----------------------
K1:
CALL DL10MS
JB P0.0, START
JNB P0.0, $
CLR P1.0 ;按下K1键时,D1二极管发光;
SJMP START
;-----------------------
K2:
CALL DL10MS
JB P0.1, START
JNB P0.1, $
CLR P1.1 ;按下K2键时,D2、D3发光;
CLR P1.2
SJMP START
;-----------------------
K3:
CALL DL10MS
JB P0.2, START
JNB P0.2, $
CLR P1.3 ;按下K3键时,D4、D5、D6发光;
CLR P1.4
CLR P1.5
SJMP START
;-----------------------
K4:
CALL DL10MS
JB P0.3, START
JNB P0.3, $
CLR P1.0 ;按下K4键时,D1、D3、D6发光。
CLR P1.4
CLR P1.5
SJMP START
;-----------------------
K5:
CALL DL10MS
JB P3.2, START
JNB P3.2, $
MOV P1, #255 ;按下K5是全部熄灭;
SJMP START
;-----------------------
K6:
CALL DL10MS
JB P3.3, START
JNB P3.3, $
MOV P1, #0 ;按下K6是全亮;
SJMP START
;-----------------------
DL10MS:
MOV R6, #10
DJNZ R7, $
DJNZ R7, $
DJNZ R6, $ - 4
RET
;-----------------------
END