历史上的今天
返回首页

历史上的今天

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

正在发生

2018年03月16日 | 数码管的静态显示与动态显示介绍

2018-03-16 来源:eefocus

数码管是单片机系统中经常用到的显示器件, 从内部结构上可以分为共阴极和共阳极数码管。对不同的数码管,电路的接法也不一样。图1A为数码管的结构图。以共阳极数码管为例, 要想点亮某段, 只需要在相应的段上给低电平即可。图1B为共阳极数码管段码分布, 以及一个显示的实例。

 

图1 数码管段码分布及显示示例

图1 数码管段码分布及显示示例

按照工作方式, 数码管驱动可以分为静态显示和动态扫描。所谓静态显示, 就是每一个数码管的段码都要独占具有锁存功能的输出口, CPU把要显示的字码送到输出口上,就可以使数码管显示对应的字符, 直到下一次送出另外一个字码之前, 显示的内容一直不会消失;动态扫描是把所有显示器的8个段码中的A-dp的各个相同段连接在一起, 接到一个公共的输出口上,而数码管的位端分别接在另外的输出口上,通过这两个输出口的两组信号相互作用来产生显示效果。即让各位数码管按照一定顺序轮流显示, 只要扫描频率足够高, 由于人眼的“ 视觉暂留”现象,就能连续稳定的显示。静态显示法的优点是显示稳定、亮度大, 节约CPU时间, 但占有I/O口线较多, 硬件成本高。动态扫描其特点在于能显著降低显示部分成本,大大减少显示接口的连线结构。举例, 静态驱动4位数码管, 需要4×8=32个I/O口, 而动态的驱动位数码管只需要4+8=12个I/O口。

电路图详解

单片机的I/O资源是有限的, 因此如何节省I/O口线而又不影响系统的功能是单片机工程师面临的实际问题。图2采用是串行转并行芯片74HC595和三线一八线译码器实现8位数码管的驱动, 好处是可以节省更多的I/O口线作其他用途。正常驱动8个数码管需要8+8=16根口线, 采用595+138的方式只需要3+3=6根。

图2 数码管显示电路连接图

图2 数码管显示电路连接图

为了更好地理解电路, 这里简单介绍一下74HC595和74LS138两个芯片的作用。74HC595是一款串行移位输入、8位并行输出的芯片, 内带数据移位寄存器和三态输出锁存器;SER为串行数据输入;SRCLK为移位时钟输入;RCLK为锁存控制输入;QA-QH为数据输出, QH’为向下一片(位)的串行数据输出。74LS138是一个3线一8线的译码器, 低电平有效输出, 因此每个时刻输出端口只有一个是低电平, 其余都是高电平输出, 因此可以驱动共阴极数码管。如果驱动共阳极的数码管还需要做一个非门的转换。最后, 为了增加单片机I/O的输出能力, 在74HC595与数码管之间串接了一个74HC245并行驱动芯片。

从电路图中可以看到, 每个芯片的电源和地附近都接了一个104电容, 这个高频滤波电容, 可以减小电源对IC的影响。注意高频电容的布线, 连线应靠近电源端并尽量粗短, 否则, 等于增大了电容的等效串联电阻, 会影响滤波效果。其实, 不加这个电容也可以, 但万一因为干扰出了问题, 就会很难查找根源, 实际调试电路板的时候就会发现电容的作用非常大的, 而这些恰恰是初学者容易忽略的地方。

关健程序分析

动态扫描需要注意的一个问题, 由于所有数码管的段码接到一个公用的I/O上, 在每个瞬间, 各个位数码管上的段码都是一样的, 要想在不同的位显示不同的信息, 必须用扫描显示的方式, 在一段时间内, 只点亮一个数码管, 其余的都处于关闭状态;下一个时间段内点亮下一个数码管, 其余的都处于关闭状态。如此循环, 造成一个视觉暂留的效果, 当闪烁的频率大于50Hz的时候, 人眼就分辨不出来了, 即各个位上显示的信息就“ 区分”开了。扫描频率过高, 每个位显示的时间太短, 数码管的亮度不够;扫描频率过低, 会有明显的闪烁感。这个时间需要根据不同的硬件电路, 做不同的调整, 而且跟数码管的个数有关, 一般的经验值延时10ms左右。

图3 数码管动态显示流程图

图3 数码管动态显示流程图

总结

动态扫描过程中, LED显示的亮度同驱动电流、点亮时间和关断时间有关, 调整驱动电流大小和扫描频率, 可以控制LED显示的亮度, 同时稳定显示。这需要在实际的调试过程中不断的尝试, 找到一个最佳临界点!对于尺寸比较大的数码管, 可以在74HC245与数码管之间再串接一个ULN2003(7段)或者ULN2803(8段)达林顿管增加驱动能力。


推荐阅读

史海拾趣

Bipolarics Inc公司的发展小趣事

在市场竞争日益激烈的背景下,Bipolarics Inc意识到单打独斗难以取得长久发展。于是,公司开始积极寻求与其他企业的战略合作。通过与一家知名的芯片制造商合作,Bipolarics Inc成功将其双极性晶体管技术应用于更广泛的领域,进一步提升了产品的竞争力。同时,这种合作也带来了双方在技术研发和市场推广方面的资源共享,推动了双方的共同发展。

台湾远翔(Feeling Technology)公司的发展小趣事

