在51单片机学习过程中,相对基础的一个实验就是利用七段数码管依次显示数字0-9。很多时候,我们按照要求,搭建了电路,编写了对应的显示控制程序,最后运行,可能对于七段数码管显示数字的原理并没有进行深入的研究。今天结合自己的理解,给出七段数码管显示的原理。

七段数码管,本身利用发光二极管的原理,组成一个'8'的形状,这个'8'正好是七段组成,所以一般称为七段数码管。

组成这个7段数码管的每个部分又分为a,b,c,d,e,f,g部分,分别对应如下所示:

七段数码管的连接方式,根据现实布线的方式,可以组成共阳数码管和共阴数码管,所谓共阳,就是数码管的一极全部接电源,而二极管根据发光原理,只能是正极接电源,负极接地,所以数码管一级全部接电源的情况,称为共阳数码管,如下所示:

在proteus元器件库中,共阳数码管名称是:7SEG-COM-AN-[COLOR]

共阴数码管,就是公共一极全部接地,如下所示:

在proteus元器件库中,共阳数码管名称是:7SEG-COM-CAT-[COLOR]

上面的两个图形,可能看不出问题所在,主要区别在于电路图中的电源和接地图标不同:

电源vcc:

接地vss: 

在实际编程中,基本采用一种类型数码管显示即可,默认都是选择共阴数码管,也就是我们需要让开发板输出电压为高电平,点亮对应的数码管。

在上面的字母对应的七段数码管中,要显示0-9,需要的电平如下所示:

a b c d e f g 字形 所需字母数码段
1 1 1 1 1 1 0 0 abcdef
0 1 1 0 0 0 0 1 bc
1 1 0 1 1 0 1 2 abdeg
1 1 1 1 0 0 1 3 abcdg
0 1 1 0 0 1 1 4 bcfg
1 0 1 1 0 1 1 5 acdfg
1 0 1 1 1 1 1 6 acdefg
1 1 1 0 0 0 0 7 abc
1 1 1 1 1 1 1 8 abcdefg
1 1 1 1 0 1 1 9 abcdfg

光这个表,看不出要怎么设置引脚的电平高低,但是我们可以通过代码中的值来反推这个表,一般我们的代码中可能有这样一个表示显示数字的数组:

