在上一篇介绍了LED灯的驱动原理,这一期接着介绍与LED应用相关的器件---数码管。

数码管也是在日常生活中经常看到的显示器件,例如数字钟。有了前面LED的概念,其实数码管的原理就清楚了,数码管内部就是由多个LED适当的布局形成。

8段数码管内部由于有8个LED构成,而在前面的内容,已经介绍LED点亮的条件及方法,那么这就涉及共VCC,还是共GND的问题,即数码管中常说的共阳(共VCC)数码管,共阴(共GND)数码管。如图1.8所示是共阴数码管的内部图示,而图1.9所示是共阳数码管的内部图示。

图1.8 3合1共阴数码管内部原理图

图1.9 3合1共阳数码管内部原理图

图1.8可以看出,每一位数码管内的LED阳极都是单独一路的,而阴极都是连接在一起,如第一位数码管所有LED阴极连接到12号引脚上,因此称为共阴数码管;而读者可能已经发现3位数码管的阳极都分别连接在了一起,这样做的目的是节省I/O口,因为如果每一位数码管的8个LED都单独,那么3位的数码管就需要3*8=24个I/O口,如果数码管位数更多,需要I/O口就更多了,因此驱动多个数码管都采用A~DP线共用的方式,而通过控制数码管各个位的公共端,轮流显示数码管的各个位。说到这,也许有人会问,平常看到的数码管都是几个位同时显示的呀,怎么就是轮流显示的呢?这其实是利用了人眼的视觉暂留现象,几个数码管轮流快速的刷新,人眼就无法察觉,看起来就像是同时显示的一样。下面就以3合1共阴数码管为例,介绍一下,该如何设计数码管显示电路。如图1.10是数码管部分的电路,采用总线的方式连接,由于是共阴数码管,因此阳极A~DP进行了上拉,即通过图示的R2~R9接到VCC端。

图1.10 3合1共阴数码管电路设计

图1.11是单片机侧的接线,从图示看到A~DP分别连接到P2.0~P2.7,DIG1~DI3连接到P7.0~P7.2。

图1.11 3合1共阴数码管驱动单片机部分

在设计过程中A~DP尽量采用同一个端口,例如本例子的P2口,并且按顺序排列,这样做的好处是在后续编程的时候,操作语法会更简单,DIG1~DIG3也是同样的道理。如果不是受限于PCB布局,布线难度,像这种需要多个I/O口需要同时操作的情况,尽量采用分配同一个端口这样的方式。

举个简单的例子,如果数码管需要显示一个数字“5”,如图1.12所示,需要点亮ACDFG的位置,即ACDFG输出高电平,其余输出低电平,那么按照现在的电路,只需要一句话P2=0x6D即可。

图1.12显示“5”需要点亮的LED

而如果把A~DP分配到不同的端口,例如A~D分配到P2.0~P2.3,E~DP分配到P1.0~P1.3,同样显示数字5,那么就需要以下这几句语句才可以。

这里涉及到C语言编程的内容,仅仅简单带过,在后续的编程部分内容会有详细的介绍。在这里进行说明的原因是希望读者能明白,在产品设计的过程中,就尽量考虑后续的内容,而不是仅仅把电路设计完成就完事了。当然,这是需要一些经验的积累。

现在的电路接法,虽然可以满足应用要求,很多开发板、教程也都这样接,但在上一节的内容已经提到,目前这样LED的阴极直接连接到单片机I/O口,LED点亮的时候,会有电流灌入I/O口,至于为什么,读者可按照之前的内容自行分析。为了解决这样的问题,可以按照上一节的方法,追加三极管对DIG1~DIG3进行控制,于是,数码管部分电路就修改为图1.13所示。

图1.13改良后的数码管驱动电路

前面提到的是常用的数码管驱动电路,但是这个驱动电路,需要耗费的单片机资源比较多,一是I/O口比较多,固定的8个段选口,以及随着数码管数量增加的位选口,例如以上的3位数码管,需要用8+3=11个I/O口。随着数码管的位数增加,I/O口的数量随之增加。另外一个是,程序处理上,需要不断的刷新数码管的显示内容,才能确保稳定显示,耗费内核资源。因此对于单片机I/O资源不足的情况下,也可以考虑采用专门的数码管驱动芯片。

举个例子,同样是驱动共阴数码管,采用TM1620B,可以驱动6段*7位~9段*4位的数码管,而只需要3个I/O口,TM1620B的引脚定义如图1.14。而驱动共阴数码管的电路原理如图1.15所示;

图1.14 TM1620B的引脚定义

图1.15 TM1620B驱动共阴数码管的电路原理

一般实现所需要的功能有多种方法,具体应用该如何选择设计方案,就需要综合考虑成本、PCB空间、单片机I/O口资源,驱动芯片选型等。这些也许不同的企业,考虑的内容不同,不能一概而论,所以这里只给出了一些建议。

最后附上一张TM1620B驱动6位共阴数码管的电路原理图,图中的DIO/CLK/STB三个引脚,就是接到单片机的I/O口的,上拉电阻R1,R2,R3是为了确保单片机输出高电平为稳定的高电平,下拉的C1,C2,C3是为了滤掉3个引脚的高频信号,防止信号干扰导致传输的数据错误,C4,C5是对TM1620B的电源进行滤波,所以需要靠近芯片放置。至于显示驱动程序如何编写,会在后续的硬件编程章节进行介绍。

