以AT89S52单片机设计控制的LED点阵动态显示系统

时间:2022-08-30 11:45:43

以AT89S52单片机设计控制的LED点阵动态显示系统

摘要:本文介绍了以AT89S52单片机为核心的控制器,采用串行传输、动态扫描技术,设计出多功能的LED点阵动态显示系统。

关键词:单片机 动态扫描 点阵 字模软件

1、引言

LED电子显示屏是随着计算机及相关的微电子、光电子技术的迅猛发展而形成的一种新型信息显示媒体。它利用发光二极管构成的点阵模块或像素单元组成可变面积的显示屏幕,以可靠性高、使用寿命长、环境适应能力强、性能价格比高的特点,在短短的十来年中,迅速成长为平板显示的主流产品。

单片机采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成一个小而完善的微型计算机系统,它的结构与指令功能都按照工业控制要求设计,故又称为微控制器( MCU)。

2、硬件电路设计

本系统主要由AT89S52芯片、电源、晶振、复位、行驱动器、列驱动器、LED 点阵和功能按键组成,电源、复位和晶振构成了单片机最小系统,电源采用+5V直流电源;复位是用了上电复位和按键复位,这样单片机开机即可执行程序,在运行过程中也可使用按键复位,让单片机重新开始执行程序;晶振选用常用的12MHz频率,这样单片机的机器周期是1us,比较方便计算时间。

2.1 8×8点阵的显示原理

16×16点阵是由4块8×8点阵组合而成,8×8点阵则是点阵显示的基本模块。8×8点阵由8行8列共64只发光二极管组成,且每只发光二极管是放置在行线和列线的交叉点上。本文使用的点阵是单色行共阳点阵,当点阵的某一行为1电平,某一列为0电平,则行列交叉的二极管为亮;而当某一行线为1电平,某一列线为1时,则行列交叉的二极管为暗;当某一行线为0电平时,无论列线是1电平还是0电平,对应这一行的二极管全部为暗。

2.2 动态显示原理

动态扫描是利用了人眼的视觉暂留效应,逐行或逐列轮流点亮LED,把点阵的16行按一定顺序(从上至下或从下至上)进行点亮,当点亮的频率(即扫描频率)不大时,我们看到的是点阵一行行点亮,然而,当点亮频率足够大时,我们看到的不再是一行一行点亮,而是全部同时点亮,与传统方式得到的视觉效果完全一样。以16× 16 的点阵来说,把所有同1 行发光二极管的阳极连在一起,同1列发光二极管的阴极连在一起,先送出对应第一行发光管亮灭的数据并锁存,然后选通第1行使其点亮一定时间,熄灭后再送出第二行的数据并锁存,然后选通第2行使其点亮相同的时间,熄灭。以此类推,在完成第16行的数据之后,重新点亮第1行,反复轮回,只要轮回的速度足够快( 每秒24 次以上) ,由于人眼的视觉暂留现象,就能够看到显示屏上稳定的图形了。

2.3 系统设计

1.行扫描

由于16×16点阵显示器有16行,为充分利用单片机的接口,在设计中加入了一个4-16线译码器74LS154。其输入是4位二进制码,从0000~1111共16种状态,每种状态对应一路输出,即会有16路输出。74LS154的4位输入端连接单片机的端口,16位输出端连接点阵的16行。如果一行16点全部点亮,则通过74LS154的电流将达160mA,而74LS154译码器提供不了足够的吸收电流来同时驱动16只LED同时点亮,因此,需要在74LS154每一路输出端与16×16点阵对应的每一行之间用一个三极管来将电流信号放大,本设计选用的是PNP三极管S8550。这样,74LS154某一输出脚为低电平时,对应的三极管发射极为高电平,使点阵对应行也为高电平,这样只需要将点阵的对应列置低电平,点阵的行列交叉点即被点亮。

2.列驱动

列驱动采用的是串入并出的74LS595芯片,74LS595是一个八位串行输入三态并行输出的移位寄存器。将2片74LS595进行级联,共用一个移位时钟SCK及数据锁存信号RCK。点阵的第一行需要显示的数据经过8×2=16个SCK时钟后,从SER脚将其全部移入74LS595中,此时还需RCK脚提供一个上升沿将数据锁存在74HC595中,并在使能信号的作用下,使串入数据并行输出,从而使与各输出位对应的点阵各列二极管阴极处于0或1状态;同时由行扫描控制电路74LS154产生信号使第一行三极管S8550导通,相当于第一行LED的正端都接1,显然,第一行LED管的亮灭就取决于74LS595中的锁存信号;此外,在第一行LED管点亮的同时,再在74LS595中移入第二行需要显示的数据,随后将其锁存,同时由行扫描控制电路将第一行扫描管关闭而接通第二行,使第二行LED管点亮,以此类推,当第十六行扫描过后再回到第一行,这样,只要扫描速度足够高,就可形成一幅完整的文字或图像。

3、软件设计

3.1 字模提取

要通过动态扫描的方式显示汉字、字符或图形,就必须获取汉字代码。如果单是手工对字体取模,将会花费很多时间,本文采用PCtoLCD2002软件来进行字模的提取。在软件中只需输入需要的汉字,此处输入的是“托普”二字,点击生成子模,即可在窗口的下方获得字模的代码,为编写程序显示文字、字符或图形提供点阵显示需要的代码。如需要显示其他汉字,直接修改输入的汉字,即可得到对应的字模代码。

3.2 程序设计流程

由于本设计是采用行列式扫描,即先扫描LED点阵显示屏每一行的最左边的8个点,然后是右边的8个点,逐渐扫描直到一行的16个点,所以用字模软件产生的16×16 的数据,每个汉字有32个十六进制数据,这些数据按照顺序存放在数组中。LED点阵数据是由单片机的端口在脉冲的节奏下传送到74LS595中。采用C语言对单片机编程,利用定时中断进行刷新要显示的数据,以此来显示需要的字符。

4、结语

本文以单片机AT89S52 为核心控制器,根据动态扫描和点阵显示的原理,设计了LED点阵动态显示系统。通过该设计,可绘制PCB图,制版、安装元件、添加程序、调试后即可使用。经过实践证明,该设计具有工作稳定、字符清晰、亮度适中等特点。可以作为信息显示装置,用于公共场所进行信息显示,若所显示的信息较为简单,可直接将信息代码拷入单片机中;若所显示的信息较为复杂,还可以通过外扩储存器的方式来增加显示的信息量。另外,本文设计的电路图方便进行扩展,可以此设计推广到其他点阵的设计中,让显示屏可以同时显示多个字符,具有一定的实用价值。

参考文献:

[1]乔威.智能点阵电子显示屏控制系统设计.实验室研究与探索.2010(2).

[2]陈立.基于Proteus的单片机汉字LED点阵滚动显示.计算机工程应用技术.2010(3).

[3]杨延宁.基于Proteus的单片机汉字点阵显示电路设计.液晶与显示.2009(2).

[4]石长华.基Proteu的单片机汉字点阵显示设计与仿真.景德镇高专学报.2007(12).

上一篇:句子精教学:三思考 三指向 三借助 下一篇:新媒体发展背景下对纸质媒体SWOT分析