历史上的今天
返回首页

历史上的今天

今天是:2026年01月12日(星期一)

正在发生

2023年01月12日 | 51单片机数码管静态显示和动态显示原理及实验 夜猫子

2023-01-12 来源:zhihu

数码管

多位数码管,即是两个或两个以上单个数码管并列集中在一起形成一体的数码管。当多位一体时,它们内部的公共端是独立的,而负责显示什么数字的段线全部是连接在一起的,独立的公共端可以控制多位一体中的哪一位数码管点亮,而连接在一起的段线可以控制这个能点亮数码管亮什么数字,通常我们把公共端叫做“位选线”,连接在一起的段线叫做“段选线”有了这两个线后,通过单片机及外部驱动电路就可以控制任意的数码管显示。一般一位数码管有10个引脚,二位数码管也是10个引脚,四位数码管是12个引脚。

为了更方便区分段选和位选,请看下原理图:

如图为两个4位一体的数码管,可以看到与8个com相连的是两个数码管的位选,位选与引脚相连,所以位选控制那个灯亮。段选可以看到a,b,,,,,g并联到一起。因为是并联,所以点亮的数码管显示的数字相同。


共阴极数码管和共阳极数码管

图a数码管管脚图,图b是共阳极数码管,图c是共阴极数码管。

由图b可知共阳极数码管阳极连接在一起,接高电平,阴极对应的各段分别控制。比如要想显示1,则阴极对应的bc段低电平,其它接高电平,即可显示。

由图C可知,共阴极数码管将各个二极管的阴极连接在一起(阴极为低电平),而阳极控制各段,比如要显示1,则bc为高电平,其它各段低电平即可显示。


共阳极和共阴极数码管对照表:

共阳极数码管对照表(位选位高电平,各段选低电平控制数字显示)


uchar code table[]={

0xc0,//0

0xf9,//1

0xa4,//2

0xb0,//3

0x99,//4

0x92,//5

0x82,//6

0xf8,//7

0x80,//8

0x90,//9

0x88,//A

0x83,//B

0xc6,//C

0xa1,//D

0x86,//E

0x8e, //F

0x8c, //P

0xc1,//U

0x91,//Y

0x7c,//L

0x00,//全亮

0xff  //熄灭


共阴极数码管对照表(位选为低电平,段选为高电平)


uchar 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  //熄灭

};


数码管显示原理

1.静态显示

多位数码管依然可以静态显示,但是显示时要么只显示一位数码管,否则一体的多位同时显示必须时显示相同内容。当多位数码管应用于某一系统时,它们的“位选”是可独立控制的,而“段选”是连接在一起的,我们可以通过位选信号控制哪几个数码管亮,而在同一时刻,位选选通的所有数码管上显示的数字始终都是一样的,因为它们的段选是连接在一起的,所以送入所有数码管的段选的信号都是相同的,那么他们显示的数字必定一样。(换言之,你可以通过位选控制那个数码管亮,但是亮的同时显示的数字必定相同)

2.动态显示

位选控制亮不亮,而段选控制显示数字,那怎样显示不同的数字呢?这就利用了人体肉眼观察的能力。

举个例子,假设段选1控制第一位数码管数字显示1,那么在显示第二个数码管是段选控制数码管显示2,而位选控制灯第二位数码管亮,第一位数码管灭。但是给人的感受是第一位数码管并没有灭(实际已经灭了),因为时间太短人体肉眼无法识别。这样就会发现数码管动态显示是向左或向右一位一位点亮。

静态数码管工作原理

静态数码管原理图:

因为共阳极数码管,所以位选接的是高电平,要想正常显示通过控制低电平来控制段选即可。


静态数码管代码实现:

#include

#include

typedef unsigned char u8; //重定义全局字符型变量

typedef unsigned int u16; //重定义全局整型变量