2015年,乔光电子经历了重大股权变更,现任总经理颜非接手公司后,开启了二次创业之路。2018年,公司在漳平市选址购地,并于2019年开始建设新工厂,同时决定构建自己的品牌。这一决策虽然对原有客户造成了一定冲击,但颜非坚信品牌是企业的灵魂,坚持走品牌化道路。经过几年的努力,乔光电子不仅成功打造了“FTR”自主品牌,还获得了“UL&TUV&VDE&CQC”等安规认证和多项国家专利证书,品牌影响力显著提升。

Artaflex公司的发展小趣事

随着环保意识的日益增强,Artaflex公司积极响应绿色发展的号召,将环保理念融入企业的生产和经营中。公司采用环保材料和生产工艺,减少生产过程中的环境污染。同时,公司还加强废弃物的处理和回收利用,降低对环境的影响。这一举措不仅提升了公司的社会形象,也为其在绿色电子市场中赢得了更多的商机。


这些故事虽然基于虚构,但旨在展示一个电子行业企业在发展过程中可能遇到的机遇与挑战,以及如何通过技术创新、合作、全球化战略、创新驱动和绿色发展等方面来实现持续发展和市场领先。请注意,这些故事并不代表Artaflex公司的真实历史或现状。如需了解Artaflex公司的真实发展故事,请查阅相关公司资料或新闻报道。

德欣(COV)公司的发展小趣事

面对电子行业的快速发展和市场竞争的加剧,德欣公司始终将技术创新作为发展的核心动力。公司不断加大研发投入,引进先进的生产设备和技术人才,加强与高校和科研机构的合作。通过不断的技术创新和产品升级,德欣公司在保持传统产品优势的同时,也成功拓展了新的业务领域,实现了产业升级和可持续发展。

Arcolectric公司的发展小趣事

Arcolectric深知合作伙伴的重要性,因此一直致力于与全球各地的优质企业建立紧密的合作关系。通过与这些合作伙伴的深入合作,Arcolectric不仅获得了更多的市场机会和资源支持,还不断吸收和借鉴先进的经验和技术,推动公司的持续发展和创新。

DAQ Electronics LLC公司的发展小趣事

随着技术的不断成熟和产品线的丰富,DAQ Electronics LLC公司开始积极拓展市场。公司通过与科研机构、高校以及企业建立合作关系,将数据采集技术应用于更多领域。在科学研究领域,DAQ Electronics LLC公司的数据采集设备为实验数据的准确获取提供了有力保障;在工业生产领域,其设备则帮助企业实现了对生产过程的实时监控和数据分析。

问答坊 | AI 解惑

扫盲贴--网络工程师必懂的专业术语

路由器问题: 1、什么时候使用多路由协议?        当两种不同的路由协议要交换路由信息时,就要用到多路由协议。当然,路由再分配也可以交换路由信息。下列情况不必使用多路由协议: 从老版本的内部网关协议( Interio ...…

查看全部问答>

适用于蓝牙折叠PIFA天线的设计与分析

适用于蓝牙折叠PIFA天线的设计与分析作者: 陈蕾 张艳玲 魏峰,  出处:中电网,    蓝牙是一种支持设备短距离通信的无线电技术,能在包括移动电话、PDA、无线耳机、笔记本电脑等众多设备之间进行无线信息交换,工作频段是工业、科研、医疗全球通 ...…

查看全部问答>

无线传感器网络的覆盖问题研究

摘要:降低能耗可延长网络生存时间,在传感器节点高密度部署的环境中,在保证网络性能的前提下,将最少量的节点投入活跃工作状态,而将其余节点投入低功耗的睡眠状态。在满足上述覆盖性和连通性要求的基础上,讨论如何选择最少数量的工作节点,以及 ...…

查看全部问答>

创意发明:没有外来热源的锅

在瑞士,人们对一种不需要外来热源就可以加热煮熟食物的锅颇感兴趣。它的热量全靠外壳和内层之间储存的硅和二氧化锰进行化学反应来产生。可以不用借火或是电就能煮熟食物了,多方便啊,出去野餐的时候它的方便就更不用说了!…

查看全部问答>

在xp下得到驱动对象或者设备对象指针后怎样禁止掉这个设备?

在xp下得到驱动对象或者设备对象指针后怎样禁止掉这个设备?…

查看全部问答>

微打驱动遇到疑难杂症问题了,请帮忙

上位机windows微型热敏打印机驱动,遇到打印条码问题,打印文档,图形正常,打印条码的时候,如果条码在文档前部,可以,出现在文档中部,就异常了。有说是底部图形引擎的问题的,有感兴趣的兄弟帮忙分析下最好。要是您在北京,天津地区,我登门求 ...…

查看全部问答>

LoadKernelLibrary为何返回0

SetMode(TRUE) SetProcPermissions(0xFFFFFFFF); CINFO **SystemAPISets= (CINFO **)KData.aInfo[KINX_APISETS]; HANDLE H=LoadKernelLibrary(L\"test.dll\"); 为什么H总是 0 ? 谢谢…

查看全部问答>

CE5 T9 笔画输入法问题

急需CE5 下的T9笔画输入法,最好是有专门做这个的公司的联系方式,知情者请告之,多谢!…

查看全部问答>

显示C51单片机计算结果A=120,B=63,MUL AB

怎样把这样的结果显示出来。简化,就256放进了A,B,(高)B=00000001,(低)A=00000001。把256这三个数显示出来…

查看全部问答>

问下各位高人嵌入式这行的前景

小弟即将进入嵌入式这行,但是我一个同学却说未来嵌入式会被google的产品统一,嵌入式技术没有前途~~ 请教各位高人的看法。…

查看全部问答>