历史上的今天

今天是:2024年11月19日(星期二)

2018年11月19日 | 51单片机--LED类编程技巧

发布者:NanoScribe 来源: eefocus关键字:51单片机  LED  编程技巧 手机看文章 扫描二维码
随时随地手机看文章

 首先点阵:(以最简单的8X8为例,16X16的以后再说)


1.jpg


8X8点阵


个人感觉点阵需要注意的地方有:


第一个就是驱动点阵的方式


我认为8X8点阵的驱动程序分为行扫描和列扫描两种。


比如行扫描就是用一层for循环:


先选中第一行,然后送入这一行的数据,再选择第二行,然后送入第二行数据,如此循环下去,直至显示完一个屏幕(即8行),同时记得要消隐和微延时(后面会说消隐和微延时),列扫描同理。如图是代码示例:


2.jpg


8X8点阵,无滚动效果


第二个就是滚动效果的实现。


思路是:


一:扫描函数不变,每扫描一个屏幕,所有数据移动一位;(代码实现简单)


二:数据不变,每次读取数据的起始位置移动一位。(代码实现有点难,反正我不会╮(╯▽╰)╭)


以第一种为例:


代码实现:实现滚动效果的基础是一个扫描函数和一个数据处理函数,扫描函数有两层for循环组成:第一层for循环控制图像每移动一次的时间间隔,然后第二层for循环显示整个屏幕。


如图扫描函数:

3.jpg

扫描函数


滚动的重点是数据循环函数的写法,我觉得数据处理分两种:(仅个人愚见,新手)


第一种:


如果显示的内容整个点阵足以显示(这样的情况一般没有),那么就不用另外写数据处理函数,直接用 intrins.h里面的 _cror_(*,*) 函数或者 _crol_(*,*)函数对数据进行循环处理就可以了.不用 <


第二种:


自然就是指显示的数据在一张屏幕上显示不了,从而导致需要滚动显示。


此时就要另外写一个数据处理函数,原理很简单,比如StreamData[80]这个数组里面存着数据,那么只需将数据中的每一个数据往前(或者往后)移一位就可以了,最后将StreamData[0]移至StreamData[79]的位置就大功告成了。


注:以上两种的扫描还是只扫描一个屏幕(当然最大就只能扫描一个屏幕嘛),每当扫描完一个屏幕,接着进行数据处理就行了。


如图为第二种的数据处理函数:

4.jpg


注:但是我这种方法比较麻烦,但是我也没有想到其他比较好的方法,所以如果读者有比较好的方法的话,希望可以分享一下。


(来一张萌图:)

5.jpg


出自《刀剑神域》 亚丝娜,抱枕上的是Kirito


对于LED灯的显示,点亮LED的原理我就不说了,大家都懂,我说几个小细节吧:(补上上面挖的坑)


1、微延时。


当对动态数码管进行操作时,每点亮一位数码管,在点亮下一个数码管之前要进行微延时,这样可以提高亮度,延时太久的话整体效果会大打折扣(俗称:晃眼),但是不延时的话,亮度会很低,所以到底延时多久就取决于处理速度啦,其实到头来还是取决于你的眼睛啦。


(不晃眼的延时就是好延时!)


2、消隐。(就是消除隐约的光,也就是重影)


消隐就是说在所有的灯写完一次数据进行下一次数据刷新的之前要先把所有的灯灭掉,不然的话就会出现重影。记得我刚学的时候就总是出现重影,然后就改延时时间(当时不会嘛,不知道消隐这回事),怎么改都不对,直到最后找回原来的视频、例程又看了一遍才知道要消隐。


下面是我刚开始学单片机时自己做的:

6.jpg


我自己做的心形灯,当时更新手,更菜,大家不要笑哈


(做那个灯的时候刚刚开始学,电阻接小了,导致太亮,眼都快瞎了....)


16X16点阵一般会用74HC595驱动,所以要涉及到其他的知识,所以这里就先不说了,下次再说。拜拜~☂


关键字:51单片机  LED  编程技巧 引用地址:51单片机--LED类编程技巧

上一篇:51单片机--LED类编程技巧续
下一篇:51单片机--矩阵键盘

推荐阅读

