中国电子技术网

设为首页 网站地图 加入收藏

 
 

讲解常用数码管原理和使用方法

关键词:断码管 嵌入式开发 数码管

时间:2020-02-10 13:44:56      来源:网络

数码管是嵌入式开发中比较常用的一个模块,本篇文章根据查阅的资料以及学习笔记整理成文,尽可能详尽的讲解常用数码管原理和使用方法。

数码管是嵌入式开发中比较常用的一个模块,本篇文章根据查阅的资料以及学习笔记整理成文,尽可能详尽的讲解常用数码管原理和使用方法。

一、工作原理

数码管是一种半导体发光器件,其基本单元是发光二极管。能显示 4 位数字的叫四位数码管,当然也有多位和只有一位的数码管,他们的电气原理相同。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极 COM 接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极 COM 接到地线 GND 上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。

二、电气特性

单位数码管有十个管脚,其中有 8 根是用来点亮 a,b,c,d,e,f,dp 共 8 个发光二极管(原理中有介绍),3,8 两个管脚为公共 COM 脚,它们相连通且作用相同,可接任意一根。为了更清楚介绍,贴图如下

 

共阴数码管脚位对应图

三、驱动方式

1、静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的 I/O 端口进行驱动,或者使用如 BCD 码二 - 十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用 I/O 端口多,如驱动 5 个数码管静态显示则需要 5×8=40 根 I/O 端口来驱动,要知道一个 89S51 单片机可用的 I/O 端口才 32 个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。

2、数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的 8 个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极 COM 增加位选通控制电路,位选通由各自独立的 I/O 线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通 COM 端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的 COM 端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为 1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的 I/O 端口,而且功耗更低。

四、开发实例

下面讲解一下四位数码管的动态驱动显示,首先看一下接线引脚图如下。

 

接下来用 51 单片机设计目标:通过编写 c 语言程序经编译连接后下载到单片机中,使四位数码管依次显示 1,2,3,4

#define uchar usigned char


#define uint  usigned int

 

// 位选控制端口


sbit p20=P2^0;


sbit p21=P2^1;


sbit p22=P2^2;


sbit p23=P2^3;

 

// 数码管段选编码数组,分别为显示:1,2,3,4 的编码

 

uchar code BianMa[] ={0x7,0xb,0xd,0xe};

 

// 延时 1ms 函数(用于数码管动态刷新)

 

void Delay1ms(int time);

 

void main()

 

{

 

while(1)

 

{
 

p20 =0; // 共阴极数码管低位选有效,表示已选中第一位数码管
 

P0 =BianMa[0];// 通过 I/O 口 P0 向数码管送段选编码
 

Delay1ms(500);// 第一位数码管显示 0.5 秒,然后换到第二位,依次下去,由于视觉停留和数码管余辉,所以感觉四位都在显示
 

p20 =1;
  
p21 =0;  // 第二位亮
 

P0 =BianMa[1];
 

Delay1ms(500);
 

p21 =1;
  
p22 =0;  // 第三位亮


P0 =BianMa[2];


Delay1ms(500);


p22 =1;
  
p23 =0;  // 第四位亮


P0 =BianMa[3];


Delay1ms(500);


p23 =1;


}

 

// 延时函数体


void Delay1ms(int time


{


int i,j;

 

for(i =time;i>0;i--)


for(j =110;j>0;j--)


}

五、关于亮度和锁存器

一般来说静态驱动的亮度要高于动态驱动的亮度,但不影响使用。实际使用中为了达到更好的效果,会配合锁存器如 74HC573 一起使用,可以记忆先前状态数据直到有新数据覆盖。对做 51 单片机应用开发来说,相对 LCD 液晶,液晶模块编程更方便,样式更多样,但是其缺点亮度不够。这也恰恰是数码管的优势,如果做简单的计数显示,数码管是最好选择。

六、使用中注意事项

数码管的基本组成是发光二极管,因此其可以通过的电流只有几 mA,接 5V 直流电源做测试的时候一定要串上一个几十 K 大小的电阻。否则,很容易烧掉,此外用万用表的测电阻档就可将其点亮,足以说明其电流之小。

  • 分享到:

 

猜你喜欢

  • 主 题:英飞凌XMC4000支持EtherCAT®通讯的伺服/IO控制方案介绍
  • 时 间:2024.04.25
  • 公 司:英飞凌&骏龙科技

  • 主 题:安森美数字助听芯片的创新
  • 时 间:2024.05.09
  • 公 司:安森美

  • 主 题:IO-Link 技术介绍及相关设计解决方案
  • 时 间:2024.05.22
  • 公 司:ADI & Arrow