1.什么是数码管?
数码管,也称作辉光管,是一种可以显示数字和其他信息的电子设备。玻璃管中包括一个金属丝网制成的阳极和多个阴极。大部分数码管阴极的形状为数字。管中充以低压气体,通常大部分为氖加上一些汞和/或氩。给某一个阴极充电,数码管就会发出颜色光,视乎管内的气体而定。
数码管也称LED数码管,由多个发光二极管封装在一起组成。
2.共阳极数码管和共阴极数码管
数码管按发光二极管单元连接方式分为了共阴极数码管和共阳极数码管,如下图所示。
(1)共阳极:公共端为阴极,加阳极(就是1)数码管点亮。即当真值为1时,数码管点亮;真值为0时,数码管不亮。
(2)共阴极:公共端为阳极,加阴极(就是0)数码管点亮。即当真值为0时,数码管点亮;真值为1时,数码管不亮。
共阳极和共阴极就是两个相反的概念,其在配置1与0的时候正好相反。
3.数码管位选和段选
(1)数码管的“位”
数码管可分为1位、2位、3位、4位、5位等数码管。如下图所示,一般开发板上的都是两个4位的数码管。
(2)数码管的“段”
一般数码管有七段数码管和八段数码管,如下图所示。7段数码管由七个条状发光二极管组成,8段数码管由七个条状和一个点状发光二极管,即8段数码管比7段数码管多一个发光二极管单元(多一个小数点)。如果需要显示带小数的数据,应选用8段数码管。开发板上一般使用的是8段数码管。
数码管的段码指的是数码管在显示不同的数据时,段选信号对应的二进制数据。
从上边的LED作为开始,以顺时针方向分为命名为a,b,c,d,e,f中间一个LED是g,右下角的小数点为dp
一般在操作时候先执行段选再执行位选。也就是先选择数码管里的LED,再选择出对应的数码管,达到点亮对应LED显示想要的数据
例:对于共阴极数码管来说,段的正极为高电平“逻辑1”时,段点亮,段的正极为低电平“逻辑0”时,段熄灭。如要显示数字“7”,需要点亮段A、段B和段C,8个段的负极对应的二进制数据为11100000,换算成16进制即为0xE0。如果是共阳极数码管,正好和共阴极数码管相反,8个段的正极对应的二进制数据为00000111,换算成16进制即为0x07。
以下是对共阳极数码管段选位选的方法演示
首先,把想要显示的对应到数码管上,通过段选选择,例如想要4这个数字,则需要b,c,f,g这几个LED亮,因为是共阳极亮的LED需要给0,那么得到如下转换成十六进制是0x99
数字 dp g f e d c b a 二进制 十六进制
7 1 0 0 1 1 0 0 1 10011001 0x99
4.共阳极和共阴极的数码管编码
(1)共阳:
char code Seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
//共阳0~9 a~e
(2)共阴
char code Seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
//共阴0~9 a~e