在半导体领域,AMD算是一家历史悠久的公司了,明年(2019),它就将迎来50岁的生日,在这个重要的时间节点前夕,该公司交出了一份不错的答卷,也为自己亲自定制了一份最珍贵的生日礼物。而这一切都与他们的CEO苏姿丰博士(Lisa Su)密不可分。 Lisa Su确实是位杰出的女性,自2014年上任以来,在她的带领下,AMD最近两年出现了惊人的变化,一改前些年的颓...
相位噪声的含义 相位噪声是对信号时序变化的另一种测量方式,其结果在频率域内显示。用一个振荡器信号来解释相位噪声。如果没有相位噪声,那么振荡器的整个功率都应集中在频率f=fo处。但相位噪声的出现将振荡器的一部分功率扩展到相邻的频率中去,产生了边带(sideband)。从下图中可以看出,在离中心频率一定合理距离的偏移频率处,边带功率滚降到1/fm,...
球知名半导体制造商 ROHM(总部位于日本京都市)面向 ADAS(高级驾驶辅助系统)相关的传感器、摄像头、雷达、汽车信息娱乐系统及仪表盘等,开发出包括 12 款机型在内的车载一次*1DC/DC 转换器*2 “BD9P 系列”产品。近年来,汽车的电子化进程突飞猛进,但由于汽车的电池和发电机能够提供的电力有限,因此对降低功耗的要求越来越高。另外,从电池和发...
今天,Redmi 10 2022获得认证。认证信息显示,Redmi 10 2022不支持5G网络。  众所周知,Redmi数字系列是Redmi的入门机型,定价在千元以内。以上一代Redmi 9为例,这款手机首发起售价为799元。发布时间是2020年6月,定位是“五星高品质入门机”,它不仅拥有同档位优秀的配置,同时还通过了官方的严苛测试。  具体来说,Redmi 9搭载了一...

史海拾趣

问答坊 | AI 解惑

半导体三极管

一:三极管的结构及类型   通过工艺的方法,把两个二极管背靠背的连接起来级组成了三极管。按PN结的组合方式有PNP型和NPN型,它们的结构示意图和符号图分别为:如图(1)、(2)所示   不管是什麽样的三极管,它们均包含 ...…

查看全部问答∨

专业音响的发祥地

本帖最后由 jameswangsynnex 于 2015-3-3 20:00 编辑 北京俊杰伟业电子设备商贸有限公司是一家以专业音频、视频、灯光以及智能控制产品为主的渠道运营商,公司经过多年的发展与积累规模不断壮大,公司现在成立了人力资源部,行政部,财务部,技术 ...…

查看全部问答∨

寻视频电话开发人员

欲求视频电话开发人员,探讨一些技术实现问题…

查看全部问答∨

dxf文件中LWPOLYLINE和POLYLINE有什么区别

dxf文件中LWPOLYLINE和POLYLINE有什么区别?另外,POLYLINE部分是否只有由VERTEX连成的线段?…

查看全部问答∨

VGA to RGB

请问有谁做过VGA 转 RGB的系统没? 电脑显卡出来的VGA显示信号,转变为RGB数字信号,24位的最好, 就是想用480x272的LCD液晶来显示电脑输出的显示信号呀 ,各位高 手请指点一下,用哪个芯片好?…

查看全部问答∨

急求电脑配置

要求能够安装VMWARE ESXI4.0软件; 使用起来不会出问题; 价格在4000左右; 急!!!!!!!!! 麻烦各位大侠提供一个详细的参考,辛苦了!…

查看全部问答∨

谁有 Windows CE实用开发技术 或者哪里能下?

谁有 Windows CE实用开发技术 或者哪里能下? 多谢了!!!…

查看全部问答∨

DNW v0.50L版本中UBOOT下载的问题

请问DNW v0.50L版本中UBOOT功能怎么使用? 我将三星带USB下载功能的Eboot.nbo下到RAM后,进入main menu,然后按U选中USB下载项,再选DNW的USB Port->uboot,选中待下载的NK.BIN ,但下载进度条出来 后没有任何反应。 请问这是什么原因? …

查看全部问答∨

成功移植ffmpeg 0.6到ARM平台

    ffmpeg已变成多媒体处理领域最有影响力的开源组件,接近50万行源代码的工程对ARM模拟器来说是个巨大的挑战,但多年的稳定性给了我很大信心。整个过程比较顺利,前后大约花2个半小时,包括在ARM开发板上验证。ffmpeg0.6的移植成 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多每日新闻

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved