0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

数码管的基本构造、显示原理及驱动方式

CHANBAEK 来源:CSDN-_会飞_的鱼 作者:CSDN-_会飞_的鱼 2023-03-07 15:16 次阅读

一. 什么是数码管

LED数码管LED Segment Displays)是由8个发光二极管构成,并按照一定的图形及排列封装在一起的显示器件。 其中7个LED构成7笔字形,1个LED构成小数点(也被称为为八段数码管)。

常用的数码管位数有1,2,3,4,5,6,8,10位等等,颜色有红,绿,蓝,黄等几种。 了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。

二. 数码管基本构造

LED数码管有两大类,一类是共阴极接法,另一类是共阳极接法,共阴极就是8段的显示字码共用一个电源的负极,是高电平点亮,共阳极就是7段的显示字码共用一个电源的正极,是低电平点亮。 只要控制其中各段LED的亮灭即可显示相应的数字、字母或符号。

共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已,共阴为所有的LED负极接在一起,共阳为为所有的LED正极接在一起。 如下图为1位数码管的共阴极和共阳极原理图:

截图20230301181839.png

三、数码管显示原理

要是数码管显示数字,有两个条件:1.是要在VT端加合适的电源(一般每颗LED还需串上合适的电阻,起限流作用); 2.要使(a,b,c,d,e,f,g,dp)端接低电平或“0”电平。 这样才能显示的。

例如下图的共阴极数码管,须在VT端接上地端,(a,b,c,d,e,f,g,dp)端接到单片机的引脚上; 如果要使其中一个LED亮时,对应的单片机引脚输出高电平,即可点亮LED灯。

截图20230301181839.png

共阴极LED数码管的内部结构原理图

能够点亮数码管后,就可以通过单片机控制数码管显示数字或字母。 为了控制方便,我们将数码管的a~dp引脚依次连接单片机的P10-P17引脚,如图:

截图20230301181839.png

我们对数码管所要显示的每个数字和字母进行编码,然后在编程时,将编码放在一个数组上,需要显示什么数字或者字母,从数组里面提取相应的编码就可显示所要显示的字符了。

如图,要显示数字“5”时,编码为0x6D。 如果数码管为共阳极,只需要对共阴极的编码做一个取反操作即可。

截图20230301181839.png

四. 数码管驱动方式

根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。

1.静态驱动方式

led静态显示时,其公共端接地(共阴极)或接电源(共阳极),各段选线分别与I/O口接线相连。 要显示字符,直接在I/O线发送相应的字段码。

优点: 静态显示结构简单,显示方便,要显示某个字符直接在IO线上发送相应的字段码

缺点: 一根数码管需要8根IO线,数码管比较多时候,非常占用IO线。

2.动态驱动方式

动态驱动方式是将所有的数码管的段选线并接在一起,用一个IO接口控制,公共端并不是直接接地(共阴极)或者电源(共阳极),而是通过相应的IO接口控制。

以共阳极为例假设4个数码管工作过程为,如图:

截图20230301181839.png

四位数码管动态驱动方式连接图

  1. 每个数码管的公共端与单片机的一个IO相连,第一步使最右边一个数码管的公共端为1(P21),其余数码管公共端为0,同时在(a,b,c,d,e,f,g,dp)P0端上发送右边第一个数码管的字段码,这时候只有右边的第一个数码管显示,其余不显示;
  2. 第二步使右边第二个数码管的公共端(P23)为1,其余的公共端为0,同时在(a,b,c,d,e,f,g,dp)P0端上发送右边第二个数码管的字段码,这时候,只有右边第二个数码管显示,其余不显示;
  3. 以此类推,直到最后一个,这样子4个数码管轮流显示相应的信息,一遍显示完毕,隔一段时间,又这样循环显示。

从计算机角度,每个数码管隔一段时间才显示一次,但是由于人的视觉暂留效应,只要隔离时间足够短,循环的周期足够长,美妙达到24次以上,看起来数码管就一直稳定显示了,这就是动态显示原理。

五. 八位数码管动态驱动例程

以八位共阴极数码管,动态驱动的方式为例:

#include<reg51.h>




//--定义使用的IO口--//
#define GPIO_DIG   P0  //段选
#define GPIO_PLACE P1  //位选




