LED点阵汉字显示移动程序

LED点阵汉字显示移动程序,第1张

FOR T598D

*********LED 点阵显示示例程序***********************

CSLED EQU 8000H

CSc1 EQU CSLED 列1~8 273

CSc2 EQU CSLED+1H 列9~16 273

CSr1 EQU CSLED+2H 行1~8 374

CSr2 EQU CSLED+3H 行9~16 374

ORG 0000H

MOV SP,#60H

INIT: MOV A,#0H 关闭LED列显示

MOV DPTR,#CSc1

MOVX @DPTR,A

MOV DPTR,#CSc2

MOVX @DPTR,A

MOV A,#0FFH 关闭LED行显示

MOV DPTR,#CSr1

MOVX @DPTR,A

MOV DPTR,#CSr2

MOVX @DPTR,A

D: MOV R5,#00H 设定汉字表格初始值

MOV R4,#01H 设定列扫描初始值,从第一列开始

DISP:

MOV A,R5

RL ACC

MOV DPTR,#HZKE 此处设定所要显示的字符

MOVC A,@A+DPTR

CPL ACC 代码取反,决定显示的阴阳

MOV DPTR,#CSr1

MOVX @DPTR,A

MOV A,R5

RL ACC

INC ACC

MOV DPTR,#HZKE 此处设定所要显示的悄散字符

MOVC A,@A+DPTR

CPL ACC

MOV DPTR,#CSr2

MOVX @DPTR,A

MOV DPTR,#CSc1

MOV A,R4

MOVX @DPTR,A

RL ACC

MOV R4,ACC

INC R5

LCALL DELAY

MOV A,#00H 清上次显示值

MOVX @DPTR,A 关闭行、列

MOV A,#0FFH

MOV DPTR,#CSR1

MOVX @DPTR,A

CJNE R5,#8H,DISP判是否显示到第八列

MOV R5,#08H 设定汉字表格初始值

MOV R4,#01H 设定列扫描初始值,从第九列开始

DISP2:

MOV A,R5

RL ACC

MOV DPTR,#HZKE 此处设定所要显示的字符

MOVC A,@A+DPTR

CPL ACC

MOV DPTR,#CSr1

MOVX @DPTR,A

MOV A,R5

RL ACC

INC ACC

MOV DPTR,#HZKE 此处设定所要显示的字符

MOVC A,@A+DPTR

CPL ACC

MOV DPTR,#CSr2

MOVX @DPTR,A

MOV DPTR,#CSc2

MOV A,R4

MOVX @DPTR,A

RL ACC

MOV R4,ACC

INC R5

LCALL DELAY

MOV A,#00H 清上次显示值

MOVX @DPTR,A 关闭行、列

MOV A,#0FFH

MOV DPTR,#CSR2

MOVX @DPTR,A

CJNE R5,#10H,DISP2 判是否扫描到则宽第十六列

SJMP D

******** 延时子程序,协调字符显示速度 *************

DELAY: MOV R7,#1H

DL1: MOV R6,#00H

DL2: DJNZ R6,DL2

DJNZ R7,DL1

RET

********字符点阵字库 ***************

HZ16 字符编码排列

数 D7 R1 (0 2 --28 30)

| |

| |

据 D0 R8 (1 3 --29 31)

运行zimo.exe程序,在参数设置里选择“纵向取模启盯氏”,16*16点阵,宋体、小四号(12)

取模方式为A51格式

取完模之后,将16~32字节间隔插入1~15字节,详见下面示例字模。

*****************************************************

ZIMO程序生成的字模

显示“爱迪克”

HZAI:

DB 00H,02H,4DH,69H,59H,49H, 6FH,59H, 0C9H,89H,99H,0E9H,89H,09H,0CH,00H

DB 02H,04H,05H,09H,32H,0E2H,54H,54H, 48H, 58H,64H,44H, 02H,03H,02H,00H

HZDI:

DB 02H,82H,73H, 20H,00H,0FH, 09H,09H, 09H,0FFH,09H,09H,09H,0FH,00H,00H

DB 02H,04H,0F8H,04H,02H,0FAH,12H,12H, 12H,0F2H,12H,12H,12H,0FAH,02H,00H

HZKE:

