打印
[ZLG-ARM]

[求助]LED点阵移动程序编写

[复制链接]
1805|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
思行合一|  楼主 | 2010-8-14 10:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟有段关于LED16*16点阵程序,现在想在这段程序中编写一段移动程序,但是不知道如何下手以及修改,在此特向各位高手求助,望各位不吝赐教,谢谢了!以下是那段程序:
;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

相关帖子

沙发
无语凝咽| | 2010-8-14 10:42 | 只看该作者
首先,看到汇编就头大;

其次,使用移位就OK了,很简单的

使用特权

评论回复
板凳
hotpower| | 2010-8-14 17:52 | 只看该作者
这种方法首次见到

使用特权

评论回复
地板
winloop| | 2010-8-15 17:41 | 只看该作者
模拟计算机前后台方式

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

215

主题

1391

帖子

2

粉丝