16X16LED点阵做好 。
程序与8X8不同的是,因为每个显示码只有8 位,而点阵是16位,所以先送第1 列上半的显示码,取码指针加1,再送第1 列下半显示码,取码指针再加1 。而一屏(16X16点阵)显示完后,字码表初值应加2,使本屏相当于上一屏左移一列,实现向左流动。
程序如下 :
;16X16LED点阵流动显示
;逐列、逆向(低位开始)扫描
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: MOV DPTR,#TAB ;字码表初址赋值
MOV R1,#00H ;列控制码
MOV R3,#16 ;列数
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行控制口