📄 走马灯.asm
字号:
;该程序为四种亮灭形式的跑马灯,在默认情况下是从左往右依次点亮熄灭六个二极管,当按下按P3.4;;;时,变为从右往左,当按下按键P3.5时,变为从中间向两边扩散,当按下按键P3.6时,变为从右往左当;按下按键P3.7时,变为从右往左.程序所用芯片为AT89S52,由P1口控制六个二极管。
ORG 0000H
START: SJMP ZUOYOU
ACALL KEYSCAN
SJMP START
;按键处理程序
KEYSCAN: JNB P3.4,YOUZUO
JNB P3.5,SAN
JNB P3.6,HHL
JNB P3.7,ZUOYOU
RET
;从左往右点亮程序
ZUOYOU: MOV P0,#0FFH
MOV R0,#0DFH
ZY: ACALL KEYSCAN
MOV P1,R0
LCALL DL1MS
LCALL DL1MS
MOV A,R0
RR A
MOV R0,A
CJNE A,#0FFH,ZY
RET
;从右往左点亮程序
YOUZUO: MOV P0,#0FFH
MOV R0,#0FEH
YZ: ACALL KEYSCAN
MOV P1,R0
LCALL DL1MS
LCALL DL1MS
MOV A,R0
RL A
MOV R0,A
CJNE A,#0BFH,YZ
ACALL KEYSCAN
SJMP YOUZUO
;从中间扩散程序
SAN: MOV P0,#0FFH
MOV R0,#00H
SN: ACALL KEYSCAN
MOV A,R0
MOV DPTR,#TAB1
MOVC A,@A+DPTR
MOV P1,A
LCALL DL1MS
LCALL DL1MS
INC R0
MOV A,R0
CJNE A,#03H,SN
ACALL KEYSCAN
SJMP SAN
;列表1
TAB1: DB 0F3H,0ECH,0CEH
;亮红黄绿
HHL: MOV P0,#0FFH
MOV R0,#00H
HHL1: ACALL KEYSCAN
MOV A,R0
MOV DPTR,#TAB2
MOVC A,@A+DPTR
MOV P1,A
LCALL DL1MS
LCALL DL1MS
INC R0
MOV A,R0
CJNE A,#03H,HHL1
ACALL KEYSCAN
SJMP HHL
;列表2
TAB2: DB 0DBH ,0EDH, 0F6H
DL1MS: MOV R6,#00H
DL1: MOV R7,#00H
DL2: DJNZ R7,DL2
DJNZ R6,DL1
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -