冰冷上 发布于 2007-9-21 22:46:26
[求助]16*16点阵的原理图和程序
哪位大哥有16*16点阵的原理图和程序吗?我参照下图的资料做了一个,不能工作。
「该帖子被 冰冷上 在 2007-9-21 22:49:38 编辑过」 卖蛋筒 发布于 2007-9-21 23:17:35
 我 这里有8*8的点阵,但和16*16原理是一样的,我是把16*16简化而已,供你参考吧.程序采用行\列扫描法.由于程序暂时找不到,无法上转.有空帮你编一个给你参考.(这是我读大学的第一个作品,丑了点不要见笑啊),
要不你把你的程序传上来大家一起分析. 冰冷上 发布于 2007-9-21 23:52:48
下面这个是程序清单,有没有错误呢?是根据我上面那个图接的硬件电路写的。源程序在压缩文件里。ORG 00HLOOP: MOV A,#0FFH ;开机初始化,清除画面MOV P0,A ;清除P0口 ANL P2,#00 ;清除P2口MOV R2,#200 D100MS: MOV R3,#250 ;延时100毫秒 DJNZ R3,$ DJNZ R2,D100MS MOV 20H,#00H ;取码指针的初值l100: MOV R1,#100 ;每个字的停留时间L16: MOV R6,#16 ;每个字16个码 MOV R4,#00H ;扫描指针清零 MOV R0,20H ;取码指针存入R0L3: MOV A,R4 ;扫描指针存入A MOV P1,A ;扫描输出 INC R4 ;扫描指针加1,扫描下一个 MOV A,R0 ; 取码指针存入A MOV DPTR,#TABLE ;取数据表的上半部分的代码 MOVC A,@A+DPTR MOV P0,A ; 输出到P0 INC R0 ;取码指针加1,取下一个码。 MOV A,R0 MOV DPTR,#TABLE ;取数据表下半部份的代码 MOVC A,@A+DPTR MOV P2,A ;输出到P2口 INC R0MOV R3,#02 ;扫描1毫秒DELAY2: MOV R5,#248 ; DJNZ R5,$ DJNZ R3,DELAY2 MOV A,#00H ;清除屏幕 MOV P0,A ANL P2,#00H DJNZ R6,L3 ;一个字16个码是否完成? DJNZ R1,L16 ;每个字的停留时间是否到了? MOV 20H,R0 ;取码指针存入20H CJNE R0,#0FFH,L100 ;8个字256个码是否完成? JMP LOOP ;反复循环 TABLE :;汉字“倚”的代码db 01H,00H,02H,00H,04H,00H,1FH,0FFHdb 0E2H,00H,22H,00H,22H,0FCH,26H,88Hdb 2AH,88H,0F2H,88H,2AH,0FAH,26H,01Hdb 63H,0FEH,26H,00H,02H,00H,00H,00H;以下分别输入天,一,出, 宝,刀,屠,龙,的代码,略。end
「该帖子被 冰冷上 在 2007-9-22 0:03:57 编辑过」
|