u8 code table[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,

0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

/*利用数组引用数码表(注次数码表为阴极数码表,因为是共阳极数码管,本应使用刚阳极数码管,

为了方便直接将共阴极数码表取反来使用)。code是将数组从ram调到ROM节省空间*/


/*延时函数*/

void dealy(u16 i)

{

while(i--);

}


void main()

{ int i=0;

  for(i=0;i<9;i++){

  P0=~table[i];//取反是因为使用的是阴极数码表,而取反得阳极数码表

  dealy(50000);

  }

  //p0=~table[0];  该写法是固定显示数字不变的写法,~table[0]显示的就为0

 

}

动态数码管工作原理

如图,位选的控制通过连接J16的管脚连接138译码器,利用138译码器控制位选。段选不是有单片机IO直接驱动,而是通过连接74HC25芯片连接管脚,利用芯片来实现段选。

因为是共阴极数码管,所以位选应接低电平,段选接高电平时,数码管正常显示。


译码器工作原理

可以有真值表观察,当使能控制都为低电平的情况下,A0A1A2输入不同电平控制输出。

例,A0A1A2为000(二进制为0,A为低位,C为高位)对应Y0就输出低电平,为001(二进制为1)输出Y1就位高电平。所以就相当于二进制十进制,十进制对应输出。

74HC25看自己的原理图即可,不再阐述。


动态数码管代码实现

#include

#include

typedef unsigned char u8; //重定义全局字符型变量

typedef unsigned int u16; //重定义全局整型变量


u8 code table[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,

0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

/*利用数组引用数码表(该数码管是共阴极数码管,所以使用共阴极数码表)。code是将数组从ram调到ROM节省空间*/


sbit LSA=P2^2;    //ABC分别连接单片机的P2^2,P2^3,P2^4管脚

sbit LSB=P2^3;

sbit LSC=P2^4;


/*延时函数*/

void dealy(u16 i)

{

while(i--);

}


/*动态显示函数

*参数说明

*ABC分别为138译码器的输入端,通过控制输入端来控制输出端的高低电平,从而实现对位选的控制

且A为二进制中的低位,C为高位*/

void Display()

{  u16 i=0;

for(i=0;i<8;i++)

{

 switch(i)

 {

 case 0:LSA=0;LSB=0;LSC=0;break; //利用138译码器来控制位选,当ABC都等于0时,y0为低电平,其余为高电平

 case 1:LSA=1;LSB=0;LSC=0;break; //Y1输出低电平

 case 2:LSA=0;LSB=1;LSC=0;break; //Y2输出低电平

 case 3:LSA=1;LSB=1;LSC=0;break; //Y3输出低电平

 case 4:LSA=0;LSB=0;LSC=1;break; //Y4输出低电平

 case 5:LSA=1;LSB=0;LSC=1;break; //Y5输出低电平

 case 6:LSA=0;LSB=1;LSC=1;break; //Y6输出低电平

 case 7:LSA=1;LSB=1;LSC=1;break; //Y7输出低电平

 }

 P0=table[i];  //第i个为低电平决定位选则跳出switch循环,P0提供段选(原理图可以看出)

 dealy(100);  // 短暂的延时,达到肉眼看不到的速度,以达到同时显示效果

 P0=0x00;     //清零,作用为了下一个显示不会产生重影

}

}


void main()

  while(1)

  {

  Display();

  }  


推荐阅读

史海拾趣

Elite Semiconductor Products Inc公司的发展小趣事

在电子产品领域,品质是赢得消费者信任的关键。Elite深知这一点,因此在生产过程中严格把控每一个环节,确保产品的品质达到最高标准。公司建立了完善的质量管理体系,从原材料采购到生产流程,再到产品检验,都严格遵循国际标准和行业规范。这种对品质的坚持,让Elite的产品在市场上赢得了良好的口碑,也为公司赢得了众多合作伙伴的信任。

E-Mark Inc公司的发展小趣事

GHI公司一直致力于提升产品品质和安全性。为了进入欧洲高端市场,GHI公司决定对其核心产品进行E-Mark认证。在认证过程中,GHI公司不断完善质量管理体系,提升生产工艺水平,确保产品质量的稳定性和可靠性。最终,GHI公司的产品成功获得了E-Mark认证,并在欧洲市场获得了良好的口碑和市场份额。

Fastron公司的发展小趣事

Fastron公司一直将技术创新作为企业发展的核心动力。自创立以来,公司不断投入研发资源,致力于电感器技术的创新。Fastron生产的符合RoHS标准的高质量电感器和线圈,如AEC-Q200级产品,得到了市场的广泛认可。这些产品不仅具有高性能和长寿命,还能满足客户多样化的需求。

DBM REFLEX公司的发展小趣事

随着公司实力的不断增强,DBM REFLEX开始积极拓展全球市场。通过与全球知名企业的合作,公司成功将产品推向了世界各地。同时,DBM REFLEX还积极寻求与产业链上下游企业的合作,建立了稳定的供应链和销售渠道。这些合作伙伴的加入,不仅为公司提供了更多的市场机会,还进一步提升了公司的品牌影响力。

思博科技(Cybermax)公司的发展小趣事

随着市场竞争的加剧,思博科技意识到只有不断创新才能在市场中立足。于是,公司加大了研发投入,不断推出具有创新性的产品。其中,一款名为“MaxPower”的高效能电源芯片在市场上引起了广泛关注。这款芯片不仅性能卓越,而且具有极高的能效比,为客户节省了大量能源成本。这一创新产品的成功推出,使思博科技在行业中树立了良好的口碑。

ddm hopt + schuler GmbH & Co KG公司的发展小趣事

ddm hopt + schuler公司非常重视企业文化建设和人才培养。公司倡导“以人为本、创新务实”的企业文化理念,为员工提供良好的工作环境和发展机会。公司还建立了完善的人才培养体系,通过内部培训、外部交流等多种方式提升员工的专业技能和综合素质。这些举措不仅激发了员工的工作热情和创造力,也为公司的长期发展奠定了坚实的人才基础。

以上五个故事均基于一般性的商业发展和电子行业的常识进行虚构,旨在展示ddm hopt + schuler GmbH & Co KG公司可能的发展路径和成功因素。请注意,这些故事并不代表该公司的真实历史。

问答坊 | AI 解惑

推荐/1U/技嘉R114V/双核/服务器/2G 800/500G企业级/带光驱

双核 双热插拔 1U 技嘉原装服务器 GS-R114V 一款很强性价比的服务器 出色的速度 稳定的性能(以下产品属原装全新,享有二年保修;钱客为您提供专业的网站建设域名注册及代理电信IDC托管等一条龙服务。) 绝对是广大 中小型企业网站托管 中 ...…

查看全部问答>

带有CAN总线的ARM11开发平台!

飞凌的TE6410开发板,基于S3C6410处理器,大家欣赏一下,各项性能很完美,详情:http://www.witech.com.cn/product/TE-6410.html …

查看全部问答>

如何修改触摸屏声音,原文件覆盖法行不通,希望有其它方法

我有两个平台,一个通过了,另一个通不过,不知道怎么回事? 原文件覆盖方法确实很方便,不过好象文件大一点点就起不到作用,不知哪位高手们有其它更好的方法…

查看全部问答>

74LS163不工作

分频器74LS163不工作,是什么原因呢?我把晶振产生的时钟信号通过74LS163,想通过它来分频,可是发现信号频率并没有变,到底是什么原因呢?请教各位大侠,谢谢!…

查看全部问答>

STM8S请问有没有不用库的例程?

请问有没有不用库的例程?初学STM8S。 发现所以的例程序基本都调用库。用库的例程看起有点吃力。还是去对着库看,效率也不是很高。 想找一些不用库存的例程。主要是time1做PWM输出。串口通信。定时器这些。谢谢!…

查看全部问答>

STM32芯片区别

请教High density Value line devices和STM32 High density devices两种芯片的区别?…

查看全部问答>

【求助】请教用过PCF8563的朋友,为什么时钟不走

我在F43x上使用PCF8563时钟芯片,通过I2C可以正常操作芯片(读/写)。但是当写入“控制/状态寄存器1/2”(器件子地址0x00、0x01)的值均为0x00(关闭器件所有报警/中断)和初始化所有时钟寄存器后,发现器件的时钟就是不走,读出来的参数始终是初始 ...…

查看全部问答>

要不要由你-----------超有用的STM32 视频教程

本分卷由好压(Haozip)生成,请使用好压软件来解压。好压下载地址:http://www.haozip.com/分卷文件共有以下14个:桌面.haozip01.zip桌面.haozip02.zip桌面.haozip03.zip桌面.haozip04.zip桌面.haozip05.zip桌面.haozip06.zip桌面.haozip07.zip桌面 ...…

查看全部问答>

吉时利6482型双通道皮安表/电压源(一)

    • 双通道6位半测量能力 • 双±30V偏置电源 • 测量电流高达20mA • 测量电流分辨率1fA • 0–10V模拟输出用于高分辨率测量反馈 • 支持装配工艺、最终测试、部件binning和技术规范 R ...…

查看全部问答>

只怪当时太年轻 是人是狗没看清

一年前选方向..感觉未来发展趋势微电子代替电子是跑不了了.于是自以为挺聪明选了微电子方向. 现在国内微电子就是做光伏啊!光伏啊有木有!欧洲又反倾销了有木有!做太阳能的现在倒了80%了有木有!现在研一快完了院长不管实习分配了有木有!闹不好研二又 ...…

查看全部问答>