和12岁小同志搞创客开发:如何驱动LED数码管?

美男子玩编程

共 1425字,需浏览 3分钟

 ·

2021-10-15 18:32

点击上方蓝色字体,关注我们

LED数码管(LED Segment Displays)是由多个发光二极管封装在一起组成。


1


LED数码管分类和驱动原理


数码管按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元,也就是多一个小数点(DP),这个小数点可以更精确的表示数码管想要显示的内容。



数码管按能显示多少个,可分为 1 位、 2位、 3 位、 4 位、 5 位、 6 位、7 位等数码管。


4位数码管

8位数码管


按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。



  • 共阳数码管:

    将所有发光二极管的阳极(VCC)接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极 COM 接到VCC,当某一字段发光二极管的阴极为低电平时,相应字段就点亮, 当某一字段的阴极为高电平时, 相应字段就不亮。

  • 共阴数码管:

    指将所有发光二极管的阴极(GND)接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND,当 某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。


数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态数码管和动态数码管两类。


素材来源:博主big__C

  • 静态数码管:

    是每个数码管的每一个段码都由一个单片机的I/O端口进行驱动。

    静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。

  • 动态数码管:

    动态显示接口是单片机中应用最为广泛的一种显示方式之一。

    动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

    通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

    在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。



2


LED数码管驱动实践


DF创客社区商城售卖的数码管是增加了IIC芯片,通过IIC时序信号就可以进行驱动,极大方便了新手开发者使用,但是还是需要各位掌握好数码管的驱动原理,知其然知其所以然,在开发的过程中才可以达到举一反三的效果。



代码如下所示:



往期推荐



点击阅读原文,更精彩~
浏览 35
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报