欢迎来到大屏幕显示业绩榜 [ 业绩榜首页 - 网站地图 ]

DMA和LED相结合,点阵屏幕玩“动态”

类别:技术与产品发表于:2017-06-22 15:09
关键字:LED矩阵 点阵显示

摘要:LED是一般拿来学习单片机的基础元器件,大家肯定对它都不陌生。利用LED构成的点阵显示器件可以方便的实现大面积的显示功能,想要驱动LED点阵也并不复杂,但是如何把它驱动好,则需要我们动一动脑筋。

    LED是一般拿来学习单片机的基础元器件,大家肯定对它都不陌生。利用LED构成的点阵显示器件可以方便的实现大面积的显示功能,想要驱动LED点阵也并不复杂,但是如何把它驱动好,则需要我们动一动脑筋。


火狐截图_2017-06-22T07-07-06.302Z.png


    如果你想要设计一个具有动态效果的LED,我们第*时间就会想到利用PWM来控制LED的亮度和闪烁状态,但如果想要控制矩阵的话,你可能会遇到非常多的问题,你的控制器是否有足够多的PWM端口?如果用普通IO口来模拟PWM端口的话,能否达到相同的扫描速度?


火狐截图_2017-06-22T07-07-27.527Z.png


    对于越大的LED显示器件,我们想要实现同等无闪烁的显示效果所需要的扫描时间就更短。8×8的矩阵的话,扫描频率约为100Hz。而16×16矩阵的话其扫描频率则将剧增至1666Hz。这要求控制器要有16个以这个频率输出PWM信号的端口。这并不是一个简单的任务。


火狐截图_2017-06-22T07-14-06.381Z.png


    如何解决呢?也许DMA能够提供给我们一个方便的途径。DMA(Direct Memory Access直接内存存取)是一种在现代的控制器中非常常见的外部设备。它可以在不占用CPU时间的情况下将数据从内部存储设备中移动到外部设备中,或进行相反的过程。在完成了这样的过程之后,DMA控制器将告知CPU任务已完成。而利用DMA控制器,我们就能够用它来实现高速LED显示。


火狐截图_2017-06-22T07-08-02.497Z.png


    我们首先要构建一个调色盘。上面的这个表格粗略的表示出了我们想要在LED矩阵上显示出来的内容。而转化成C语言的数组之后,它看起来是这个样子的。


火狐截图_2017-06-22T07-08-17.167Z.png


    将不同的位叠加,我们就能够得到这样的一个序列。


    将数据用DMA送至IO口之后,显示在LED上,我们所看到的就是这样的效果了。


火狐截图_2017-06-22T07-08-41.453Z.png


    而通过同样的查表法,我们就可以像是显存一样将数据送至LED矩阵,并构建出动态的效果了。如下图所示:


111.gif


    上面,我们对于控制行的管脚送去了数据,如果我们利用两个DMA通道同时对于控制行和控制列的管脚发送数据,我们就能够构建出更加复杂一点的动画效果了。


222.gif


责编:小瀞

来源:无线电杂志

【免责声明】本站部分图文内容转载自互联网。您若发现有侵犯您著作权的,请及时告知,我们将在第一时间删除侵权作品,停止继续传播。

欢迎投稿

电话:186-8291-8669;029-89525942
QQ:2548416895
邮箱:yejibang@yejibang.com
yejibang@126.com   
每天会将您订阅的信息发送到您订阅的邮箱!

行业资讯项目信息
案例欣赏

精彩案例推荐
更多>>
首页|案例|行业资讯|视频演示|实用工具|关于我们
本站部分图文内容转载自互联网。您若发现有侵犯您著作权的,请及时告知,我们将在第一时间删除侵权作品,停止继续传播。
业绩榜http://www.yejibang.com 备案许可证号:陕ICP备11000217号-8

陕公网安备 61019002000416号