DIY小型LED点阵显示系统

DIY小型LED点阵显示系统
近年来LED点阵技术发展迅猛,LED屏已经悄悄地在我们身边普及:使用场所涉及到证券市场、银行、机场、车站、商场等等,包括北京奥运会开幕式上的“巨幅画卷”也使用了巨大的LED显示屏。LED屏以其使用寿命长、环境适应能力强、亮度高、可视角大等优点受到用户的青睐。
LED点阵对电子爱好者往往有着很大的吸引力,但是由于制作点阵屏接线过于麻烦,不具备制版条件的业余爱好者对此总是望而却步。笔者利用**电路板焊接了一块32X16大小的LED屏,使用AT89S52型单片机对其进行控制。现将资料整理出来,与广大电子爱好者分享。
 
整体方案与硬件电路设计
 
本显示屏采用列扫描、直接送行显示码的方式工作,基本显示原理在后面的软件设计部分提及。分辨率为32X16的显示屏由8个共阳型LED点阵单元构成。共阳型LED点阵单元(8X8)的结构示意图如图1,由行输入高电平点亮。
 
 
1 LED点阵单元结构示意图
 
图2是8个LED点阵单元级联的接线图。R1~R16是限流电阻,用来保护LED的安全;VT1~VT32是32只PNP型三极管,在这里起到开关的作用:通过控制B01~B32来使得在任何时刻只有**的列导通以点亮该列,当列切换的速度足够快时,由于人眼的视觉暂留现象,看上去整个屏都是亮的,这就是动态扫描的基本原理。
 
 
2 8个点阵单元的级联
 
其实图2已经构成一块LED屏了,如果微处理器有足够大的驱动能力和足够多的I/O口,就可以直接驱动这块LED屏了。但是为了能用AT89S52单片机来控制它,我们需要再加一些驱动电路和译码电路,以提供足够的驱动能力以及简化与单片机的连接。
行驱动电路使用两片74HC245(图3),这是比较常用的驱动芯片,当DIR接高电平时,A端为输入、B端为输出。
列扫描电路则利用了两片4-16线译码器74LS154(图4),U4、U5分别对应左、右屏。A、B、C、D为输入、Y0~Y15为输出。此外,还有CS1、CS2两根线分别使能左、右屏译码器,也就是使能左、右屏。CS1、CS2为低电平使能。
图5是AT89S52单片机**小系统电路。
 
 
行驱动电路
 
 
译码器扫描电路
 
 
单片机电路
 
 

[page]

硬件制作
 
LED屏在业余条件下的制作很麻烦,光8块LED点阵单元就有128根飞线。相信对于很多朋友来说动手焊这么多飞线还是第一次,包括笔者。所以,制作过程要求有足够的细心和耐心,千万不要急于求成,每天花点时间做,这样可以**自己不会因疲倦而导致频繁出错。尽量做到零错误,否则检查起来会很麻烦。
 
1.元器件选择
 
该制作涉及到的元器件并不复杂,这里就不再细说。只是要强调一点:LED点阵单元的引脚排布并不像图1那么规则,不同规格不同型号便有区别。所以提醒大家购买LED点阵单元后,需结合所查资料和**表确定其引脚排列。就笔者使用的LG12088BH型点阵单元的引脚排列如表1(仅供参考):
 
表1 LG12088BH型点阵单元的引脚排列(仅供参考)
行(从上到下依次为) 行1 行2 行3 行4 行5 行6 行7 行8
引脚号 9 14 8 12 1 7 2 5
列(从左到右依次为) 列1 列2 列3 列4 列5 列6 列7 列8
引脚号 13 3 4 10 6 11 15 16
 
电路板选用双面**电路板,具有较硬的材质也便于焊接走线。笔者使用了一大一小两块电路板,分为显示面板和背部译码器电路板两部分。
 
2.硬件制作图解
 
