【C51学习记录-1】共阴极,共阳极数码管的简单操作

    [caption id=”attachment_637” align=”aligncenter” width=”600”] 图1 市场上常见的数码管[/caption] 市面上的数码管很多,但是我们平时学习用到的数码管还是比较少的。主要是7段数码管和8段数码管(8段比7段多一个“.”)。 首先我们要清楚数码管有两种:共阴极数码管和共阳极数码管,并且数码管是由7或8个发光二极管构成的。二极管有正端和负端,分别为阳极和阴极。二极管最普遍的功能就是只允许电流由单一方向通过(称为顺向偏压),反向时阻断 (称为逆向偏压)。所以不难理解,发光二极管最普遍的功能也是允许电流单一方向通过,并且有电流通过时二极管被点亮。 因此:

共阴极数码管:所有发光二极管的负端连在一起,作为公共端。 共阳极数码管:所有发光二极管的正端连在一起,作为公共端。

[caption id=”attachment_639” align=”aligncenter” width=”753”] 图2 共阴极与共阳极数码管简单原理图[/caption] 其次我们以单个8段数码管为例,如下图:共阴极8段数码管 [caption id=”attachment_638” align=”aligncenter” width=”500”] 图3 共阴极数码管显示字段[/caption] 上图中的0,1我们可以理解为低电平和高电平。在数字逻辑电路中,低电平表示0,高电平表示1。一般规定低电平为00.25V,高电平为3.55V。电源的电动势形成了电压,继而产生了电场力,在电场力的作用下,导体的的自由电荷有规则的定向移动形成电流。显而易见我们通过操作高低电平从而控制单个二极管的亮灭。

以图中的共阴极8段数码管显示数字5为例,当我们显示数字5时,我们需要a,c,d,f,g段点亮,其他段保持熄灭状态。因为是共阴极数码管

所以我们只需要给需要点亮的这5个数码管的阳极高电平(即 1 )即可。所以当显示5时,二进制码为1101101,换成16进制就是0x6d。 [caption id=”attachment_640” align=”aligncenter” width=”546”] 图4 进制转换图[/caption] 同理我们可以操作单个数码管显示不同的数字,以及字母(A-F)。 如果我们操作共阳极数码管显示5该如何操作呢?不难发现,共阳极数码管显示数字5也需要a,c,d,f,g这5个二极管点亮,其他二极管保持熄灭状态。因为其为共阳极数码管,从本文的图2中可以看到公共端为二极管的正端,所以只需要给这5个二极管的负端给低电平(即 0)即可。所以,当显示5时,二进制码为:10010010,换成16进制就是0x92,你可能会好奇为什么你写出来的是:0010010,转换16进制是0x12?因为你少算了一个dp位,也就是那个8段数码管的那个点。当我们使用共阴极数码管的时候,因为不需要那个点显示,所以该点都保持熄灭,所以为低电平,也就是为0。但是我们现在使用的是共阳极数码管,该点保持熄灭状态的时候应该为高电平,即1。所以我们在写二进制数的时候不要丢掉最高位的1。将0-F写入一个数组,这个数组就可以称为断码表。 在keil中操作数码管时,我们往往用断码表操作数码管显示0-F。下面为共阴极和共阳极数码管的断码表:

unsigned char code GYang[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}//共阳极数码管断码 unsigned char code Gyin[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}//共阴极数码管断码

那么,我们如何操作多个数码管呢? [caption id=”attachment_641” align=”aligncenter” width=”540”] 图5 6个8段数码管[/caption] 在图5中可以看到有 A-G和DP 以及从1-6共14个引脚。此处我们需要区别这些数码管时共阴极数码管还是共阳极数码管,如过上图为共阴极数码管,当我们操作其中一个数码管的时候需要给右侧1号引脚给低电平。同理操作哪个就给对应引脚低电平。如果操纵共阳极数码管,操作哪个数码管就给对应数码管引脚高电平。 那么?

为什么共阴极数码管位选时为低电平有效?反而段选时是高电平有效呢? 1,无论共阴极数码管还是共阳极数码管都是给阴极送低电平,阳极送高电平 2,位选的“选”,选通的是数码管的公共端,即:共阴极数码管位选选通的是所有数码管的某一个的公共阴极,共阳极数码管是选通某一个数码管的公共阳极。所以,共阴极数码管位选时低电平有效,而共阳极数码管选通时高电平有效。

一般同时操作N个数码管数码管的时候,首先要进行位选,再进行段选(先选则哪一个数码管显示,再选择显示什么内容)。 当我们需要同时显示时,因为单次只能操作一个数码管,所以我们只能利用数码管的动态显示(数码管的动态扫描):

1,位选通一个数码管 2,进行段选显示内容 3,关闭此位选通的数码管,并位选通下一个要显示的数码管

当我们重复上面3个步骤的时候,如果显示的间隔很小,就会造成“数码管一直显示”的错觉。也就达到了数码管一直显示的效果。   路漫漫其修远兮,吾将上下而求索。 歪克士 2019年4月15日


【C51学习记录-1】共阴极,共阳极数码管的简单操作
https://www.wicos.me/yingjian/636/
作者
Wicos
发布于
2019年4月15日
许可协议