的制作,考虑到电路元件的易购性,没用8*8的点阵发光管模块, 而是直接用了256个高量度发光管,组成了16行16列的发光点阵。同时为了降作难度, 仅作了一个字的轮流显示,实际使用时可根据这个原理自行扩充显示的字数。
我们以UCDOS中文宋体字库为例,每一个字由16行16列的点阵组成显示。即国标汉字库中的每一个字均由256点阵来表示。我们大家可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不但可以显示汉字, 也可以显示在256像素
在UCDOS中文宋体字库中,每一个字由16行16列的点阵组成显示。如果用
一般我们把它拆分为上部和下部,上部由8*16点阵组成, 下部也由8*16点阵组成。
上半部第一列完成后,继续扫描下半部的第一列,为了接线的方便,我们仍设计成由上往下扫描,即从p27向p20方向扫描,从上图能够正常的看到,这一列全部为不亮, 即为00000000,16进制则为00h。
然后单片机转向上半部第二列,仍为p05点亮,为00000100,即16进制04h.
这一列完成后接着来进行下半部分的扫描,p21点亮,为二进制00000010,即16进制02h.
依照这样的解决方法,接着来进行下面的扫描,一共扫描32个8位, 能得出汉字“大”
由这个原理能够准确的看出, 无论显示何种字体或图像, 都可以用这样的解决方法来分析出它的扫描代码从而显示在屏幕上。
不过现在有很多现成的汉字字模生成软件, 我们就不必自己去画表格算代码了。
软件打开后输入汉字,点“检取”,十六进制数据的汉字代码即可自动生成,把我们所需要的竖排数据复制到我们的程序中即可。
我们把行列总线口,然后把上面分析到的扫描代码送入总线, 就能够获得显示的汉字了。 在这个例子里,由于一共用到16行,16列, 如果将其全部接入89c51单片机, 一共使用32条io口,这样造成了io资源的耗尽,系统也再无扩充的余地。 实际应用中个人会使用4-16线来完成列方向的显示。 而行方向16条线口。
电路中行方向由p0口和p2口完成扫描,由于p0口没有上拉电阻,因此接一个4.7k*8的排阻上拉。 如没有排阻,也可用8个普通的4.7k 1/8w电阻。为提供负载能力,接16个2n5551的NPN三极管驱动。
采用一块12*20cm的万能电路板,应当选用质量好些的发光管,(否则有坏点现象, 更换起来较麻烦)首先将256个发光管插入电路板,注意插入方向,同时使高度一致,行方向直接焊接起来, 列方向则搭桥架空焊接,完成后用万用表测试一下如有不亮的更换掉。
然后找一个电脑硬盘的数据线, 截取所需的长度,分别将行,列线引出至电路的相关管脚即可。原理图为了简洁,故只画出了示意图,行列方向只画出了2个三极管,屏幕只画出4个发光管, 实际上发光管为256只,三极管行列方向各16只,一共32只。焊接过程认真仔细一天时间就可以完成全部制作。将程序编译后烧写入89c51, 插入40pin Ic座,即可看到屏幕轮流显示:“倚天一出宝刀屠龙”。
当然,你可将程序的汉字代码部分更换为您所需要的代码即可显示你所需要的汉字。