LED数码管是一种半导体发光器件,其基本单元是发光二极管(LED)

文章目录

  • 数码管介绍
    • 1.数码管的分类
    • 2.数码管内部构造及原理
  • 数码管硬件知识
    • 1.数码管电压与电流
    • 2.数码管典型电路
  • 数码管的应用
    • 使用51单片机控制数码管

数码管介绍

led数码管(LED Segment Displays)由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。 ——百度百科

LED数码管在生活中随处可见,洗衣机、电饭煲、热水器、微波炉、冰箱、这些最基本的家用电器上基本都用到了这种7段LED数码管(为LED灯的个数)。

下图为某洗衣机控制主板:

1.数码管的分类

  1. 按显示段数分:分为七段八段九段十四段十六段
    七段:七段数码管由7个LED构成

    八段:八段数码管比七段多了一个小数点

    九段:九段数码管由9个LED构成

    十四段:十四段数码管由14个LED构成
    十六段:十六段数码管由16个LED构成

  2. 按显示位数分:分为1位2位3位多位数码管(大于1位)

  3. 按内部发光二极管单元的连接方式分:分为共阳极共阴极
    共阳极数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。(内部构造见下节内容)

  4. 按显示颜色分:分为红色、橙色、黄色、绿色和蓝色等等

2.数码管内部构造及原理

内部构造

下图是数码管的引脚定义内部构造,可以看到其实数码管内部只有LED一种元件,图(a)中的COM就是数码管的公共端,数码管只能是共阳极(公共端为VCC)和共阴极(公共端接地)中的一种。

显示原理

从上面的内容我们可以得知LED数码管其实就是由多个LED组成的,那它是如何显示数字的呢?

原来数码管的8个LED都已经被命好名了:它们分别叫a,b,c,d,e,f,g,dp,只要点亮这8个LED中的其中几个,就能达到显示数字的目的,那我们怎么知道显示的数字LED编号之间的对应关系呢?

这个其实也很简单,不用我们死记硬背,可以直接查表,下图是共阴极数码管显示0-F对应的编码:

如果是共阳极数码管,只需将上图对应的编码按位取反即可。

下表同样为数码管显示字段对照表:

显示的数字 点亮的LED 十六进制 (共阳极) 十六进制 (共阴极)
0 abcdef 0xC0 0x3F
1 bc 0xF9 0x06
2 abdeg 0xA4 0x5B
3 abcdg 0xb0 0x4F
4 bcfg 0x99 0x66
5 acdfg 0x92 0x6D
6 acdefg 0x82 0x7D
7 abc 0xF8 0x07
8 abcdefg 0x80 0x7F
9 abcdfg 0x90 0x6F
A abcefg 0x88 0x77
B cdefg 0x83 0x7C
C adef 0xC6 0x39
D bcdeg 0xA1 0x5E
E adefg 0x86 0x79
F aefg 0x8E 0x71

数码管硬件知识

1.数码管电压与电流

  • 同样型号下,不同颜色的LED数码管
    红色的LED数码管电压一般在1.7~2.5Ⅴ左右,绿色的LED数码管电压一般在2.0~2.4Ⅴ左右,黄色的LED数码管电压一般在1.9~2.4Ⅴ左右,蓝/白色的LED数码管电压一般在3.0~3.8v左右。
  • 同样颜色,不同功率的LED数码管
    1/6W的LED数码管的电压2.5V~3.5V之间,电流是0.02A左右;1/2W的LED数码管的电压2.5V~3.77V之间,电流是0.15A左右;1W的LED数码管的电压2.79V~3.99V之间,电流是0.35A左右;3W的LED数码管的电压3.05V~4.47V之间,电流是0.7A左右;5W的LED数码管的电压3.16V~4.88V之间,电流是1A左右。
  • 来源——http://www.dg8.com.cn/jishu/13458.html

由于LED数码管由LED组成,所以以上参数其实和LED的电压和电流参数相同,这些内容也在我之前的发光二极管介绍篇里有所提及。

2.数码管典型电路

由于不同规格型号的LED数码管对应的正向导通电压和额定电流不同,所以我这里以Proteus器件库的数码管默认参数作为参考,如下图所示,即现在我们要使用的数码管正向导通电压1.5V额定电流10mA


单片机的VCC通常为3.3V或5V,它们都达到了数码管的1.5V正向导通电压(电压超过一点没关系,主要是电流不能太大)。