图1.16 TM1620B驱动6位共阴数码管

本期的内容就到这里了,希望大家能慢慢的体会数字电路设计的一些基本原则,码字不易,喜欢的朋友可以点个在看+分享吧

七段数码管段码表共阳_常用数字电路之显示篇数码管相关推荐

  1. 数码管显示数字的段码表共阳_《显示器件应用分析精粹》之(3)数码管静态显示...

    如果你觉得驱动一个发光二极管实在没什么挑战,那就试试数码管(LED segment Display)吧,它是将多个LED发光单元制作成一定形状,并按特定位置排列封装在一起的显示器件.最常用的数码管是& ...

  2. 共阴数码管段码-共阳数码管段码

    单片机系统中常用的显示器有:发光二极管LED(Light Emitting Diode)显示器.液晶LCD(Liquid Crystal Display)显示器.CRT显示器等.LED.LCD显示器有 ...

  3. 共阳数码管段码表_C51编程7数码管显示原理

    如果将单片机的比喻计算的主机,而按键相当于电脑的输入设备(键盘或者鼠标),那么LED灯可以作为输出设备的显示器:如果8位数据,使用8个LED显示数据表示,相当于是以二进制显示数据,非常不利于阅读. 为 ...

  4. 共阳数码管段码表_简单共阴极数码管电路图大全

    共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a.b.c.d.e.f.g及dp(小数点),如下图所示.图中的8个LED分别与上面那个图中的A~DP各段相对应,通过控制各个L ...

  5. 共阳数码管段码表_正点原子开拓者FPGA开发板资料连载第十一章 静态数码管显示实验...

    1)实验平台:正点原子开拓者FPGA 开发板 2)摘自<开拓者FPGA开发指南>关注官方微信号公众号,获取更多资料:正点原子 3)全套实验源码+手册+视频下载地址:http://www.o ...

  6. 基于AT89C51单片机的抢答器的设计(数码管:四位一体共阳)

    设计要求 基于AT89C51单片机设计制作一个抢答器,具体要求如下: 设计一个智力竞赛抢答器,可同时共8名选手参加比赛,编号为1.2.3.4.5.6.7.8,各用一个按键. 用一个按键作为主持人总开关 ...

  7. 奥松机器人PHP,Arduino四位七段数码管 LED数码管 4位共阳数码管 显示屏模块

    产品介绍: 四位七段数码管是由一个12管脚的4位7段共阳极数码管和一个控制芯片TM1637构成,模块采用沉金工艺,外观更加美观:采用防插反接口,操作更加安全:插口一边有大写字母I表示该模块采用IIC协 ...

  8. 乙腈和水共沸_常用有机溶剂共沸点

    乙醚的性质 1. 乙醚为无色.透明.易流动的液体,挥发性极大,它的蒸气有芳香味,但有麻醉性.沸点 34.6 ℃.凝固 点- 116 ℃,所以能耐剧冷而不凝冻.比重很轻,在 15 ℃时为 0.720 . ...

  9. 数码管段码代码查询工具

    数码管段码代码查询工具 LED代码查询V1.1 虽然在大部分情况下,我们常用的数字和字母显示,在网上一搜索即可得到,但是对于不常用的或者自定义的字符显示,利用这个工具就显得很方便了,对于非常熟悉数码管 ...

最新文章

  1. Request Connection: Remote Server @ 192.229.145.200:80
  2. Batch Size对神经网络训练的影响
  3. Django的model.py
  4. Linux和Windows文件系统
  5. java build path entries 为空_TOOLFK工具-在线JAVA代码执行工具
  6. 2015国产手机圈成绩单
  7. php接收16进制数据,PHP_PHP 通过Socket收发十六进制数据的实现代码,最近在php下做关于Socket通讯的 - phpStudy...
  8. mysql开启binlog启动慢_mysql配置开启binlog与慢查询日志功能
  9. 装饰者模式和适配器模式对比
  10. 《论文笔记》Collaborative Monocular SLAM with Multiple Micro Aerial Vehicles
  11. 安装Vistual Studio 2005的小问题
  12. 基于modelsim的十个Verilog入门试验程序(1)(7人表决器+算术逻辑单元)—程序+测试代码+波形+结果分析
  13. bag of words matlab,Bag of words(matlab实现)
  14. EXCHANGE 2003 恢复存储组的使用
  15. 【三维路径规划】基于matlab粒子群算法无人机三维路径规划【含Matlab源码 1260期】
  16. 【Android】小米开发应用App上线注册
  17. Android之wifi工作流程
  18. mysql 解压版安装教程
  19. 前端开发:JS中join()方法的使用总结
  20. 蓝牙低功耗profile:ATT和GATT

热门文章

  1. Udacity机器人软件工程师课程笔记(七)-ROS介绍和Turtlesim包的使用
  2. 实验三 Gmapping建图
  3. cache.config配置文件解读
  4. 在ATS 5.3.0上测试background_fetch插件
  5. 解密ATS 4.2.3的缓存状态密码
  6. 在CentOS 6.3 64bit上安装Apache Trafficserver 4.2.3挂载SAS硬盘和SSD
  7. vim中删除dos格式文件中的^M号的方法以及深度规整文件格式
  8. Linux命令:tar命令批量解压方法总结
  9. 微信 小程序布局 水平菜单
  10. sql 优化 tips