首页 > 范文大全 > 正文

基于单片机的LED电子显示屏控制系统的设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于单片机的LED电子显示屏控制系统的设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

[摘 要]LED电子显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。文章介绍了一款以AT89C52单片机为核心,采用串行传输、动态扫描技术来制作的16×16 led电子的多功能显示屏控制系统的设计。

[关键词]LED显示屏;单片机;动态扫描;控制系统

[DOI]10. 13939/j. cnki. zgsc. 2016. 06. 056

1 引 言

2015年笔者申请了北京服装学院的本科生科研训练项目(简称URTP),项目名称是“LED电子显示屏控制系统设计”。本项目的实施力图使学生通过单片机及LED显示屏相关知识的学习,并通过编程软件的使用及元器件的选择,初步掌握硬件电路设计及软件编译的方法,为后续课程的学习及毕业后从事相关的工作奠定一定的基础。

2 系统基本组成及工作原理

本项目采用的LED显示屏部分主要是由4个8×8的 LED 点阵组成的 16×16 的 LED 点阵和行列驱动电路构成,组成后的点阵电子显示屏如图1所示。

图1 点阵电子屏实物

本项目采用的是点阵方式显示汉字,采用这种方式形成显示需要的图形或文字是非常灵活的,因为可以依据不同需要任意组合和变化,只需要提前预设好正确的数据,然后让每个LED 发光器件占据数据中的一位,再通过对点阵上全部的LED灯进行调节和控制,在需要该位置上LED器件发光时,数据中相应的位填1,否则填0,这样就能依照所需显示相应的图形或者文字,再按显示屏的各行各列逐点扫描显示数据,这样能得到所需要的显示效果。

由于汉字在LED点阵电子显示屏上显示比较稳定,因此可以通过计算机的字库提取字模,字库可以提供多种汉字形式,如隶书、微软雅黑和新宋等多种选择方案;另外显示屏显示汉字的大小也有不同规格,常见的有16×16、24×24、32×32、48×48等,汉字的颜色常见的也有红、黄、绿等常见的颜色。本项目使用的四个 8×8 的 LED 点阵组成一个16×16 的LED 点阵。

本项目采用了动态扫描法进行汉字显示。动态扫描方法即指逐行轮流点亮LED,这样扫描的驱动电路可以实现多行(比如 16行)的同名的列共用一套驱动器。具体就16×16 的点阵来说,把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的所有阴极连在一起(共阴极的接法),在显示过程中,应该先送出对应第一行发光管亮灭的数据,然后锁存,再选通第1行使其燃亮一定时间,然后熄灭;再送出第2行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;以此类推,第16行之后,又重新燃亮第1行,反复轮回。当这样轮回的速度足够快,每一行的显示时间大约为4ms,由于人眼的视觉暂留现象,就能看到所要显示的需要汉字了。

采用动态扫描方式进行汉字显示时,每一行都有一个对应的行驱动器,每一行的同名列用的是同一个驱动器。显示的汉字数据通常存储在单片机的CPU中,按8位一个字节的形式顺序排放。在实际汉字显示时需要先把一行中每列的数据都发送至相应的列驱动器上去,这就存在一个显示数据传输的问题。从控制电路到列驱动器的数据传输可以采用并列方式或串行方式。显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。当列数很多时,并列传输的方案是不可取的。

如果采用串行传输的方式,控制电路就能只用一条信号线传输,将列数据一位一位往列驱动器中传送,这样在从硬件方面考虑是十分经济有效的做法。但是,采用串行传输的方式耗时比较长,要传送的数据将按顺序一位一位地传送给列驱动器,等到该行的各列数据全部传输到位以后,该行的各列就能并行的显示出来。这样,对于任一行的显示过程都可以分成两部分,这两部分分别为列数据准备和列数据显示。通过串行传输方式显示汉字,列数据准备时间可能需要的时间会很长,由于行扫描周期确定,这样留给行显示的时间就会大大缩短,最后可能会影响到所要显示汉字的亮度和稳定性。