假如我们现在用单片机控制数码管,由于单片机的IO电流一般为10mA~20mA,驱动单个LED是足够的,但是如果有多个数码管并联(多位数码管),单片机的IO电流就不足以驱动所有的数码管,这时就会出现数码管亮度变暗或不亮的现象。
所以,在用单片机控制多位数码管时(动态驱动数码管),我们需要使用驱动电路。

首先让我看看动态数码管的电路原理图,可以看到8个数码管的8个引脚是和单片机IO并联的,如果8个数码管同时亮或者快速扫描时(扫描的意思是多个数码管片选,即在一个较短的时间内单片机只操作一个数码管,然后不断循环切换数码管进行显示),单片机的IO驱动能力不足以维持数码管的正常显示,所以我们需要在单片机IO和多位数码管之间增加驱动电路

通常可以使用三极管实现驱动功能,这里的三极管起到开关作用。当IO端(电阻R3左侧)为低电平时,三极管不导通,4个LED不亮;当IO端为高电平时,三极管导通,4个LED被点亮。这时单片机就是起到控制作用(控制三极管的集电极和发射极是否导通),而不是驱动作用。


除了用三极管,我们还可以使用一些驱动芯片,比如74HC245,74HC245是一种三态输出、八路信号收发器,主要应用于大屏显示,以及其它的消费类电子产品中增加驱动。

其内部构造如下图所示,里面相当于有8个开关电路,正好数码管也有8个信号引脚。此外,74HC245支持三态输出(输入、输出、高阻),也就是说它能反向驱动,即驱动共阳极数码管,可以说用74HC245来驱动数码管堪称完美(纯个人观点——我见识短)。

  • 用74HC245驱动单个共阴极数码管

  • 用74HC245驱动单个共阳极数码管


据说还有一种数码管译码器74LS47,它能将BCD码(用4位二进制数来表示1位十进制数中的0~9这10个数码)转换成数码管对应的数字的显示信号,这个芯片我在学单片机之前用过,不过现在忘了。

74LS47是 BCD-7段数码管译码器驱动器,74LS47的功能用于将BCD码转化成数码块中的数字,通过它来进行解码,可以直接把数字转换为数码管的数字,从而简化了程序,节约了单片机的IO开销。因此是一个非常好的芯片!但是由于目前从节约成本的角度考虑,此类芯片已经少用,大部分情况下都是用动态扫描数码管的形式来实现数码管显示。

.

由于BCD码只能表示0~9,所以它也只能翻译0~9对应的数码管显示信号。具体使用这里就不作介绍了。

下面展示百度百科的图:(当然,如果用单片机,我们就没必要用BCD码编码器)

数码管的应用

使用51单片机控制数码管

这里仅介绍单个数码管的操作(1位数码管),又称静态驱动数码管显示

静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
.
数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
——百度百科

直接上代码,实现功能:让数码管循环显示0-F

