目录

一、数码管内部结构

二、数码管的显示方式

三、数码管显示编程思想


一、数码管内部结构

1、内部结构有八个发光二极管,一个8字只需要显示7段,但是有一个小数点,dp,所以有八个发光二极管。

2、单个数码管封装十个引脚。3、8引脚是连在一起的,组成公共端。八个发光二极管分别与一个限流电阻串联后再并联,有一个公共端,公共端可以分为共阳或共阴极。

共阴极是公共端接地,然后给高电平让想让亮的字段亮起来。想让显示几,就给对应的字段高电平;

共阳极需要给需要的字段低电平,注意发光二极管本身需要通过5毫安以上的电流才可以发光,且电流不得过大。但是单片机的I/O口送不了这么大的电流,所以需要驱动电路。可以用上拉电阻的方式也可以直接使用专门的驱动芯片,可以使用74HC573锁存器芯片、74HC138译码器,也可以使用专门的数码管驱动芯片LM1640。

3、当多位一体的数码管时内部的公共端是独立的,而负责显示什么数字的段选线是全部连接在一起的。

公共端控制哪个位亮,称为“位选线”,控制单个数码管哪一段亮的叫做“段选线”。

一般单位数码管和二位数码管都有10个引脚,四位数码管有12个引脚。

二、数码管的显示方式

数码管有两种显示方式:静态显示和动态显示。

位选去选哪几个数字亮,而由于段选是连在一起的所以显示的数字是相同的,这称为静态显示。静态显示就是选中不同的数码管显示相同的数字。

数码管动态显示又叫做动态扫描显示,就是选中几个数码管同时显示不同的数字。

数码管的动态是以扫描的方式轮流向数码管送出段选码和位选,利用发光管的余辉和人眼的视觉暂留作用,使人感觉各位数码管同时都在显示,而实际上是多为数码管一位一位的轮流显示,只是轮流的速度非常快,人眼已经无法分辨。

由于数码管动态显示的特性,动态显示时,我们要在每次送完段选数据后、送入位选数据前,加上语句P0 = 0xff或P0=0x00,看采用的是共阳极还是共阴极的数码管。这个操作叫做消影。如果不执行消影操作,语句再接下来的打开位选命令后,仍保持着上次的段选数据,该段选数据将立刻加在数码管上,接下来才是再次通过IO口给位选送入位选数据,数码管上会出现混乱的现象。

三、数码管显示编程思想

数码管显示步骤:1、送段码 2、送位选 3、延时一下,不要超过10ms(不是必须的) 4、消隐

数码管显示时,最好将段码数据和位选数据按顺序放到各自的数组中,这样调用各自的数组,便可以用数字的方式给数码管送入位选和段选数据,更加方便直观。

我们只需将代表不同数字的段码和位选地址放入数组中,便可以直接调用

