📄 16x16ml.asm
字号:
;16X16LED点阵流动显示
;逐列、逆向(低位开始)扫描
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: MOV DPTR,#TAB ;字码表初址赋值
MOV R1,#00H ;列控制码
MOV R4,#96 ;移动“ ”及“单片机仿真”6个字符,共96列
CM: MOV R5,#5 ;每屏反复显示5次
MOV R3,#16 ;列数
C1: MOV R2,#0 ;取码指针
C16: MOV P0,#00H
MOV P2,#00H ;关显示
CLR P3.0
MOV A,R2
MOVC A,@A+DPTR ;取当前列显示字码的第一个字节
MOV P0,A ;送1~8行控制口
INC R2
MOV A,R2
MOVC A,@A+DPTR ;取当前列的显示字码的第二个字节
MOV P2,A ;送9~15行控制口
INC R2
MOV P1,R1 ;送列控制码
INC R1
ACALL D1MS ;显示2MS
ACALL D1MS
DJNZ R3,C16 ;一屏16列是否显示完
MOV R3,#16
DJNZ R5,C1 ;未显示5次,继续
INC DPTR ;一屏反复显示5次完,字码表初值加2
INC DPTR
DJNZ R4,CM ;96列未移动完,继续
AJMP MAIN ;96列移动完,返回,重新从“ ”开始显示
D1MS: MOV R6,#2
MOV R7,#248
DJNZ R7,$
DJNZ R6,$-4
RET
TAB: DB 000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ;
DB 000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ;" ",
DB 000H ,000H ,000H ,008H ,000H ,008H ,0E0H ,008H ,0F4H ,00DH ,054H ,005H ,0F4H ,07FH ,0F8H ,07FH ;
DB 01EH ,005H ,0FEH ,005H ,0FAH ,006H ,010H ,002H ,000H ,006H ,000H ,004H ,000H ,000H ,000H ,000H ;"单",0
DB 000H ,000H ,000H ,000H ,000H ,010H ,000H ,01CH ,0FCH ,00FH ,0FCH ,003H ,040H ,002H ,040H ,002H ;
DB 07EH ,07FH ,03EH ,07FH ,020H ,000H ,020H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ;"片",1
DB 000H ,008H ,040H ,00CH ,040H ,006H ,0DCH ,03FH ,0FEH ,03FH ,022H ,011H ,020H ,01DH ,0F0H ,00FH ;
DB 0F0H ,003H ,0F0H ,00FH ,0F0H ,01FH ,010H ,010H ,000H ,01CH ,000H ,01CH ,000H ,010H ,000H ,000H ;"机",2
DB 000H ,001H ,080H ,001H ,0C0H ,000H ,0F0H ,03FH ,0FCH ,03FH ,04CH ,018H ,040H ,00CH ,040H ,027H ;
DB 0CCH ,063H ,0ECH ,079H ,028H ,01FH ,020H ,007H ,020H ,000H ,020H ,000H ,000H ,000H ,000H ,000H ;"仿",3
DB 000H ,000H ,000H ,010H ,000H ,098H ,000H ,0C8H ,0E8H ,06FH ,0E8H ,03FH ,07CH ,01BH ,07EH ,00AH ;
DB 0E6H ,03FH ,0E4H ,07FH ,004H ,06CH ,000H ,004H ,000H ,004H ,000H ,000H ,000H ,000H ,000H ,000H ;"真",4
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -