LED点阵汉字显示移动程序
小弟有段LED点阵汉字显示程序,主程序基本没什么问题,但是汉字移动程序不知道怎么在主程序上修改编写,希望有朋友能够帮忙编写!下面的回答是我的程序,各位高手帮忙修改下!添加...
小弟有段LED点阵汉字显示程序,主程序基本没什么问题,但是汉字移动程序不知道怎么在主程序上修改编写,希望有朋友能够帮忙编写!
下面的回答是我的程序,各位高手帮忙修改下!添加移动程序就可以了! 展开
下面的回答是我的程序,各位高手帮忙修改下!添加移动程序就可以了! 展开
1个回答
2010-05-19
展开全部
;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
这是程序请求帮忙修改
;*********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
这是程序请求帮忙修改
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询