历史上的今天
返回首页

历史上的今天

今天是:2025年03月02日(星期日)

2021年03月02日 | 如何使用AT89C51单片机控制LED显示屏的电路设计

2021-03-02 来源:eefocus

LED显示屏广泛应用于工矿企业、学校、商场、店铺、公共场所等进行图文显示,广告宣传,信息发布。本文设计一种由4个16×16点阵LED模块组成的显示屏,由单片机作控制器,平滑移动显示任意多个文字或图形符号,本电路可级联扩展实现由任意多个16×16点阵LED模块组成的显示屏。


1 电路设计

控制电路由AT89C51单片机作控制器,显示屏由4个16×16点阵LED模块组成,每个16×16点阵LED模块由4个8×8点阵LED模块组成,用户可根据需要扩展增加任意多个16×16点阵LED模块。8×8点阵LED模块结构如图1所示,共8行8列,每个发光二极管放置在行线和列线的交叉点上,共64个发光二极管。当某一列为高电平,某一行为低电平时,则对应的发光二极管点亮。


单片机P3.0引脚接串入并出移位寄存器74LS164(U10)的串行数据输入端,8个74LS164(U10~U17)级联,P3.1引脚接8个74LSl64的时钟脉冲输入端;8个74LS164分别接8个锁存器74LS373(U18~U25),8个锁存器的数据输出端接4个16×16点阵LED模块的行线,每个16×16点阵LED模块的行线是独立控制的。P1.O接8个74LS164(U2~U9)的时钟脉冲输入端,P1.1接U2、U4、U6、U8的串行数据输入端,每两个74LSl64(U2和U3,U4和U5,U6和U7,U8和U9)级联;U2~U9的并行数据输出端接4个16×16点阵LED模块的64条列线。P1.2接所有74LSl64的清0端,P1.3接锁存器的锁存控制端。


2 工作原理

本电路利用串行通信口工作于方式0,同时利用P1.O和P1.1模拟串行输出,来实现LED显示屏字符平滑移动显示。由于LED模块为16× 16点阵,所以字符点阵也为16×16点阵,即每个字符由32个字节即16个字数据组成,每个字数据决定了每列LED点亮的情况。16×16点阵字符数据由字符点阵提取软件获得。


首先单片机P1.1串行输出一位二进制位“1”,经4组74LSl64给4个16×16点阵LED模块的第1列送入一高电平,接着由P3.O串行输出4个16×16点阵LED模块的第1列行数据,即Y1,Y17,Y33,Y49列的行数据,经74LS373锁存后送LED显示屏的行线,此时每个LED模块第1列对应的LED点亮。每列的行数据为1个字数据,4列共4个字数据,每个字数据首字节在字符点阵数据表中的地址相差32,此时每个LED模块显示每个字符的第1列。接着P1.1串行输出一位二进制位“0”,经4组74LS164移位后给4个LED模块的第2列送入一高电平,再由P3.O串行输出4个16× 16点阵LED模块的第2列行数据,即Y2,Y18,Y34,Y50列的行数据,经74LS373锁存后送LED显示屏的行线,此时每个LED模块第2列对应的LED点亮,即显示每个字符的第2列。如此循环,依次点亮每个LED模块每列对应的LED,直到点亮每个LED模块的第16列,即依次显示每个字符的各列。只要每列交替显示的时间适当,利用人眼的视觉暂留特性,看上去16列LED同时点亮,即看上去整个字符同时显示。然后再从第1列依次扫描显示至16列,如此循环多次,以确保显示出的字符具有足够的亮度。


为实现字符平滑移动显示的效果,在上面实现的4个字符静态显示一定时间后,再次扫描显示时,每个LED模块的第1列从每个字符的第2列数据开始扫描显示,即第1个LED模块显示第1个字符的第2列、第3列、……、第16列和第2个字符的第1列,第2个LED模块显示第2个字符的第2列、第3列、……、第16列和第3个字符的第1列、第2列、……。当第三次扫描显示时,每个LED模块的第1列从每个字符的第3列数据开始扫描显示,即第1个LED模块显示第1个字符的第3列、第4列、……、第16列和第2个字符的第1列、第2列,第2个LED模块显示第2个字符的第3列、第4列、……、第16列和第3个字符的第1列、第2列、……。如此实现了字符的平滑移动显示。


