流水灯_按键检测
功能:按键控制LED亮、灭
硬件连接:
程序:
ORG 0000H
AJMP START
ORG 0030H
START:
SETB P2.0 ;将P2.0置为输入功能
MAIN:
MOV R0,#0FFH ;-1→R0
MOV R2,16 ;循环次数16
MOV DPTR,#TAB ;将数据表起始数据放入数据指针DPTR中
LOOP:
INC R0
MOV A,R0
MOVC A,@A+DPTR ;以累加器A作为数据表中的数组下标,将数据表中数据提取出来,并存入累加器A
SHOW:
JNB P2.0,INCR ;按键检测,若P2.0=0(按键按下)则跳转
JMP SHOW ;否则,继续检测
INCR:
JNB P2.0,INCR ;若按键按下未松开,继续等待
MOV P0,A
LCALL DELAY
LCALL DELAY
LCALL DELAY
DJNZ R2,LOOP
AJMP MAIN
RET
DELAY: ;延时程序
MOV R7,#250
D1: MOV R6,#250
D2: DJNZ R6,D2
DJNZ R7,D1
RET
TAB:
DB 01111110B
DB 00111100B
DB 00011000B
DB 00000000B
DB 00011000B
DB 00111100B
DB 01111110B
DB 11111111B
DB 01010101B
DB 10101010B
DB 00000111B
DB 00001111B
DB 00011111B
DB 00111111B
DB 01111111B
DB 11111111B
END
仿真效果: