原创 点阵式汉字LED显示屏的原理与制作转

2007-3-9 11:13 2060 4 7 分类: MCU/ 嵌入式
点阵式汉字LED显示屏的原理与制作

分类: 单片机



汉字显示屏广泛应用与汽车报站器,广告屏等。本文介绍一种实用的汉字显示屏的制作,考虑到电路元件的易购性,没有使用8*8的点阵发光管模块, 而是直接使用了256个高量度发光管,组成了16行16列的发光点阵。同时为了降低制作难度, 仅作了一个字的轮流显示,实际使用时可根据这个原理自行扩充显示的字数。


1汉字显示的原理:


我们以UCDOS中文宋体字库为例,每一个字由16行16列的点阵组成显示。即国标汉字库中的每一个字均由256点阵来表示。我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字, 也可以显示在256像素


范围内的任何图形。




点击看大图



我们以显示汉字“大”为例,来说明其扫描原理:


在UCDOS中文宋体字库中,每一个字由16行16列的点阵组成显示。如果用


8位的AT89C51单片机控制, 由于单片机的总线为8位,一个字需要拆分为2个部分。


一般我们把它拆分为上部和下部,上部由8*16点阵组成, 下部也由8*16点阵组成。


在本例中单片机首先显示的是左上角的第一列的上半部分,即第0列的p00---p07口。方向为p00到p07 ,显示汉字“大”时,p05点亮,由上往下排列,为p0.0 灭,p0.1 灭, p0.2 灭p0.3 灭, p0.4 灭, p0.5 亮,p0.6 灭,p0.7 灭。即二进制00000100,转换为16进制为 04h.。


上半部第一列完成后,继续扫描下半部的第一列,为了接线的方便,我们仍设计成由上往下扫描,即从p27向p20方向扫描,从上图可以看到,这一列全部为不亮, 即为00000000,16进制则为00h。


然后单片机转向上半部第二列,仍为p05点亮,为00000100,即16进制04h.


这一列完成后继续进行下半部分的扫描,p21点亮,为二进制00000010,即16进制02h.


依照这个方法,继续进行下面的扫描,一共扫描32个8位, 可以得出汉字“大”


的扫描代码为:


04H,00H,04H,02H,04H,02H,04H,04H


04H,08H,04H,30H,05H,0C0H,0FEH,00H


05H,80H,04H,60H,04H,10H,04H,08H


04H,04H,0CH,06H,04H,04H,00H,00H


由这个原理可以看出, 无论显示何种字体或图像, 都可以用这个方法来分析出它的扫描代码从而显示在屏幕上。


不过现在有很多现成的汉字字模生成软件, 我们就不必自己去画表格算代码了。



314970498939288484.jpg



软件打开后输入汉字,点“检取”,十六进制数据的汉字代码即可自动生成,把我们所需要的竖排数据复制到我们的程序中即可。


我们把行列总线接在单片机的i0口,然后把上面分析到的扫描代码送入总线, 就可以得到显示的汉字了。 在这个例子里,由于一共用到16行,16列, 如果将其全部接入89c51单片机, 一共使用32条io口,这样造成了io资源的耗尽,系统也再无扩充的余地。 实际应用中我们使用4-16线译码器74ls154来完成列方向的显示。 而行方向16条线则接在p0口和p2口。



点击看大图



程序清单:


ORG 00H


LOOP: 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 ;取码指针存入R0


L3: 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 R0


MOV 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,0FFH


db 0E2H,00H,22H,00H,22H,0FCH,26H,88H


db 2AH,88H,0F2H,88H,2AH,0FAH,26H,01H


db 63H,0FEH,26H,00H,02H,00H,00H,00H


;以下分别输入天,一,出, 宝,刀,屠,龙,的代码,略。


end


电路中行方向由p0口和p2口完成扫描,由于p0口没有上拉电阻,因此接一个4.7k*8的排阻上拉。 如没有排阻,也可用8个普通的4.7k 1/8w电阻。为提供负载能力,接16个2n5551的NPN三极管驱动。


