8x8 led.asm
来自「PROTUES是个高效率的在线仿真软件,该锦集为在线仿真的应用.里面的资料,包含」· 汇编 代码 · 共 68 行
ASM
68 行
RS_CNT EQU 31H
DSP_CNT EQU 34H ;显示模式
ORG 00H
START: MOV RS_CNT,#00H
MOV DSP_CNT,#00H ;显示模式初始值
MOV DPTR,#SWITCH ;设置程序跳转表首地址
A0: MOV A,DSP_CNT
ADD A,DSP_CNT ;双字节指令,偏移量乘2
JMP @A+DPTR ;根据显示模式值跳转
SWITCH: SJMP DSP_0 ;程序跳转表
SJMP DSP_1
SJMP DSP_2
SJMP DSP_3
DSP_0: MOV P0,#00H ;显示模式0,行线全部置0
MOV A,#01H ;列扫描码初值
L0: MOV P3,A ;输出显示
LCALL DELAY
RL A ;列扫描码移位
INC RS_CNT
MOV R0,RS_CNT
CJNE R0,#24,L0 ;模式0显示完毕?
INC DSP_CNT ;显示下一模式
MOV RS_CNT,#00H
LJMP A0
DSP_1: MOV P0,#00H ;显示模式1,行线全部置0
MOV A,#80H ;列扫描码初值
L1: MOV P3,A ;输出显示
LCALL DELAY
RR A ;列扫描码移位
INC RS_CNT
MOV R0,RS_CNT
CJNE R0,#24,L1 ;模式1显示完毕?
INC DSP_CNT ;显示下一模式
MOV RS_CNT,#00H
LJMP A0
DSP_2: MOV P3,#0FFH ;显示模式2,列线全部置1
MOV A,#7FH ;行扫描码初值
L2: MOV P0,A ;输出显示
LCALL DELAY
RR A ;行扫描码移位
INC RS_CNT
MOV R0,RS_CNT
CJNE R0,#24,L2 ;模式2显示完毕?
INC DSP_CNT ;显示下一模式
MOV RS_CNT,#00H
LJMP A0
DSP_3: MOV P3,#0FFH ;显示模式3,列线全部置1
MOV A,#0FEH ;行扫描码初值
L3: MOV P0,A ;输出显示
LCALL DELAY
RL A ;行扫描码移位
INC RS_CNT
MOV R0,RS_CNT
CJNE R0,#24,L3 ;模式3显示完毕?
MOV DSP_CNT,#00H ;显示下一模式
MOV RS_CNT,#00H
LJMP A0
DELAY: MOV R5,#10 ;延时子程序
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?