预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

点阵式汉字LED显示屏电路原理与制作 汉字显示屏广泛应用与汽车报站器,广告屏等。本文介绍一种实用的汉字显示屏的制作,考虑到电路元件的易购性,没有使用8*8的点阵发光管模块,而是直接使用了256个高量度发光管,组成了16行16列的发光点阵。同时为了降低制作难度,仅作了一个字的轮流显示,实际使用时可根据这个原理自行扩充显示的字数。 1汉字显示的原理: 我们以UCDOS中文宋体字库为例,每一个字由16行16列的点阵组成显示。即国标汉字库中的每一个字均由256点阵来表示。我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素范围内的任何图形。 用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 由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出它的扫描代码从而显示在屏幕上。 不过现在有很多现成的汉字字模生成软件,我们就不必自己去画表格算代码了。 软件打开后输入汉字,点“检取”,十六进制数据的汉字代码即可自动生成,把我们所需要的竖排数据复制到我们的程序中即可。 我们把行列总线接在单片机的i0口,然后把上面分析到的扫描代码送入总线,就可以得到显示的汉字了。在这个例子里,由于一共用到16行,16列,如果将其全部接入89c51 单片机,一共使用32条io口,这样造成了io资源的耗尽,系统也再无扩充的余地。实际应用中我们使用4-16线译码器74ls154来完成列方向的显示。而行方向16条线则接在p0口和p2口。 程序清单: ORG00H LOOP:MOVA,#0FFH;开机初始化,清除画面 MOVP0,A;清除P0口 ANLP2,#00;清除P2口 MOVR2,#200 D100MS:MOVR3,#250;延时100毫秒 DJNZR3,$ DJNZR2,D100MS MOV20H,#00H;取码指针的初值 l100:MOVR1,#100;每个字的停留时间 L16:MOVR6,#16;每个字16个码 MOVR4,#00H;扫描指针清零 MOVR0,20H;取码指针存入R0 L3:MOVA,R4;扫描指针存入A MOVP1,A;扫描输出 INCR4;扫描指针加1,扫描下一个 MOVA,R0;取码指针存入A MOVDPTR,#TABLE;取数据表的上半部分的代码 MOVCA,@A+DPTR MOVP0,A;输出到P0 INCR0;取码指针加1,取下一个码。 MOVA,R0 MOVDPTR,#TABLE;取数据表下半部份的代码 MOVCA,@A+DPTR MOVP2,A;输出到P2口 INCR0 MOVR3,#02;扫描1毫秒 DELAY2:MOVR5,#248; DJNZR5,$ DJNZR3,DELAY2 MOVA,#00H;清除屏幕 MOVP0,A ANLP2,#00H DJNZR6,L3;一个字16个码是否完成? DJNZR1,L16;每个字的停留时间是否到了? MOV20H,R0;取码指针存入20H CJNER0,#0FFH,L100;8个字256个码是否完成? JMPLOOP;反复循环 TABLE: ;汉字“倚”的代码 db01H,00H,02H,00H,04H,00H,1FH,0FFH db0E2H,00H,22H,00H,22H,0FCH,26H,88H db2AH,88H,0F2H,88H,2AH,0FAH,26H,01H