碰见一个特别棘手的问题 我用汇编语言编那个独立按键检测数码管显示程序 比如按下第一个按键输出一 按下第二个输出二 以此类推 但是按下第三第四个 按键却数码管显示不了
求大神讲解
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN:
MOV P3, #0FFH
JB P3.7, Y
ACALL DELAY
ACALL K1
Y:
JB P3.6, Z
ACALL DELAY
ACALL K2
Z:
JB P3.5, X
ACALL DELAY
ACALL K3
X:
JB P3.4, MAIN
ACALL DELAY
ACALL K4
;;按键1控制单元
K1:
CLR P1.0 ;选中千位
MOV P0,0F9H ;;输出1
LCALL DELAY
MOV P0, #0FFH ;;清楚显
SETB P1.0 ;关闭显示
RET
;;按键K2控制函数;;;;;;;
K2:
CLR P1.1 ;选中百位
MOV P0,0A4H ;;输出2
LCALL DELAY
MOV P0, #0FFH ;;清楚显示
SETB P1.1 ;关闭显示
RET
;;按键K3控制
K3:
CLR P1.2 ;选中十位
MOV P0,0B0H ;;输出3
LCALL DELAY
MOV P0, #0FFH ;;清楚显示
SETB P1.2 ;关闭显示
RET
;;K4控制;
K4:
CLR P1.3 ;选中个位
MOV P0,99H ;;输出4
LCALL DELAY
MOV P0, #0FFH ;;清楚显示
SETB P1.3 ;关闭显示
RET
;;延时函数;;;
DELAY:
MOV R5, #10
DJNZ R5,$
RET
END |