#include <reg52.h>   //此文件中定义了单片机的一些特殊功能寄存器unsigned char code coding[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0-F的值#define LED_TUBE  P2 //P2的8个IO端口对应数码管的8个信号引脚/******************************************************************************* @ 函数名  : Delay_10us* @ 功  能  : 10us粗略延时* @ 参  数  : 延时时间--单位10us* @ 返回值  : 无******************************************************************************/
void Delay_10us(unsigned int time)
{while(time--);
}/******************************************************************************* @ 函数名  : main* @ 功  能  : 主函数* @ 参  数  : 无* @ 返回值  : 无******************************************************************************/int main()
{   unsigned char i = 0;while(1){/* 显示0-F */for(i = 0; i < 16; i++){LED_TUBE = coding[i]; //设置8个IO的电平Delay_10us(50000);    //延时约500ms}  }
}

Proteus仿真:

实现功能:让数码管循环显示0-F
下图中串联电阻阻值为470欧姆

嵌入式硬件入门——LED数码管(工作原理+静态驱动)相关推荐

  1. STM32 嵌入式学习入门(4)——PWM原理

    STM32 嵌入式学习入门(4)--PWM原理 本文先对STM32F103的通用定时器作一简单介绍,然后详细介绍通用定时器的一个应用--输出PWM波形的原理.整个文章以介绍"怎么用" ...

  2. 嵌入式硬件开发工程师涉及哪些工作内容?

    相信很多人都了解嵌入式工程师需要掌握的内容非常广泛,学习嵌入式又分为软件和硬件两种不同的发展方向,而它们学习的侧重点也是不一样的.但都有一个特点就是踏入这个行业的难度比较大,相对应的,嵌入式人才也更稀 ...

  3. STM51嵌入式开发入门软件安装-Keil、stc、驱动

    STM51嵌入式开发入门软件安装-Keil.stc.驱动 STM51嵌入式开发入门软件安装-Keil.stc.驱动 1 Keil安装 1.1 百度进入官网 1.2 选择C51,点击后需要填的信息随便填 ...

  4. ARKit从入门到精通-ARKit工作原理及流程介绍

    2017-06-15 坤小 Cocoa开发者社区 转载请注明出处:http://www.jianshu.com/p/0492c7122d2f 1.1-写在前面的话 1.2-ARKit与SceneKit ...

  5. 跟涛哥一起学嵌入式 31:深入浅出CPU流水线工作原理

    现在的CPU处理器一般都是超流水线工作,动不动就是10级以上流水线,超高主频,这两者之间有什么关系呢?今天就跟大家科普下CPU流水线的工作原理,以及他们之间的关系. 说到流水线,很多人会想到富士康:说 ...

  6. 【SpringMVC架构】SpringMVC入门实例,解析工作原理(二)

    上篇博文,我们简单的介绍了什么是SpringMVC,这篇博文,我们搭建一个简单SpringMVC的环境,使用非注解形式实现一个HelloWorld实例,从简单入手,逐步深入. 环境准备 我们需要有基本 ...

  7. 继电器rc吸收电路取值_继电器的工作原理以及驱动电路解析

    继电器是具有隔离功能的自动开关元件,广泛应用于遥控.遥测.通讯.自动控制.机电一体化及电力电了设备中,是最重要的控制元件之一.继电器实际上是用较小的电流去控制较大电流的一种"自动开关&quo ...

  8. 继电器rc吸收电路取值_一文读懂继电器的工作原理以及驱动电路

    继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种"自动开关".故在电路中起 ...

  9. 步进电机的工作原理及驱动方法

    一.步进电机的工作原理 (一)反应式步进电机的结构 暂不更新 (二)反应式步进电机的工作原理 磁力线优先走磁阻最小的路径,从而产生反应力矩; 各项定子尺之间彼此错开1/m齿距,m为相数. 1.通电方式 ...

最新文章

  1. sql server 定时备份数据库
  2. cmd打开java文件夹_Java用CMD打开指定文件和文件夹
  3. ubuntu安装python3.6_Ubuntu上安装python3.6以及多版本python管理 | SQN
  4. 时间序列分析之协整检验
  5. kafka集群搭建并验证(个人亲手搭建,真实有效)
  6. css3,环绕圆环 loading,小组件
  7. 【JPress】Template
  8. 微信 群相册服务器,微信也有群相册!用这个小程序,轻松优雅收集聚会合影...
  9. Filecoin系列 - 源码分析 - CPU SHA扩展
  10. 计算机类研究生双证,想要报考计算机专业来攻读双证在职研究生最终是不是可以获得双证...
  11. 6、API网关 Zuul
  12. 用ironic安装openstack的原理
  13. Dubbo服务端服务发布(一)Invoker创建
  14. 视频监控国标协议介绍
  15. [Python3]Python官方文档-Python Manuals
  16. uniapp web端 支付宝 微信使用当面付
  17. IntelliJ IDEA 2018.2.2 x64安装破解教程
  18. 2018 新一代人工智能院士高峰论坛 总结文章
  19. 计算机启动到桌面就蓝屏怎么办,电脑一开机进入桌面就蓝屏,怎么处理
  20. virtualbox安装失败报严重错误

热门文章

  1. QT QLabel显示图片并通过鼠标滑动改变大小以及移动图片
  2. 坐标的平移,旋转,缩放矩阵
  3. 综评计算机相关课题,新高考改革背景下,为什么强基计划招生这么重视研究性学习?...
  4. RDLC报表实现页汇总和总合计
  5. 数学建模优化模型简单例题_数学建模之常见的优化模型
  6. 以小组为单位,设计一个Windows应用程序,在该程序中定义一个学生类和班级类,以处理学生的学号,姓名,语文,数学和英语3门课程的期末考试成绩。
  7. 防火墙如何设置允许计算机访问,Internet 防火墙阻止文件共享 - Windows Client | Microsoft Docs...
  8. 25天破千万,胡轩108新国货产品凭什么媲美国际大牌?
  9. 2022圣诞代码合集(圣诞树+圣诞老人)
  10. 菜鸟安装Nodejs环境