unsigned char led[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; 

这一组数据,其实对应上面共阴数码管表,可以这么理解,把数码管的g,f,e,d,c,b,a七个段,外加一个0位,正好组成八位二进制,其中0对应0x3f,就是0011 1111,正好对应上面表格中的按照顺序1111 110反过来的表示。1对应0x06,也就是0000 0110,同样对应上面表格0110 000反过来的表示。后面都是类似的规律。显示数字8,全部点亮,也就是1111 111,反过来二进制表示就是0111 1111,正好对应十六进制0x7f。

理解了这些规律,再反过来理解数码管的显示,其实就不难了。

以上是对七段数码管显示数字0-9的研究,其实数码管还可以显示很多其他字母,至少大写的E,F,L都是可以模拟显示的,规律也一样,点亮七段数码光的某一些段,就可以显示对应的字形,其实并不是真正的显示某一个字形,而是用了拼凑形状让二极管发光的办法。

七段数码管显示原理研究相关推荐

  1. 仿真软件proteus构建七段数码管显示数字0-9实验

    七段数码管显示原理研究在前一篇博客中已经阐述过,就是利用7个数码管构建一个"8"字形,然后利用数字的形状特点,依次点亮某一些段,就可以显示数字了. 七段数码管显示数字还是二极管发光 ...

  2. 7段并行数码管显示实验C语言,七段数码管显示十进制数字 (15)

    实验报告 实验题目 设有10个开关,编号分别为0,1,--,9. 设计电路实现某开关闭合时对应显示相应的十进制数字.要求:(1)写出设计说明,(2)用 Proteus或Multisim仿真. 实验方案 ...

  3. FPGA基础知识极简教程(9)七段数码管显示的Verilog简单设计

    博文目录 写在前面 正文 七段数码管原理 七段数码管译码表 单个七段数码管显示verilog设计 多个数码管动态扫描显示 参考资料 交个朋友 写在前面 作为FPGA的基础知识教程怎么能少得了这个简单的 ...

  4. Arduino:数码管显示原理详解和Proteus仿真实验

    Arduino:数码管显示原理详解和Proteus仿真实验 Proteus仿真 数码管介绍 数码管是半导体发光元件,其基本单元是发光二极管.根据段数,数码管分为七段管和八段管. 八段管比七段管还多一个 ...

  5. c语言实现7段数码管显示,七段数码管显示实验.doc

    七段数码管显示实验 单 片 机 实 验 报 告 实验九 七段数码管显示实验 实验目的 学习七段数码管的工作原理: 学习数码管与8051单片机的接口方法: 掌握动态扫描显示技术. 实验原理 如图4.9- ...

  6. python七段数码管显示字母代码_python实现七段数码管显示

    原博文 2020-08-08 21:21 − [TOC] # python实现七段数码管显示 > 运行原理:如图所示,七段数码管由七个线条组成,可以有固定顺序(1--7),不同数字显示不同的线条 ...

  7. 【51单片机】七段数码管显示实验+详细讲解

    [51单片机]七段数码管显示实验 前言 一.兵马未动,粮草先行--认识七段数码管 1.关于显示器 2.七段数码管 3.七段数码管的结构 4.数码管显示方法 二.数码管显示程序 1.静态显示 效果 2. ...

  8. 6、七段数码管显示译码器设计与应用

    1.实验目的 掌握七数码管显示原理 掌握七段码显示译码设计 进一步熟悉 Xilinx ISE 环境及 SWORD 实验平台 2.实验内容 任务 1:原理图设计实现显示译码 MyMC14495 模块 任 ...

  9. 汇编语言实现七段数码管显示控制实验

    一 实验目的 1)掌握8255方式0的工作原理.初始化设置方法. 2)掌握I/O接口地址译码电路的工作原理及端口地址的计算方法. 3)掌握I/O端口的读写操作及编程方法. 4)掌握数码管显示数字的原理 ...

  10. 数码管显示原理:共阴极和共阳极的区别,静态显示程序。

    数码管显示原理:共阴与共阳 LED发光原理是PN结光电二极管将电能转化为光能的结果.当半导体芯片两端加正反向电压时,当电子从n区域注入p区域时,它们与p区的空穴结合并释放能量,这些能量以光子的形式发射 ...

最新文章

  1. CALayer(二)
  2. mysql jdbc tomcat_Tomcat+MySql+jdbc
  3. 剖析Vue原理实现双向绑定MVVM
  4. 如何评价小马智行投后估值60亿美元?无人车的追涨杀跌已经开始
  5. 数学之美系列二 -- 谈谈中文分词
  6. Android官方技术文档翻译——Gradle 插件用户指南(7)
  7. face recognition[翻译][深度学习理解人脸]
  8. Nexus 3.31.1 maven 私服 搭建篇 linux
  9. Linux的shell编程(一)
  10. Linux pthread_mutex_init()函数 [转]
  11. c语言定义int变量 故意输入字母,怎样用C语言输入一段文本,以什么作为输入终止的标志?又怎样才能按输入的格式输出该文本?...
  12. python多进程传递参数_Python进程,多进程,获取进程id,给子进程传递参数操作示例...
  13. Word排版计算机类科研论文的格式保证
  14. Gradle 项目 在 IDEA 中运行,出现找不到符号错误
  15. iOS UIAppearance使用详解
  16. 基于Python的微信朋友圈数据可视化分析之地点
  17. win11更新安装错误0x80073701解决方法
  18. 海康 sdk 视频截取 demo
  19. SRI-Subresource Integrity
  20. 哪些情况下会被银行拒贷?买房真的凑齐首付就够了吗?

热门文章

  1. 【ARM 嵌入式 C 入门及渐进 2 -- 向上取整向下取整 linux roundup/round_up】
  2. 计算机arp 各命令,ARP命令参数详解
  3. java dismiss_窗口泄漏甚至在dialog.dismiss()
  4. 【zc1415926】Unity3D的Android移动之路(二) 辅助神器——Unity Remote
  5. oracle间视图增量同步,ODI数据增量同步
  6. 【防火墙篇】01. 恢复出厂设置 ❀ Juniper 防火墙
  7. python2.0下载_【Python for S60V2】Python for S60V2 V2.0官方免费下载_正式版下载-多特软件站...
  8. 同时掌握96门语言,取得多项世界突破,百度发布预训练模型ERNIE-M
  9. 抽奖助手自动参与抽奖
  10. 节奏大师小游戏制作流程