unsigned char code leddata[] = {//数码管段码表0x3f,//"0"0x06,//"1"0x5b,//"2"0x4f,//"3"0x66,//"4"0x6d,//"5"0x7d,//"6"0x07,//"7"0x7f,//"8"0x6f,//"9"0x77,//"A"0x7c,//"B"0x39,//"C"0x5e,//"D"0x79,//"E"0x71,//"F"0x76,//"H"0x38,//"L"0x37,//"n"0x3e,//"u"0x73,//"P"0x5c,//"o"0x40,//"-"0x00,//"熄灭"};
unsigned char LEDBUF[] = {22,22,22,22};//数据显示缓冲区
unsigned char code PLACE_CODE[] = {0xfe, 0xfd, 0xfb, 0xf7};//位选信号

我们可以在我们设置的数据缓冲区数组中填入我们想要显示的内容,就可以通过数组之间的相互调用的实现显示。

void Display()//因为有数据显示缓冲区,就不用带参数的函数
{static unsigned char i = 0;//静态变量只在第一次时初始化,再次调用就不会被初始化//1、送段码GPIO_DIG = leddata[LEDBUF[i]];//2、送位选GPIO_PLACE = PLACE_CODE[i];//3、延时 1ms,所有数码管整体延时时间不要超过10msDelayXms(1);//4、消隐GPIO_DIG = 0x00;i++;if(i == N)i = 0;
}

数码管显示原理与驱动方式相关推荐

  1. LCD显示原理和驱动方式介绍

  2. 二、数码管显示原理及应用实现

    数码管显示原理及应用实现 视频链接 对应课程:P11-P12 数码管显示原理 我们先看一下一个数码管是如何亮起来的.数码管内部电路如图所示: 为了封装统一,生产商为单位数码管都封装了10个引脚,其中第 ...

  3. STC51入门笔记(郭天祥C语言)---第三节:数码管显示原理及应用实现

    这里是引用 声明:本篇文章只是个人知识盲区.知识弱点.重点部分的归纳总结,望各位大佬不喜勿喷.梳理顺序是按照书籍的实际顺序梳理,转载请注明出处. 作者:sumjess 一.数码管显示原理 我们先来看几 ...

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

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

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

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

  6. 【蓝桥杯单片机】超声波模块(测距原理,驱动方式)

    实验开发板为CT107D蓝桥官方板,编译环境为MDK5 超声波探头测距原理: 发射头发射超声波,遇到障碍物后返回,接收探头接受到返回信号. 两个动作产生的时间差可以是我们根据声音在空气中传播的速度来( ...

  7. 8051/2单片机基础 实现开关,驱动2位的共阳极数码管显示小数,驱动喇叭播放音乐

    1. 实现开关,开关2次后,LED闪烁4次  2. 实现驱动共阳极数码关显示 3.1 3. 驱动喇叭播放 ,dao,re,mi,fa,sao,la,xi C代码: /** * 8051 DEMO 2 ...

  8. python数码管绘制原理_Micropython入门四位数码管显示原理

    原理非常简单,控制各个针脚的高低电平来显示数字,这里我用的是共阳的数码管.不过有一个问题,我第一次显示的时候代码输入数字是9.876不过数码管显示9.875,刚开始我以为代码错了,仔细检查了几遍没有问 ...

  9. 新手必看 四位数码管显示原理

    原理非常简单,控制各个针脚的高低电平来显示数字,这里我用的是共阳的数码管.不过有一个问题,我第一次显示的时候代码输入数字是9.876不过数码管显示9.875,刚开始我以为代码错了,仔细检查了几遍没有问 ...

最新文章

  1. iOS之UI--涂鸦画板实例
  2. 如何提高android串口kernel log等级
  3. Happy Number 十进制转特殊三进制
  4. powershell 开发入门_详谈Ubuntu PowerShell(小白入门必看教程)
  5. 用PyTorch创建一个图像分类器?So easy!(Part 2)
  6. mac mysql prefpane_【MySQL数据库开发之一】Mac下配置安装数据库-MySQL
  7. php在线白板,C#实现网络电子白板、课件功能 (在线教学系统)
  8. Android smartimageview网络图片查看器
  9. es6之Generator
  10. Golang sync.Pool 简介与用法
  11. 如何导出ane所需的swc
  12. 【译】x86程序员手册13-第5章 内存管理
  13. python学习笔记:第21天 常用内置模块之collections和time
  14. Fuse Audio Labs VCS-1 Mac - 零延迟通道条插件
  15. springboot指定属性返回_Spring Boot 最最最常用的注解梳理
  16. 浏览器的工作原理:新式网络浏览器幕后揭秘(转)
  17. 服务器安装SSH服务:
  18. springMVC学习(10)-上传图片
  19. 校招——测试开发工程师岗位面试问题
  20. 手机app测试方法(二)App测试-常见测试点

热门文章

  1. 【信息系统项目管理师】第九十十一章 项目成本质量资源管理
  2. QT——HTTP文件下载器
  3. Java进阶导图xmind版本
  4. BGP邻居(思维导图)
  5. 关于肩外展固定支具的介绍
  6. 计算机二级考试全攻略
  7. 只需 5 秒钟,你就能取到 WPF 程序的超高分辨率超高清截图
  8. 元素显隐切换过渡效果的实现
  9. CloudComparePCL 体元累加法(树冠体积计算)
  10. 精益思想Lean thinking