找回密码
 注册
关于网站域名变更的通知
查看: 489|回复: 4
打印 上一主题 下一主题

常用数码管,你了解多少?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-7-20 10:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 行者~ABC 于 2020-7-20 10:11 编辑
" d: M% }8 y: z; R1 L0 E
1 g5 c* A2 e4 n7 s4 k: D8 i# c! g/ {$ u+ V8 @
数码管是嵌入式开发中比较常用的一个模块,本篇文章根据查阅的资料以及学习笔记整理成文,尽可能详尽的讲解常用数码管原理和使用方法。有不足和疏忽的地方,请不吝指正。

, t* t$ `% `! e) W* U3 Q. X- M& `
一、工作原理

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

% F- X. o" Q9 ~( }
: D4 y3 \8 Z' P' I& Y; `# F
二、电气特性
$ ]  t; h* V( _
单位数码管有十个管脚,其中有8根是用来点亮a,b,c,d,e,f,dp 共8个发光二极管(原理中有介绍),3,8两个管脚为公共COM脚,它们相连通且作用相同,可接任意一根。为了更清楚介绍,贴图如下

" g5 k8 y( B6 ~8 j# ?/ S8 q/ a" T
共阴数码管脚位对应图
' k3 J2 L5 F; m. y# o. [- l5 B3 [
三、驱动方式

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

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

( m; V8 u1 f$ H9 ~# j3 z6 i6 Y
四、开发实例
8 Z4 y6 Q( X/ \2 Q. Q
下面讲解一下四位数码管的动态驱动显示,首先看一下接线引脚图如下。
9 R2 H5 z  U3 f) G, i% m& L

4 }" `4 j+ x* ^, C4 q# R
接下来用51单片机设计目标:通过编写c语言程序经编译连接后下载到单片机中,使四位数码管依次显示1,2,3,4

  • " F( }( {) s# R5 i$ q  ^& \. E
#define uchar usigned char
#define uint  usigned int
) P' Y! i6 |1 g. I! O$ ?7 I
//位选控制端口
sbit p20=P2^0;
sbit p21=P2^1;
sbit p22=P2^2;
sbit p23=P2^3;
* y: |0 J8 h' S' R6 F0 g
//数码管段选编码数组,分别为显示:1,2,3,4的编码
uchar code BianMa[] ={0x7,0xb,0xd,0xe};

; F* y, ^) A0 _1 i6 w+ ]7 f
//延时1ms函数(用于数码管动态刷新)
void Delay1ms(int time);

, h2 h1 }7 _2 a, {
void main()
{
while(1)
{
  p20 =0; //共阴极数码管低位选有效,表示已选中第一位数码管
  P0 =BianMa[0];//通过I/O口P0向数码管送段选编码
  Delay1ms(500);//第一位数码管显示0.5秒,然后换到第二位,依次下去,由于视觉停留和数码管余辉,所以感觉四位都在显示
  p20 =1;

, o4 x* G4 Z8 C  H0 u8 y2 |
  p21 =0;  //第二位亮
  P0 =BianMa[1];
  Delay1ms(500);
  p21 =1;

! r! {/ E1 C! \
  p22 =0;  //第三位亮
  P0 =BianMa[2];
  Delay1ms(500);
  p22 =1;

& v& B# L5 K3 ~0 |- [
  p23 =0;  //第四位亮
  P0 =BianMa[3];
  Delay1ms(500);
  p23 =1;
}
8 H" \& H, P/ }8 I* h
//延时函数体
void Delay1ms(int time
{
  int i,j;
  for(i =time;i>0;i--)
    for(j =110;j>0;j--)
}
1 S& Y$ }* X2 K
五、关于亮度和锁存器
' z. J6 P1 ~* h7 n+ _! Y! d
一般来说静态驱动的亮度要高于动态驱动的亮度,但不影响使用。实际使用中为了达到更好的效果,会配合锁存器如74HC573一起使用,可以记忆先前状态数据直到有新数据覆盖。对做51单片机应用开发来说,相对LCD液晶,液晶模块编程更方便,样式更多样,但是其缺点亮度不够。这也恰恰是数码管的优势,如果做简单的计数显示,数码管是最好选择。9 p" Q5 b/ c! J% i7 b) T- p: l, B1 f
% F6 s! D6 z  m& d/ s
六、使用中注意事项
4 o/ e: p0 }. e. l6 x: N* J
数码管的基本组成是发光二极管,因此其可以通过的电流只有几mA,接5V直流电源做测试的时候一定要串上一个几十K大小的电阻。否则,很容易烧掉,此外用万用表的测电阻档就可将其点亮,足以说明其电流之小。
& _0 s9 w% |& }0 D$ W6 v# `
+ u5 e$ f& `3 x: \5 y. t5 B# R
# j& y6 E- Y" g
7 U7 P7 s& p) g
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-7-20 10:52 | 只看该作者
    位选和段选比较重要

    该用户从未签到

    4#
    发表于 2020-7-20 13:39 | 只看该作者
    码表也很重要
  • TA的每日心情
    开心
    2023-6-1 15:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    5#
    发表于 2020-7-20 14:28 | 只看该作者
    有例子,好控制

    “来自电巢APP”

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-23 21:41 , Processed in 0.078125 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表