基于单片机的点阵LED显示屏的原理.doc_第1页
基于单片机的点阵LED显示屏的原理.doc_第2页
基于单片机的点阵LED显示屏的原理.doc_第3页
基于单片机的点阵LED显示屏的原理.doc_第4页
基于单片机的点阵LED显示屏的原理.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

点阵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的排阻上拉。行方向则由416译码器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由这个原理可以看出, 无论显示何种字体或图像, 都可以用这个方法来分析出它的扫描代码从而显示在屏幕上。不过现在有很多现成的汉字字模生成软件, 我们就不必自己去画表格算代码了。在网上汉字字模生成软件有很多种,本文告别推荐一种汉字字模生成软件,HZDotReader V3.0,我个人认为这个软件的功能相当完美。最主要的一个功能是可以选择汉字编码的取模方式,如下图10所示。本例中的“我”字的取模方式为以横向8个连续点构成一个字节,最左边的点为字节的最低位,即BIT0,最右边的点为BIT7。很少有字模软件可以实现这一功能。 (图10)下面给出一个简单的静态显示“我”字的程序清单:#include#define CCED2 0x0000 /*我 */unsigned char code word_zai162 = /*我 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;void main() char scan,i,j; P0=0;P1=0;P2=0;while(1) scan=0; for(i=0;i16;i+) P1=scan;for(j=0;j50;j+) /显示五十次 P2=word_zaii0 ; P0=word_zaii1 ; P0=0;P2=0; scan+; 四、 安装与调试把显示屏电路和显示屏驱动电路分别做在两块电路板上,显示屏电路的行扫描信号输出管脚和列显示信号数据输出管脚分别引用两排16针的排针引出,排针长的那一头接到电路板的底层,以方便插入驱动电路的插槽中。同样在驱动电路用两排16脚的插槽将行扫描信号输出管脚和列显示信号数据输出管脚引出,在画PCB时应当注意屏电路PCB中两排排针之间的距离要与驱动电路PCB中两排插槽之间的距离一样,才能保证能正确地将显示屏电路板排到驱动电路电路板上方。以下为该电路的实物图与PCB。在画PCB时注意双面电路板的做板规则,特别要注意以下 几个方面:双面电路板的过孔比较大,一般在80mil以上;定位孔的放置;要在顶层焊接时,应注意在顶层插上元器件后是否会影响到焊接,如芯片等管脚比较短的元器件,当插在电路板后要在顶层焊接其管脚是比较困难的;安装安电路后,可将以下的测试程序烧到AT89S52中,将AT89S52插入驱动电路, 若每一个发光二极管都能被点亮,则说明电路硬件做成功。 以下为测试程序清单:#includevoid main() char scan,i; P0=0;P1=0;P2=0;while(1) scan=0; for(i=0;i16;i+) P1=scan; P0=0xff; P2=0xff; scan+;若发现二极管不是全被点亮则要用万用表来仔细地检测。一般会出现的问题是电路板上的线被短路,断开等。根据不亮的二极管来找电路出现的问题应该是比较容易的。所以本电路的调试过程是较简单的。当然调试前必须要确保所购买的每一块显示屏都是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论