基于单片机的LED点阵显示系统的设计

基于单片机的LED点阵显示系统的设计

 0.引言

     LED显示屏是由发光二极管构成的显示点阵,人们通过控制每个LED的亮灭实现图形或字符的显示。由于LED显示屏亮度高、视角广、工作电压低、功耗小、寿命长、耐冲击、性能稳定,因而被广泛应用于机场、商场、医院、宾馆、证券市场等公共场所。本文以单片机为控制核心设计和制作了一种汉字显示系统,其成本低廉,内容更新简便。

1.显示原理

1.1 LED点阵显示屏

      将多个LED按矩阵方式排列在一起,如图1所示,就构成了一个LED点阵显示屏。其中各个LED引脚按照一定的规律连接,以**常见的8*8单色LED点阵共阳型显示器为例,其内部电路结构和外形规格如图1所示。

      16*16单色LED点阵显示屏可由4块8*8单色LED点阵显示器组合而成,即16行16列,16*16=256像素。如果采用共阳型连接方式,即每行的LED阳极连接在一起,每列的LED阴极连接在一起

1.2 显示原理

      对于共阳型LED点阵显示屏,如果采用动态扫描方式,扫描电路就可以实现多行发光二极管的同名列共用一套驱动器。动态扫描,简单说就是逐行轮流点亮。具体以8*8点阵模块为例显示字符“B”的过程如图2所示。即先送出对应于第一行发光二极管亮灭的数据0FFH并锁存,然后选通第一行,即送行数据80H,延时一段时间后,送行数据00H,第一帧显示结束;再送第二行的列数据87H并锁存,然后选通第二行,即送行数据40H点亮相同时间后,送行数据00H,相应二极管熄灭,第二帧显示结束;以此类推第8行显示之后,又重新点亮第一行,周而复始。当这样轮回的速度足够快(每秒24次以上)时,就能看到显示屏上稳定的字符B了。上述列数据即为字符 B了。上述列数据即为字符B的字模数据。

 

1.3 汉字字模的生成

      由于要显示内容的不确定性,汉字字模的生成仅靠用户自己构建是不可能的。如果依靠单片机完成字模的创建和显示控制,则由于单片机运算能力有限,是无法实现汉字的选定和实时显示。为此利用PC机和相关软件,于先生成所要显示汉字的字模。

      通常可以利用UCDOS的汉字库构造需要显示的汉字字模。在UCDOS汉字库中汉字均以行字模的形式存储,只要确定了汉字在字库中的位置和行字模的长度,就可以将需要汉字的行字模读出。汉字在字库中的位置可以通过汉字的机内码根据如下公式加以确定:

                                 

           

     采用PCtoLCD 2002字模软件。可以方便的生成字模数据,如图3所示。将生成的字模数据复制到系统源程序中。

                               

2 系统硬件电路设计

      图4给出的是可以显示一个16*16汉字系统的框图。系统由AT89C51为主控芯片,显示屏由4块8*8LED共阴连接组成,其列驱动电路由2片74HC595构成,扩展为具有锁存、串并移位和三态输出的16位移位寄存器,字模数据由此输出;行驱动电路由1片4-16线译码器74HC154构成,从DCBA输入增量数据,将输出逐行扫描信号。K1、K2、K3 为显示方式控制键,按键选择可实现LED点阵显示屏卷帘、上移、左移等显示输出。该系统在Proteus软件环境下仿真获得良好的显示效果。

3 系统软件设计

3.1  主程序流程图

      系统主程序开始以后首先是对系统环境初始化,包括设置串口、定时器、中断和端口。然后进行键盘扫描,如果K1键按下字符左移输出。主程序流程见图5所示。

   

3.2  显示驱动程序

      显示驱动程序查询当前亮点的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。为消除在切换行显示数据的时候产生拖尾现象,在中断程序中,驱动程序先要关闭显示屏,等显示数据打入输出锁存器后,然后再输入新的行选通信号,重新打开显示。显示驱动程序如下:

4  结束语

      本设计以AT89C51为系统的控制核心,采用动态扫描的方法实现对16*16LED点阵显示屏的控制。该系统通过仿真和实物制作,均获得良好的显示效果,证明这种方案是可行的,而且具有体积小、硬件电路结构简单和容易实现等特点。但也存在更换显示内容时需要对AT89C51进行重新编程的问题,如果增加ISP编程电路,可通过USB下载电缆对单片机程序数据进行及时更新。

 

网站导航

售前咨询:023-58556299

技术咨询:023-58722688

返回顶部