列方向则由4—16译码器74LS154完成扫描,它由89C51的P1.0---P1.3控制。同样,驱动部分则是16个2N5401的三极管完成的。


电路的供电为一片LM7805三端稳压器,耗电电流为100Ma左右。


采用一块12*20cm的万能电路板,应当选用质量好些的发光管,(否则有坏点现象, 更换起来较麻烦)首先将256个发光管插入电路板,注意插入方向,同时使高度一致,行方向直接焊接起来, 列方向则搭桥架空焊接,完成后用万用表测试一下如有不亮的更换掉。


然后找一个电脑硬盘的数据线, 截取所需的长度,分别将行,列线引出至电路的相关管脚即可。原理图为了简洁,故只画出了示意图,行列方向只画出了2个三极管,屏幕只画出4个发光管, 实际上发光管为256只,三极管行列方向各16只,一共32只。焊接过程认真仔细一天时间即可完成全部制作。将程序编译后烧写入89c51, 插入40pin Ic座,即可看到屏幕轮流显示:“倚天一出宝刀屠龙”。


当然,你可将程序的汉字代码部分更换为您所需要的代码即可显示你所需要的汉字。



点击看大图



上图为实物的照片,对本文感兴趣的读者可在本期无线电杂志的配套光盘中找到他的完成程序,或者到作者网站www.51c51.com下载。


元件清单:



名称

数量

规格

4.7k 1/8w

32

电阻

4.7k*8排阻

1


2n5551

16

小功率NPN三极管

2n5401

16

小功率PNP三极管

led

256

3mm白发红高亮度

22P

2

瓷片电容

10uf/50v

1

电解电容

100uf/25v

2

电解电容

AT89C51

1

AT89S51

40pin Ic座

1

89c51用

12M

1

晶体

74LS154

1

74HC154

LM7805

1

稳压IC

电源插座

1

 

稳压电源

1

9-12V/200Ma稳压电源

万用电路板

1

12*20(cm)
转自http://lyf1975.blog.163.com/blog/static/135053812006111513324237/
PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户4405 2007-4-6 12:49

收藏

用户4257 2007-3-27 21:01

我正在做汉字动态显示的毕业设计,谢谢你的资源支持

用户1053025 2007-3-14 11:17

图片看不见。。。
相关推荐阅读
用户41648 2008-11-13 09:16
步进电机。。(转载)
虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算...
用户41648 2008-07-22 14:17
转载 3V与5V混合系统中逻辑器接口问题
3V与5V混合系统中逻辑器接口问题  3V与5V混合系统中逻辑器接口问题1 引言近年来,随着便携式数字电子产品棗笔记本计算机、数字式移动电话、寻呼机、手持式测试仪表等的迅速发展,要求使用体积小、功耗低...
用户41648 2008-07-03 15:16
GB ma
GB码 GB 即"国标"的汉语拼音缩写,为中华人民共和国国家标准的意思. 国标编码就是中华人民共和国信息交换汉字编码标准(GB2312-80), 在此标准中制定了每一个汉字及非汉字符号的编码。规定将汉...
用户41648 2008-06-30 14:21
俄文866编码及其与ANSI编码的转换
АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщыьэюяёъ(俄文866编码,用一个字节表示,在WORD中用西里尔文(DOS))80...
用户41648 2008-05-07 16:15
液晶扫描一帧的行数N的倒数叫占空比,半选择点和选择点的电压比叫偏压。
液晶扫描一帧的行数N的倒数叫占空比,半选择点和选择点的电压比叫偏压。很抽象?具体的说液晶是n行的(com端的数目),占空比就是1/n,在电压一定的情况下,行数的增加意味着占空比下降,使液晶的显示质量下...
用户41648 2008-03-21 09:30
区位码和国标码转换
国标与机内码的转换   国标码并不等于区位码,它是由区位码稍作转换得到,其转换方法为:先将十进制区码和位码转换为十六进制的区码和位码,;这样就得了一个与国标码有一个相对位置差的代码,;再将这个代码的第...
我要评论
3
4
关闭 站长推荐上一条 /3 下一条