3 程序设计

根据以上电路设计及工作原理,绘制出本电路的控制程序流程图。按程序流程图编写出控制程序,用Wave或Keil软件调试通过后,产生目标代码文件。


4电路仿真

将目标代码文件加入用Proteus软件绘制的LED显示屏控制电路仿真图中的单片机中,仿真运行,运行结果如图4所示。


5 结语

该LED显示屏控制电路用单片机作为控制器,采用串行移位输出方式,实现了一行字符的平滑移动显示,在实际应用时还应加上相关驱动电路。本电路可扩展实现由任意多个16×16点阵LED模块组成的LED显示屏显示控制。经实际应用表明,该电路稳定可靠,效果良好。


推荐阅读

史海拾趣

问答坊 | AI 解惑

选择ASIC、FPGA和DSP的重要准则4

整合度 整合度系指在单个组件上整合多项功能,由此缩小数字无线子系统的尺寸并降低硬件的复杂度。ASIC组件在软件无线电架构设计中的另一劣势即是整合度较低。随着ASIC、DSP和FPGA开发技术的不断进步,在单个组件中整合的功能也急剧增加。但对于AS ...…

查看全部问答>

2008-10-18,TI C64x网络开发应用技术讲座邀请函

——AKA阿卡技术沙龙之DSP篇 2008年10月18日,AKA阿卡技术沙龙之DSP技术讲座在北京交通大学九教中102室举行,大会特邀了闻亭数字技术总监——尚高,就德州仪器(TI)公司最新推出的TI C64x网络开发应用技术做主题演讲。 德州仪器(TI)公司作为模拟 ...…

查看全部问答>

新手虚心提问

问点及其菜鸟的问题,大家不要笑,抽一分钟指导下我 新手问点问题啊, 例如描述芯片时常说该芯片容量是2K×8bit,那么芯片的容量是多大啊? 我以前以为是2K,应该是16K吧, 1 KB = 1024 bytes=1024×8 bit 2K×8bit代表什么意思啊?bit是8的单 ...…

查看全部问答>

GPRS和板子连,没有回应的问题

GPRS和板子通过TXD,RXD两线连接。问题1:需要把他们的地连在一起吗? 问题2:将板子波特率设成GPRS模块默认的115200,可是由于时钟关系,波特率有误差,板子波特率成了115384,这样要紧吗?…

查看全部问答>

求教一个Micron CMOS摄像头驱动的问题

各位师兄师姐好,小弟刚刚入门开始WinCE下的驱动开发(不过说实话似乎今天要问的问题和Linux还是WinCE平台没有多少关系),做的是在三星2451主控平台下试用镁光300万像素的CMOS sensor MT9T111的摄像头模块驱动。目前的情况是这样的:   &nbs ...…

查看全部问答>

请教各位 关于ARM 最最最 基础 、低层、非常重要的问题

通过OEMaddressTable可以看出,连接ARM处理器的外设都分配了不同的物理地址 根据ARM的内存控制器设计,将0X4800_0000到0x5fff_ffff定为片内外设寄存器的物理地址 (也就是ARM处理器中的寄存器地址) 然后又分了8个bank(0x0000_0000~0x3fff_ffff ...…

查看全部问答>

J2ME开发的程序在pxa270上能运行吗?

如题!J2ME开发的程序在pxa270上能运行吗?pxa270上装有wince5.0系统,能运行J2me开发的应用程序吗? j2me 是用eclipse搭建的 如果能的话  怎样移植??谢谢…

查看全部问答>

硬件设计需要具备的...?

搞GPU设计需要哪方面的知识?谢谢!!!…

查看全部问答>

2407控制寄存器资料

2407控制寄存器资料 …

查看全部问答>

CCS经常与目标板断开,是仿真器的问题吗?

我的是ccs3.3,目标板是一块5509a的开发板,510的仿真器。根本无法打断点跟程序,跑不了几步就断了。不管程序大小都这样,即便是一个跑马灯的程序都出现这样的情况。即便不打断点,直接run的话,也经常出现目标板被停掉,所以有时候run了的话,我要 ...…

查看全部问答>