DB 0FFH,0BFH,0EFH,0BFH,0EFH,0BFH,0EFH,0BBH,0E0H,001H,0EFH,0FFH,0EFH,0FFH,0EFH,0FFH ;片

DB 0E0H,00FH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0DFH,0EFH,0DFH,0EFH,0BFH,0EFH,07FH,0FFH

******************************************************

转换后的字模

HZAI:

DB 00H,02H,02H,04H,4DH,05H,69H,09H,59H,32H,49H,0E2H,6FH,54H,59H,54H

DB 0C9H,48H,89H,58H,99H,64H,0E9H,44H,89H,02H,09H,03H,0CH,02H,00H,00H

HZDI:DB 02H,02H,82H,04H,73H,0F8H,20H,04H,00H,02H,0FH,0FAH,09H,12H,09H,12H

DB 09H,12H,0FFH,0F2H,09H,12H,09H,12H,09H,12H,0FH,0FAH,00H,02H,00H,00H

HZKE:DB 0FFH,0BFH,0EFH,0BFH,0EFH,0BFH,0EFH,0BBH,0E0H,001H,0EFH,0FFH,0EFH,0FFH,0EFH,0FFH 片

DB 0EFH,0EFH,0EFH,0EFH,0E0H,00FH,0EFH,0EFH,0BFH,0EFH,07FH,0FFH,0DFH,0EFH,0DFH,0EFH

****************************************************

END

这是程序请求帮忙修改

这不仅仅是简单的移位,我也做过,你生成字型码的时候是横着扫描吗?如果是,移位也会横向,如果不是,移位的话会乱码。存放字型码的最好是Uchar code,这样占用数据空间会减小。你移位的老中时候用中间变量和指针进滑含扰行 *** 作。

还有,你扫信旦码方式,我做的是1/4行扫。你的如果是逐行扫描就不太一样 了。

不知什么

字,上一个6

个字的。

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:

(0)

(1)

机(2)

电(3)

工(4)

程(5)

系(6)

DB

000H,

000H,

000H,

000H,

000H,

000H,

000H,

000H

DB

000H,

000H,

000H,

000H,

000H,

000H,

000H,

000H"

",0

DB

000H,

000H,

000H,

000H,

000H,

000H,

000H,

000H

DB

000H,

000H,

000H,

000H,

000H,

000H,

000H,

000H"局缓脊

",1

DB

000H,

008H,

040H,

00CH,

040H,

006H,

0FEH,

07FH

DB

0FEH,

07FH,

020H,

023H,

020H,

032H,

000H,

01CH

DB

0E0H,

00FH,

0F0H,

003H,

0D0H,

00FH,

0F0H,

01FH

DB

030H,

010H,

000H,

010H,

000H,

01CH,

000H,

01CH"机",2

DB

000H,

000H,

000H,

000H,

0E0H,

001H,

0E0H,

007H

DB

020H,

007H,

020H,

005H,

0FEH,

03FH,

0FEH,

07FH

DB

090H,

042H,

010H,

042H,

0F0H,

043H,

0F0H,

041H

DB

000H,

040H,

000H,

078H,

000H,

038H,

000H,

000H"电",3

DB

000H,

000H,

000H,

010H,

000H,

010H,

000H,

010H

DB

020H,

010H,

020H,

010H,

020H,

010H,

0E0H,

01FH

DB

0F0H,

00FH,

010H,

008H,

010H,

008H,

010H,

008H

DB

000H,

008H,

000H,

008H,

000H,

008H,

000H,

000H"工",4

DB

080H,

010H,

080H,

018H,

090H,

00CH,

090H,

006H

DB

0F8H,

0FFH,

0FCH,

0FFH,

04CH,

026H,

040H,

024H

DB

070H,

025H,

078H,

025H,

048H,

03FH,

0E8H,

03FH

DB

0B8H,

012H,

0B8H,

012H,

000H,

010H,

000H,

010H"程",5

DB

000H,

000H,

000H,

000H,

000H,

040H,

008H,

074H

DB

048H,

034H,

068H,

006H,

078H,

047H,

0D8H,

0FDH

DB

0CCH,

0FEH,

066H,

002H,

026H,

00BH,

000H,

01BH

DB

000H,

032H,

000H,

020H,

000H,

000H,

000H,

000H"系",6

END


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12415880.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存