点阵LED显示屏的原理与制作.docx
《点阵LED显示屏的原理与制作.docx》由会员分享,可在线阅读,更多相关《点阵LED显示屏的原理与制作.docx(12页珍藏版)》请在冰点文库上搜索。
![点阵LED显示屏的原理与制作.docx](https://file1.bingdoc.com/fileroot1/2023-5/4/58c026ca-2b3f-4666-a6e3-b1e3d9864803/58c026ca-2b3f-4666-a6e3-b1e3d98648031.gif)
点阵LED显示屏的原理与制作
点阵LED显示屏的原理与制作
电子协会:
黄世玲截稿2008-12-12
汉字显示屏到处可见,被广泛应用于与汽车报站器,广告屏等。
〔图1〕
网上也有专门多关于汉字显示屏的制作原理的材料,本文是本人参考«例说51单片机〔C语言版〕»〔人民邮电出版社〕并在其基础上加以修改制作成功的单个字16*16LED显示屏的一些体会总结。
本文中的16*16LED显示屏是采纳4块8*8LED合并而成的。
以下图是4个8*8LED组成的显示屏。
〔图2〕
那个地点我把点阵LED显示屏制作的电路原理分成两个部分来介绍即显示屏电路和显示屏驱动电路。
一、显示屏电路
本人用的是共阴极的8*8点阵屏,在市场上是比较容易买到,以下图是8*8点阵屏的实物图。
〔图3〕
8*8点阵屏的内部电路原理图如图4所示,点阵屏有两个类型,一类为共阴极〔左〕,另一类那么为共阳极〔右〕,以下图给出了两种类型的内部电路原理及相应的管脚图。
〔图5〕
LED阵列的显示方式是按显示编码的顺序,一行一行地显示。
每一行的显示时刻大约为4ms,由于人类的视觉暂留现象,将感受到8行LED是在同时显示的。
假设显示的时刻太短,那么亮度不够,假设显示的时刻太长,将会感受到闪耀。
本文采纳低电平逐行扫描,高电平输出显示信号。
即轮番给行信号输出低电平,在任意时刻只有一行发光二极管是处于能够被点亮的状态,其它行都处于熄灭状态。
为了方便调试本文把4块8*8组成的16*16的点阵屏的行信号扫描输出管脚和列信号显示输出管脚分别引到显示屏的两边。
Protel原理图如下:
(图6)
如图6所示的原理图中的Si(i=1,2,3,…,16)代表行扫描信号输出,Di(i=1,2,3,…,16)代表列显示信号输出。
实物电路图的正反面如下:
〔图7〕
二、显示屏驱动电路
显示屏驱动电路的原理图如下:
〔图8〕
显示屏驱动电路要紧由主芯片操纵电路、电源电路、操纵信号放大电路等组成。
1、主芯片操纵电路
该部分电路要紧由AT89S52和74LS154组成。
单片机的P0和P2号操纵显示信号的输出,P1号的低4位操纵74LS154的译码输入,从而操纵扫描信号的输出。
2、电源电路
整个电路的供电由USB电源提供,利用我们的电脑主机USB接口能够输出+5V电压,方便我们在实验室调试。
3、操纵信号放大电路
为提供负载能力,在P0和P2口接16个常用9013的NPN三极管放大驱动信号。
电路中列方向由p0口和p2口完成扫描,由于p0口没有上拉电阻,因此接一个1k*8的排阻上拉。
行方向那么由4—16译码器74LS154完成扫描,它由89C51的P1.0---P1.3操纵。
同样,驱动部分那么是16个9015的三极管完成的。
三、程序与软件
在UCDOS中文宋体字库中,每一个字由16行16列的点阵组成显示,即国标汉字库中的每一个字均由256点阵来表示。
我们能够把每一个点明白得为一个像素,而把每一个字的字形明白得为一幅图像。
事实上那个汉字屏不仅能够显示汉字, 也能够显示在256像素范畴内的任何图形。
用8位的AT89S52单片机操纵, 由于单片机的总线为8位,一个字需要拆分为2个部分如图9所示。
本电路把它拆分为左部和右部,左部由16〔行〕*8〔列〕点阵组成,下部也由16〔行〕*8〔列〕点阵组成。
图〔9〕
为了让大伙儿更清晰的明白得点阵的扫描过程,在这我们以显示汉字〝我〞为例,来说明其扫描原理:
单片机第一由P2口输出显示数据信号给右部分的第一行如图9所示,即第一行的P20---P27口。
方向为P20到P27,显示汉字〝我〞时,P21点亮,由左到右排,为P20灭,P21亮,P22灭,P23灭,P24灭,P25灭,P26灭,P27灭。
即二进制00000010,转换为16进制为0x02。
右部分的第一行完成后,连续扫描左半部的第一行,为了接线的方便,我们仍设计成由左往右扫描,即从P00向P07方向扫描,从上图能够看到,这一行只有P05、P06亮,其它灭,即为00000110,16进制那么为0x60。
然后单片机再次转向右半部第二行,仍为P21、P23点亮,为01010000,即16进制0x0A。
这一行完成后连续进行左半部分的第二行扫描,P02、P03、P04点亮,为二进制00111000,即16进制0x1C。
依照那个方法,连续进行下面的扫描,一共扫描32个8位,能够得出汉字〝我〞的扫描代码为:
0x02,0x60,0x0A,0x1C,0x12,0x10,0x12,0x10,
0x02,0x10,0x7F,0xFF,0x02,0x10,0x12,0x10,
0x14,0x70,0x0C,0x1C,0x04,0x13,0x0A,0x10,
0x49,0x90,0x50,0x10,0x60,0x14,0x40,0x08
由那个原理能够看出,不管显示何种字体或图像,都能够用那个方法来分析出它的扫描代码从而显示在屏幕上。
只是现在有专门多现成的汉字字模生成软件,我们就不必自己去画表格算代码了。
在网上汉字字模生成软件有专门多种,本文辞别举荐一种汉字字模生成软件,HZDotReaderV3.0,我个人认为那个软件的功能相当完美。
最要紧的一个功能是能够选择汉字编码的取模方式,如以下图10所示。
本例中的〝我〞字的取模方式为以横向8个连续点构成一个字节,最左边的点为字节的最低位,即BIT0,最右边的点为BIT7。
专门少有字模软件能够实现这一功能。
(图10)
下面给出一个简单的静态显示〝我〞字的程序清单:
#include
#defineCCED20x0000/*我*/
unsignedcharcodeword_zai[16][2]={/*我CCED2*/
0x02,0x60,0x0A,0x1C,0x12,0x10,0x12,0x10,
0x02,0x10,0x7F,0xFF,0x02,0x10,0x12,0x10,
0x14,0x70,0x0C,0x1C,0x04,0x13,0x0A,0x10,
0x49,0x90,0x50,0x10,0x60,0x14,0x40,0x08};
voidmain()
{charscan,i,j;
P0=0;P1=0;P2=0;
while
(1)
{scan=0;
for(i=0;i<16;i++)
{P1=scan;
for(j=0;j<50;j++)//显示五十次
{P2=word_zai[i][0];
P0=word_zai[i][1];
}
P0=0;P2=0;
scan++;
}
}
}
四、安装与调试
把显示屏电路和显示屏驱动电路分别做在两块电路板上,显示屏电路的行扫描信号输出管脚和列显示信号数据输出管脚分别引用两排16针的排针引出,排针长的那一头接到电路板的底层,以方便插入驱动电路的插槽中。
同样在驱动电路用两排16脚的插槽将行扫描信号输出管脚和列显示信号数据输出管脚引出,在画PCB时应当注意屏电路PCB中两排排针之间的距离要与驱动电路PCB中两排插槽之间的距离一样,才能保证能正确地将显示屏电路板排到驱动电路电路板上方。
以下为该电路的实物图与PCB。
在画PCB时注意双面电路板的做板规那么,专门要注意以下
几个方面:
①双面电路板的过孔比较大,一样在80mil以上;
②定位孔的放置;
③要在顶层焊接时,应注意在顶层插上元器件后是否会阻碍到焊接,如芯片等管脚比较短的元器件,当插在电路板后要在顶层焊接其管脚是比较困难的;
安装安电路后,可将以下的测试程序烧到AT89S52中,将AT89S52插入驱动电路,假设每一个发光二极管都能被点亮,那么说明电路硬件做成功。
以下为测试程序清单:
#include
voidmain()
{charscan,i;
P0=0;P1=0;P2=0;
while
(1)
{scan=0;
for(i=0;i<16;i++)
{P1=scan;
P0=0xff;
P2=0xff;
scan++;
}
}
}
假设发觉二极管不是全被点亮那么要用万用表来认真地检测。
一样会显现的问题是电路板上的线被短路,断开等。
依照不亮的二极管来找电路显现的问题应该是比较容易的。
因此本电路的调试过程是较简单的。
因此调试前必须要确保所购买的每一块显示屏差不多上完好的。
五、总结
1、为方便调试应该给该电路加上一个下载电路部分,每次烧程序调试都要把芯片取出插入,容易损坏芯片的管脚。
2、为了合适大部分的取字模软件,在画原理图应当考虑列显示屏显示信号输入管脚由左到右的接法;大部分的取字模软件差不多上从左到右的取模方式,因此应当把显示屏的列信号显示输入管脚从左到右接地接到单片机P2,P0口时由高位接到低位。
感谢!