历史上的今天
返回首页

历史上的今天

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

正在发生

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

2018-11-19 来源:eefocus

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


1.jpg?imageView2/2/w/550


8X8点阵


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


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


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


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


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


2.jpg?imageView2/2/w/550


8X8点阵,无滚动效果


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


思路是:


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


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


以第一种为例:


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


如图扫描函数:

3.jpg?imageView2/2/w/550

扫描函数


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


第一种:


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


第二种:


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


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


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


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

4.jpg?imageView2/2/w/550


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


(来一张萌图:)

5.jpg?imageView2/2/w/550


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


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


1、微延时。


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


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


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


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


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

6.jpg?imageView2/2/w/550


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


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


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


推荐阅读

史海拾趣

Foxconn_Optical_Interconnect_Technologies__Inc.公司的发展小趣事

Foxconn Optical Interconnect Technologies Inc. 的五个发展故事

故事一:创立与初步发展

Foxconn Optical Interconnect Technologies Inc.(简称FIT),作为鸿海精密工业股份有限公司(Foxconn,又称富士康)旗下的子公司,其发展历程可以追溯到富士康的崛起。富士康由郭台铭于1974年在台湾创立,起初主要生产塑料零件。随着电子行业的蓬勃发展,富士康迅速转型,开始涉足电子制造服务(EMS)。在这一背景下,FIT应运而生,专注于光机电整合连接器、天线、声学元件等产品的研发与生产,逐渐在电子行业中崭露头角。

故事二:技术突破与全球化布局

FIT凭借其在光电互连技术领域的不断创新,逐步确立了在全球市场的领先地位。公司通过持续加大研发投入,成功开发出一系列高性能、高可靠性的产品,广泛应用于电脑、通讯、消费电子等多个领域。同时,FIT积极实施全球化战略,在亚洲、北美、南美和欧洲等地设立生产基地和研发中心,形成了覆盖全球的生产和服务网络。这一布局不仅提升了公司的市场竞争力,也为其未来的发展奠定了坚实基础。

故事三:与富圣光电的合作

FIT与富圣光电科技(昆山)有限公司的合作是其发展历程中的一个重要里程碑。富圣光电作为富士康旗下专注于光电科技领域的企业,与FIT在技术研发、产品生产等方面展开了深度合作。通过资源共享和优势互补,双方共同推动了光电技术的发展和应用。目前,FIT持有富圣光电50%的股份,这一合作不仅增强了双方在光电市场的竞争力,也为双方带来了显著的经济效益。

故事四:收购夏普与技术整合

2016年,富士康(鸿海精密工业股份有限公司)成功收购日本夏普公司,这一举动对FIT的发展产生了深远影响。夏普在显示技术、半导体等领域拥有强大的技术实力和市场地位,而FIT则擅长光电互连技术的研发和生产。通过此次收购,FIT得以将夏普的先进技术与自身优势相结合,进一步提升了在光电领域的综合竞争力。同时,这也为FIT拓展国际市场、提升品牌影响力提供了有力支持。

故事五:新能源汽车领域的探索

近年来,随着新能源汽车市场的快速崛起,FIT也开始将目光投向这一新兴领域。公司利用自身在光电技术方面的优势,积极研发新能源汽车充电系统、光电传感器等关键零部件。通过不断的技术创新和市场拓展,FIT在新能源汽车领域取得了初步成果。这一领域的探索不仅为公司带来了新的增长点,也为其在光电技术领域的持续发展注入了新的动力。

得力(deli)公司的发展小趣事

得力公司最初以文具制造起家,但在电子科技快速发展的时代,公司意识到必须转型升级以适应市场需求。于是,得力决定进军专业门槛高、技术壁垒深的打印机产业。经过数年的科研攻坚,得力成功研发出首台激光工程机,并在随后几年内,发展成为国内唯一一家同时掌握激光、喷墨打印核心技术研发、生产能力的企业。这一跨越不仅展现了得力公司在科技创新方面的决心和毅力,也为其在电子行业树立了新的里程碑。

Ericsson Power Modules公司的发展小趣事

在创立初期,Ericsson Power Modules就展现出了强大的技术创新能力。公司团队通过深入研究电源技术、电路板应用和系统知识,成功开发出了一系列高性能、高效率的电源模块产品。其中,DC-DC转换器、中级和先进总线转换器、POL稳压器等产品因其卓越的性能和稳定性,在市场上赢得了广泛好评。这些技术突破和产品创新为Ericsson Power Modules的后续发展奠定了坚实的基础。

Electro-Optical Systems Inc公司的发展小趣事

