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

数码管工作原理

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
数码管是嵌入式开发中比较常用的一个模块,本篇文章根据查阅的资料以及学习笔记整理成文,尽可能详尽的讲解常用数码管原理和使用方法。有不足和疏忽的地方,请不吝指正。  f6 `3 P% @+ P
# |: x, l$ o* B. J; w( o' J0 L7 Q5 T. d+ z) `9 ?) l  a2 {) Y( `. K: f9 |4 s' X& Y
4 W( u. \$ H) ?" @' P: J+ @+ s$ M' d) C! @5 ~( Y
一、工作原理/ q# C% S/ t& g& |& [1 p6 e5 F5 z2 M: H& L+ @+ f8 t
; e/ P5 M. W. u% m6 B3 n  ^. V

3 `; g, U# T, x. c/ c数码管是一种半导体发光器件,其基本单元是发光二极管。能显示4位数字的叫四位数码管,当然也有多位和只有一位的数码管,他们的电气原理相同。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。4 M# |6 b' B# `8 |" {5 B: Q+ v4 f& a6 g& W- y$ ^( }9 W" c
0 U6 J* A$ |& y. Q

0 n7 ^+ `* _" }2 r
/ C- M1 s( A" v9 y2 @/ A7 r
& \) `+ l+ p: r/ }; ^$ o" B. G" j
* w2 }. `  y  q& P" ~) Y% M: C2 n( V
# N/ x% \8 L  w: K& x
二、电气特性) y6 T" H5 `, O  z
, `6 I* C( J! w; i4 {* F: V1 z; z' o* Q
8 U5 |# L4 c* I. y3 i; h  _
* P1 J$ I; M9 |+ ?
单位数码管有十个管脚,其中有8根是用来点亮a,b,c,d,e,f,dp 共8个发光二极管(原理中有介绍),3,8两个管脚为公共COM脚,它们相连通且作用相同,可接任意一根。为了更清楚介绍,贴图如下
$ U9 T. n) R/ V. r' D( [4 C9 _0 G' i/ ^  \  P
5 y8 A+ b( d' O. Z" b. M
' U( E0 x* n  c* n9 O
# a8 A8 `( \1 b! |2 ^# P/ e6 y; G- u1 L4 f6 }3 O# p& D

& b0 }2 Y3 N) L1 j3 L* X) g) i
, [- Q9 r: j( u- n9 V2 T+ c
' k5 t* @# H7 Y共阴数码管脚位对应图
7 P( w$ Q  b; B# J* l) i% X, B' D5 f4 X% A/ ?" X% h3 H5 n
0 z- n6 `6 a3 c% J  D
& ?$ F+ P1 M! L6 [. d! ^9 U4 q% S; `$ s6 L7 x
三、驱动方式
9 p, Y. V9 I$ B6 @9 ?& Y6 W/ P7 O5 |* A
/ @8 `4 `( G0 R$ i
1、静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。8 W6 p) V' D9 ~  U; L5 W# h3 C8 k( ~
6 A6 w2 \( e) r5 L9 E
1 T$ k; S: `' C  a/ ]) q' O

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

* _6 W5 b4 h+ z0 l+ B4 ~四、开发实例' ]$ O/ \/ ^0 I& i( V0 N3 P5 q" X, P4 q
2 \' g0 [3 m6 N0 A7 c4 Q& l6 n9 l& O
, v! [; y, q) h+ w- `3 V
( e% ^$ U8 Z$ X! s
下面讲解一下四位数码管的动态驱动显示,首先看一下接线引脚图如下。' a! W. h$ S; K7 Q% m
) ~; J7 d% a8 r4 B) T0 u: Y2 X! b/ c4 a$ _
& }6 ]% {5 m: I7 p% f4 a) ~5 H) d
. v% k7 V/ m. b( w8 [! Z' M
4 \( E/ [* H) D. `
' Q' t6 l' f8 K; w. w- R6 \+ k. W* G3 F
  A2 C# d* d# P5 m# F% K- d
* n  C% F7 a' l! [) k# d2 S

! J. k: l/ X8 ]7 P* r: J接下来用51单片机设计目标:通过编写c语言程序经编译连接后下载到单片机中,使四位数码管依次显示1,2,3,4. b" s6 a6 V6 U7 P# l/ K9 I4 s) V# W' f4 @% I, t$ h- C9 Z
7 u! b5 m* h% W8 i, r2 A9 y2 F  k
! L1
  • M1 `, S1 q* S3 U" [2 u# U4 J2 E/ m7 f8 C5 x& a# @3 ]- [. x0 O
#define uchar usigned char#define uint  usigned int, P0 Y# l$ y) {4 U& T$ y$ a/ L. J5 H9 W; p7 a7 Z/ |; Z7 ]: u
//位选控制端口sbit p20=P2^0;sbit p21=P2^1;sbit p22=P2^2;sbit p23=P2^3;. B8 @9 r- _- e* _+ a
  o4 |) M8 g4 Y//数码管段选编码数组,分别为显示:1,2,3,4的编码uchar code BianMa[] ={0x7,0xb,0xd,0xe};
4 j8 @( Y% Q9 D- K, w* m//延时1ms函数(用于数码管动态刷新)void Delay1ms(int time);9 s/ I% x) l% G7 p9 M6 J
9 \( b$ h: I+ e' G+ svoid 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;}# p1 [; r. X  o9 V7 i  v# C+ s: g7 }  K
//延时函数体void Delay1ms(int time{  int i,j;  for(i =time;i>0;i--)    for(j =110;j>0;j--)}8 K. w* w, w6 {/ N; y
% z! ?! |2 _: m, `7 Q
+ _/ M9 o+ }1 w
+ E7 X5 {! M1 G# a0 p五、关于亮度和锁存器  a5 V6 o1 Z& M5 ^8 O4 b
  ~. y0 R5 a" A  O; ^5 e; j# q
# K" N  u, t/ N5 r1 T& `1 {0 @# }
/ B: ]5 E$ j* L- d4 O. s
8 q- C: o, p: z# \: I一般来说静态驱动的亮度要高于动态驱动的亮度,但不影响使用。实际使用中为了达到更好的效果,会配合锁存器如74HC573一起使用,可以记忆先前状态数据直到有新数据覆盖。对做51单片机应用开发来说,相对LCD液晶,液晶模块编程更方便,样式更多样,但是其缺点亮度不够。这也恰恰是数码管的优势,如果做简单的计数显示,数码管是最好选择。3 p7 K) Z* Z8 s3 z  h& y* q

0 f; z2 F4 N3 @/ S# K) x
, T1 ^, w. I1 C# c
8 i7 D/ o/ |) r0 _1 ~8 x% W. S六、使用中注意事项
7 t# v2 X' H# a" [) d$ G7 l. w3 \, I
5 O* o( n) G$ I4 R& z. j+ x2 N

$ c) w0 i4 w) b9 e9 ~数码管的基本组成是发光二极管,因此其可以通过的电流只有几mA,接5V直流电源做测试的时候一定要串上一个几十K大小的电阻。否则,很容易烧掉,此外用万用表的测电阻档就可将其点亮,足以说明其电流之小。' ~3 {0 V4 W7 e. k- K! t' |0 R
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-26 18:51 , Processed in 0.109375 second(s), 27 queries , Gzip On.

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

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

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