led.asm
来自「采用AT89S52的6位LED动态扫描(共阴」· 汇编 代码 · 共 30 行
ASM
30 行
ORG 0000H
JMP START
ORG 0100H
START: MOV SP,#60H
MOV R0,#79H ;显示数据缓冲区首地址送R0
MOV R3,#01H ;使显示器最右边位亮
LOOP: MOV P3,R3 ;扫描值送P3口
MOV A,@R0 ;取显示数据
ADD A,#0CH ;加上偏移值
MOVC A,@A+PC ;取出字形
MOV P1,A ;送出字形
ACALL DLE ;调用延时子程序
INC R0 ;缓冲数据区地址加1
MOV A,R3
JB ACC.5,LP ;扫描到第6个LED了吗?如果是则跳转到LP
RL A ;没有
MOV R3,A ;R3左移一位,扫描下一个显示
AJMP LOOP
LP: AJMP START
DSEG: DB 3FH,06H,5BH,4FH,66H,6DH ;共阴字形码
DB 7DH,07H,7FH,67H,77H,7CH
DB 39H,5EH,79H,71H,73H,3EH
DB 31H,6EH,1CH,23H,40H,03H
DB 18H,00H,00H,00H
DLE: MOV R7,#02H
DL: MOV R6,#0FFH
DJNZ R6,$
DJNZ R7,DL
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?