如果要解决上述串行传输过程中列数据准备和列数据显示的时间不统一的问题,可以使用重叠处理的方法。重叠处理的方法是指在显示某行每列数据的同一时刻,单片机也传送下一列数据。为了达到重叠显示的效果,列数据在显示过程中就需要有锁存的功能。通过上述种种分析,可以得出列驱动电路应具有的功能。同时,对于列数据准备功能来说,还需要能实现串入并出的功能;对于列数据显示来说,应具有并行锁存的功能。这样,该行已准备好的数据进入并行锁存器达到显示效果时,串并移位寄存器就能够准备下一行的列数据显示,从而在不会影响本行数据的显示情况下实现汉字的准确无误显示。

控制器电路采用单片机,主要负责控制存储显示数据模块,安排控制信号的定时与顺序、控制驱动LED显示点阵的电路等,驱动电路分为行驱动电路和列驱动电路,用来驱动LED显示点阵。

本项目的驱动电路由行驱动和列驱动构成。为了充分利用单片机的接口,行驱动电路中加入了一个4-16线译码器74HC154。列驱动由集成电路74HC595构成,它具有一个8位串入并出的移位寄存器和一个8位输出锁存器的机构,可以实现在显示本行列数据的同时,传送下一行的列数据,即达到重叠处理的目的。

3 系统软件设计

该LED点阵电子显示屏各模块的显示方式分为静态和动态两种。其中静态显示原理简单、控制方便,但硬件接线复杂,通常是一帧画面输入以后便可永久显示,如果我们需要改变显示内容,就必须重新输出新的点阵数据,这样不便于大屏幕的制造,成本高,可靠性低,而且需要的译码驱动装置也很多,因此,在实际应用中一般采用动态显示方式。

动态显示采用扫描的方式工作,把整个LED屏幕分为若干部分,每一幅画面的显示是显示完一部分后,又显示第二部分……直到显示完成最后一部分又重新开始显示第一部分,重复循环进行,在重复扫描速度足够快的情况下,由于视觉暂留效应,我们看到的就是一幅稳定的画面,也就是说采用动态扫描显示需要不断进行画面的刷新,在这种方式下其显示驱动电路可重复利用,引线也大大减少,从而使硬件成本降低,且显示屏幕的发光二极管轮流发光,使耗电量大大降低,大屏幕的制造、维护更容易,并且能够增加可靠性。

该点阵式LED显示屏采用动态扫描显示方式,这种显示方式巧妙地利用了人眼的视觉暂留特性。将连续的几帧画面高速的循环显示,只要帧速率高于24帧/秒,人眼看起来就是一个完整的、相对静止的画面。

根据程序设计的结构和思路,把单片机AT89C52在点阵电子屏的显示任务中的工作量分为以下两个部分。

3. 1 中断扫描显示任务

扫描显示任务负责把数据依次发送到列驱动器74HC595,并按严格的时序低电平选通16根行扫描线,使每一列数据对应着一个行线状态,部分中断程序如图2所示。

图2 中断处理程序

3. 2 移动处理任务

移动处理任务负责完成显示字符逐点阵向左移动的算法处理,这是最基本的显示效果。其他大部分显示效果如左移几个汉字后暂停,全屏定格显示等都是以逐位左移为基础。对显示字符的移动,实质上是对显示缓冲区 BufferDat内数据的移动。其中,实现汉字上移的程序如图3所示。

图3 汉字上移程序

4 结 论

该项目的研究使学生掌握LED电子显示屏的基本显示原理和设计方法,对LED电子显示屏这个行业有较为深刻的了解和认识。并且对所学习的一些理论知识进行实践,通过该项目掌握了单片机软硬件开发工具的使用方法,为后续课程的学习及毕业后从事相关的工作奠定一定的基础,同时为以后从事相关行业的工作积累实际工作经验。