EOS公司成立于1983年,创始人是一群热衷于红外技术的专家。他们深知红外探测器在军事、科研和工业领域的重要性,于是决定投身于这一领域。初创时期,EOS面临着资金短缺、技术难度大等挑战,但团队成员凭借着对技术的执着和对市场的敏锐洞察,逐步攻克难关,成功研制出第一批红外探测器产品。

Advanced Microelectronic Products Inc公司的发展小趣事

Advanced Microelectronic Products Inc(以下简称AMP公司)在电子行业中崭露头角,源于其一次关键的技术突破。公司研发团队成功开发出一种新型高效能、低功耗的芯片,该芯片在智能手机市场具有广阔的应用前景。凭借这一技术优势,AMP公司迅速与多家手机制造商建立合作关系,实现了市场的大规模扩张。公司随后进一步加大研发投入,不断推出创新产品,巩固了其在行业内的领先地位。

Dearborn Electronics Inc公司的发展小趣事

随着电子行业的快速发展和市场竞争的加剧,Dearborn Electronics Inc.面临着诸多挑战。为了保持竞争优势,公司不断进行转型升级,推出了一系列具有更高性能、更小尺寸、更低成本的新产品。同时,公司也积极拓展新的应用领域和市场,寻找新的增长点。

问答坊 | AI 解惑

fifo

大家都在论坛上发一些fifo的论文 可是在实际设计中,怎么用? 例如:我现在要用FPGA设计一个东西 我要用一个异步fifo 可是我不可能自己设计啊 我该怎么做 是要用IP核吧 怎么用…

查看全部问答>

AT91SAM9261 65x45mm核心板

本人用四层板画滴,有需要PCB的找我. [ 本帖最后由 青叶漂零 于 2009-4-9 11:53 编辑 ]…

查看全部问答>

正激式变压器开关电源电路参数的计算 开关电源原理与设计(连载15)

1-6-3.正激式变压器开关电源电路参数的计算 正激式变压器开关电源电路参数计算主要对储能滤波电感、储能滤波电容,以及开关电源变压器的参数进行计算。 正激式变压器开关电源储能滤波电感和储能滤波电容参数的计算 图1-17中,储能滤波电感和储 ...…

查看全部问答>

51单片机和电脑通信的问题

我用51单片机驱动   dm128*64的液显 现在想让他和电脑之间通信 应该怎么做啊 ??? 功能是  键盘输入   液显  显示…

查看全部问答>

打印驱动的问题打印机的Form是不是必需的?

是这样的,我做了打印机的驱动,然后在“画笔”中打印,发现DrvEnablePDEV进去了,可是立马又调用了DrvDisablePDEV,连DrvStartDoc都没有进去,是不是因为没有AddForm导致的,还会不会有其它的问题导致这种现象?我非常渴望大家的意见。…

查看全部问答>

老师给的一个任务,开始就遇到麻烦了,请教大家如何解决呢?关于ceconfig.h的

老师拿来一个程序让我修改,是用在手机上一个软件的算法,我在编译原代码的时候发现VC++6.0出错,提示没有cecongfig.h的头文件。小弟没有搞过嵌入式开发,上网一搜才知道是windous ce 下设置环境变量的头文件。 现在问题是,我的机子又不是用windo ...…

查看全部问答>

请教:RS485通讯时用到MAX3485,它的作用是什么?

RT,请教:RS485通讯时用到MAX3485,它的作用是什么?…

查看全部问答>

请教这个反相放大器的相移计算

大家好: 原理图的反相放大器在输入信号是 50KHZ,幅值 6.8Vp-p 时,Vout 的 幅值 也会是 6.8Vp-p,但相位超前 90度,我试着分析结果如下: 首先计算 C1 和 C2 的容抗,频率为 50KHZ,代入公式 Xc = 1 / 2Πfc 得 XC1=3.18Ω,XC2=3.18KΩ ...…

查看全部问答>

anananjjj的Beaglebone外围电路设计周计划

没想到16个人里会有我!! 还是那句话,我参加这个活动就是为了和厉害的牛人学习东西!不强求会被选上,无论结果怎样我都要把各位大侠的经验和知识学习到!持续关注这个活动,希望各位大侠能够不吝解答我的各种疑问!最后祝我们的论坛越办越好!加 ...…

查看全部问答>

关于MSP430的RTC问题

我用的是4系列的,问个关于内部RTC写入的问题。 当RTC配置好启动后。如果用户需要通过按键修改时间的话,修改RTCHOUR和RTCMIN的时候,需要事先关闭RTC模块吗?还是直接改写就可以呢?怎样做是安全的,不会出错的? 430的内部RTC还有什么其它的注 ...…

查看全部问答>