//--定义全局变量--//
unsigned char code DIG_PLACE[8] = {
0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位选控制   查表的方法控制
unsigned char code DIG_CODE[17] = {
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码
unsigned char DisplayData[8];
//用来存放要显示的8位数的值




//--声明全局函数--//
void DigDisplay(); //动态显示函数
/*******************************************************************************
* 函 数 名         : main
* 函数功能       : 主函数
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/
void main(void)
{
  unsigned char i;




  for(i=0; i<8; i++)
  {
    DisplayData[i] = DIG_CODE[i];  
  }
  while(1)
  {
    DigDisplay();
  }        
}




/*******************************************************************************
* 函 数 名         : DigDisplay
* 函数功能       : 使用数码管显示
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/
void DigDisplay()
{
  unsigned char i;
  unsigned int j;




  for(i=0; i<8; i++)
  {
    GPIO_PLACE = DIG_PLACE[i];   //发送位选
    GPIO_DIG = DisplayData[i];     //发送段码
    j = 10;             //扫描间隔时间设定
    while(j--);  
    GPIO_DIG = 0x00;//消隐
  }
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电源
    +关注

    关注

    184

    文章

    17455

    浏览量

    249000
  • led
    led
    +关注

    关注

    240

    文章

    23025

    浏览量

    656178
  • 数码管
    +关注

    关注

    32

    文章

    1873

    浏览量

    90829
  • 显示器件
    +关注

    关注

    1

    文章

    58

    浏览量

    11762
  • 驱动方式
    +关注

    关注

    0

    文章

    15

    浏览量

    7382
收藏 人收藏

    评论

    相关推荐

    数码管驱动电路讲解

    根据项目需求可以用I/O外部上拉,用来驱动数码管;也可以74HC138(38译码器)+74HC245(8路信号收发器)驱动数码管。本文会以后者为数码
    的头像 发表于 11-01 17:34 3117次阅读
    <b class='flag-5'>数码管</b><b class='flag-5'>驱动</b>电路讲解

    数码管驱动芯片的使用方法

    数码管驱动芯片(也称为LED驱动芯片)是一种用于控制数码管显示的集成电路。它可以将微控制器产生的数字信号转换为适合
    的头像 发表于 12-08 16:24 9258次阅读

    数码管驱动方式

    数码管驱动方式   数码管要正常显示,就要用驱动电路来
    发表于 11-06 11:42 3923次阅读

    单片机驱动数码管显示设计

    单片机驱动数码管显示设计资料
    发表于 08-29 10:52 25次下载

    数码管(静态显示)【汇编版】

    数码管(静态显示)【汇编版】数码管(静态显示)【汇编版】数码管(静态显示)【汇编版】
    发表于 12-29 15:27 0次下载

    动态数码管显示程序

    动态数码管显示程序,动态数码管显示程序,动态数码管显示程序,动态
    发表于 01-12 14:55 60次下载

    数码管显示的多种方式

    1、 实现3*4按键数码管显示
    发表于 09-06 15:02 22次下载

    数码管显示原理与驱动方式

    数码管,也称作辉光,是一种可以显示数字和其他信息的电子设备。玻璃中包括一个金属丝网制成的阳极和多个阴极。大部分数码管阴极的形状为数字。
    的头像 发表于 11-21 07:07 6318次阅读

    七段数码管驱动方式_七段数码管怎么接

    本文首先介绍了七段数码管驱动方式,其次介绍了七段数码管引脚图,最后介绍了七段数码管引脚连接方法。
    发表于 10-09 11:16 1.7w次阅读

    51汇编(六):数码管显示

    文章目录数码管驱动单位数码管数码管数码管分为共阴数码管和共阳
    发表于 11-22 09:06 10次下载
    51汇编(六):<b class='flag-5'>数码管</b><b class='flag-5'>显示</b>

    数码管的四种驱动方式

    通过三极驱动方式,来点亮数码管
    的头像 发表于 03-22 15:50 1.5w次阅读
    <b class='flag-5'>数码管</b>的四种<b class='flag-5'>驱动</b><b class='flag-5'>方式</b>

    LED数码管显示方式驱动方式

    LED数码管,作为现代电子显示技术中的重要组成部分,以其高亮度、长寿命和低功耗等特点,广泛应用于各种数字显示设备中。本文将详细阐述LED数码管显示
    的头像 发表于 05-30 17:37 2248次阅读

    数码管驱动芯片原理是什么

    数码管驱动芯片是一种广泛应用于数字显示领域的电子元件,它能够将数字信号转换为可视的数字显示。 一、数码管
    的头像 发表于 08-28 16:07 516次阅读

    数码管驱动芯片引脚功能

    数码管驱动芯片是一种用于驱动数码管显示数字或字符的集成电路。数码管
    的头像 发表于 08-28 16:08 574次阅读

    驱动数码管显示不良原因

    驱动数码管显示不良的原因可能有很多,涉及到硬件、软件、环境等多个方面。 一、引言 驱动数码管是一种广泛应用于工业自动化、电子设备等领域的
    的头像 发表于 08-28 16:38 497次阅读