笔者一直追求美观和制作工艺,虽然焊接较麻烦,但仍然没有采用“飞线一团糟”的焊接方式,较好地利用了细金属导线和质量较好的漆包线。
图6是LED显示面板,驱动芯片和三极管已焊在该板上;图7是显示面板背面的连线方法:16根行线使用细金属丝贯穿整块电路板,然后用漆包线将各个点阵单元的行引脚连接至对应行线上,再用漆包线连接处于同一竖条上的点阵单元的列引脚,此时列线与行线成矩阵状。**后再焊接限流电阻、三极管基极电阻及相关排针。电阻、排针都置于显示面板反面(图8)。
LED显示面板焊接完成后(图9),再在另一块板上焊好译码器电路(图10)。为实现译码器电路与显示面板的电气连接,笔者巧妙地利用了排针与排座(图11)。
完工后的成品如图12所示。下面就可以使用AT89S52单片机对其进行控制了(图13),如果你还没有单片机系统板,那就得再加一加班了。
 
 
6 LED显示面板
 
 
显示面板背面的连线
 
 
焊接好限流电阻、三极管基极电阻及排针
 
 
显示面板大功告成
 
 
10  译码器电路板
 
 
11 译码器电路板与显示面板通过插座连接
 
 
12 成品
 
 
13 利用单片机系统板对其进行控制
 
软件设计
 
1.基本显示原理
 
一个国标汉字是由16X16即256个点(像素)来构成的,显示一个汉字该亮哪些点这些复杂的工作都交给取模软件来完成,同时,取模软件也负责把要显示的汉字转化成程序中要用到的显示代码,代码以一定的规律表征了该亮的点(一般用“1”表示)与不该亮的点(一般用“0”表示),一共256位。单片机负责将这些代码一段一段有规律地送到LED屏,比如第一次输出表示第1列的16位代码点亮第1列、紧接着再输出16位代码去点亮第2列……直到点亮第16列然后再重新点亮第1列……,如此循环,就完成了这个汉字的显示。单片机输出的速度足够快时,由于视觉暂留现象使得人眼在同一时刻感受到了这16列输出的信息,也就是看到了这个汉字。由于AT89S52单片机是8位总线结构,一次不能输出16位代码以显示完整的一列,这样我们把一个字拆分为上下两部分,一次送8位,一共送32次,这样同样完成了一个汉字的显示。事实上这个汉字区域也可以是在256象素范围内的任何图形。
再结合硬件电路来理解本文的LED屏:显示代码是通过图3所示的驱动电路送至LED屏的,列的切换则是通过译码器控制三极管VT1~VT32依次轮流导通来实现的,也就是扫描。
 
2.实际例程参考提供下载DIY小型LED点阵显示系统.rar)地址:/Soft/UploadSoft/201405/DIY.rar
 
本期配刊光盘里附带了一些例程和演示视频。所有例程都提供了详细的注解,清晰易懂。基于硬件制作成功的基础上可将这些程序直接下载使用。
这些程序包括:
     LED3216显示一幅图片
     LED3216点阵反白交替显示图片
     LED3216点阵交替变化显示汉字
     LED3216点阵拉幕显示图片
     LED3216点阵拉幕显示汉字
     LED3216点阵流动显示汉字
     LED3216点阵模拟北京奥运会开幕式击缶画面
为方便LED屏的灵活使用,笔者在程序中设置了一系列可变参数,可根据自己的需要在程序开头进行调整。以“LED3216点阵流动显示汉字”工程为例,可以设置移动速度、显示亮度,还可以设置字体大小(**大16X16)以适应显示多种字体和大小的汉字。除了这些功能,程序还会通过计算字数来自动匹配代码长度,这样使得修改显示内容相当方便。对于AT89S52型单片机,实际可在程序里放置**过200个16X16汉字的代码。
 
3.关于取模软件
 
本期配刊光盘里还附带了图15所示的取模软件。这款取模软件不仅可以满足我们对取模字数的要求,还可以方便地设置字体、大小。当然,它也能完成特殊符号、图片的取模。针对笔者提供的所有例程,均需在该软件参数设置栏的“其他选项”里设置纵向取模、字节倒序。
 
 
14 取模软件
 
结语
 
硬件是有限的,但软件是无穷的!相信制作成功后的你已经有用它来设计电子钟的冲动了吧?没错!在硬件的基础上,爱好者可以随意地发挥自己的想象力,利用它开发出更好的产品!
 


网站导航

售前咨询:023-58556299

技术咨询:023-58722688

返回顶部