一、什么是数码管?
数码管,也称作辉光管,是一种可以显示数字和其他信息的电子设备。玻璃管中包括一个金属丝网制成的阳极和多个阴极。大部分数码管阴极的形状为数字。管中充以低压气体,通常大部分为氖加上一些汞和/或氩。给某一个阴极充电,数码管就会发出颜色光,视乎管内的气体而定,一般都是橙色或绿色。
尽管在外观上和真空管相似,其原理并非为加热阴极放射电子。因而它被称为冷阴极管或霓虹灯的一个变种。在室温下,即使处于极端的室内工作条件下,这种管子的温度很少超过40℃。
数码管的最常见形式有10个阴极,形状为数字0到9,某些数码管还有一个或两个小数点。然而也有其他类型的数码管显示字母、标记和符号。如一种“数码管”,其阴极为一个模板制成的面具,上面有数字形状的孔。一些俄罗斯的数码管,如IN-14,使用倒立的数字2代表5,大概是为了节约生产成本,而没有明显的技术或美学方面的原因。俄罗斯的数码管大部分都使用了倒立的2作为5。
将170伏的直流电压加在阴极和阳极之间,每一个阴极可以发出氖的的红橙色光。由于混合气体的不同,不同类型的数码管之间的颜色有所区别。寿命较长的数码管在制造中加入了汞,减少了溅射,结果发出的光的颜色为蓝色或紫色调。在某些情况下,这些颜色被玻璃上的红色或橙色过滤涂层过滤。常见数码管
二、数码管的组成与显示:
数码管的组成不同,数码管CK即共阴极数码管(common Cathode或common kathion),也称CC;CA即共阳极(common anode)。共阴极是将7段的所有阴极直接连接在一起,共阳极具有连接在一起的7段的所有阳极。数码管显示不同,共阴极:在共阴极显示中,LED段的所有阴极连接都连接在逻辑“0”或接地。通过经由限流电阻器施加“HIGH”或逻辑“1”信号来照亮各个段,以使各个阳极端子(ag)正向偏置。
共阳极数码管是指八段数码管的八段发光二极管的阳极(正极)都连在一起,而阴极对应的各段可分别控制。共阴极数码管是指八段数码管的八段发光二极管的阴极(负极)都连在一起,而阳极对应的各段分别控制、数码管由七个条状和一个点状发光二极管管芯制成,称为七段数码管。根据其结构的不同,可分为共阳极数码管和共阴极数码管两种。共阳共阴,是针对数码管的公共脚而说的。典型的一位数码管,一般有10个脚,8个段码(7段加1个小数点),剩下两个脚接在一起。共阳,也就是说公共脚是正极(阳极),所有的段码实际上是负极,当某一个或某几个段码位接低电平,公共脚接高电平时,对应的段码位就能点亮,进而组合成数字或字母。
共阴是公共脚是负极(阴极),段码位是阳极,当公共脚接地,段码位接高电平时,对应段码位点亮。共阳极: 在共阳极数码管中,LED段的所有阳极连接都连接到逻辑“1”。
通过将合适的限流电阻施加到特定段(ag)的阴极的接地逻辑“0”或“低”信号来照亮各个段。接电现象不同,若公共端接地,其他端接电源,若各段测试能亮,说明是共阴的,反之共阳的;若公共端接电源,其他端分别接地,测得各端亮,则说明是共阳的,反之为共阴的。数码管的内部组成
数码管的七段显示元件通常由
LED
(发光二极管)或
VFD
(真空荧光显示管)制成,每个显示元件都可以显示数字0
到
9
和一些字母字符。每个数字或字符的显示通过点亮或关闭数码管的不同段来实现。这些段通常按照一定的排列方式编号,如图2-1-3
所示,
"a"
、
"b"
、
"c"
、
"d"
、
"e"
、
"f"
和
"g"
是按照固定的方 式排列的。通过控制这些段的状态,可以显示所需的数字或字符。
三、数码管的驱动原理:
数码管内的
LED
灯排列方式是固定的,要显示特定字符的时候,点亮对应位置上的
LED
灯即可,其他位置
的
LED
则熄灭。
例如要显示数字
“5”
,则需点亮
a
、
f
、
g
、
c
、
d
,熄灭
b
、
e
、
h
四、多位数码管的驱动方式:
1、查看开发板原理,得知数码管的a-h分别与P00-P07连接
我们学习了
1
位数码管的驱动方式,使用的是单片机的
P0
口分别与数码管的
a-h
相连,通过
控制
P0
口驱动数码管,那么如果要驱动多位数码管呢?
2、IO
口直接驱动法
直接使用单片机的
IO
口驱动数码管,
1
位数码管占用
8
个
IO
口,每个数码管都是专线专用。以
51
单片机为
例,一共有
4
组
IO
口,如果使用
IO
口直接驱动数码管则最多只能接
4
位数码管。
优点:所有数码管每时每刻都能得到显示信号,显示稳定不闪烁,编程简单
缺点:非常占用单片机的
IO
口资源,驱动
4
位数码管后,单片机所有
IO
口被占用,无法实现其他功能。
3、专用驱动芯片驱动
每位数码管使用
74LS164
芯片单独驱动,
该芯片可以串联使用,驱动多位数码管,只需
占用单片机
2
个
IO
口。
优点:所有数码管每时每刻都能得到显示信号,显示稳定不闪烁,占用极少的
IO
口,消耗很小的
CPU
资
源
缺点:电路元器件较多,编程较为复杂,硬件成本较大
4、时分复用动态显示
这种显示方式
8
位数码管共用一组信号线,
8
位数码管轮流显示,同一时刻只有
1
位数码管得到显示信
号,未得到显示信号的数码管都处于熄灭状态,因为
8
位数码管的轮流显示速度是非常快的(间隔
3ms
左
右),因为人眼的视觉残留效应,看起来就是
8
位同时显示
。
优点:占用
IO
口较少,电路简单,基本不用增加额外的器件
缺点:编程较为复杂;需要
CPU
每时每刻轮流显示
8
个数码管,占用
CPU
资源多;数码管不能同时得到显
示信号,有可能会出现闪烁这种显示方式8位数码管共用一组信号线,8位数码管轮流显示,同一时刻只有1位数码管得到显示信号,未得到显示信号的数码管都处于熄灭状态,因为8位数码管的轮流显示速度是非常快的(间隔3ms左右),因为人眼的视觉残留效应,看起来就是8位同时显示。
优点:占用
IO
口较少,电路简单,基本不用增加额外的器件
缺点:编程较为复杂;需要
CPU
每时每刻轮流显示
8
个数码管,占用
CPU
资源多;数码管不能同时得到显
示信号,有可能会出现闪烁
由
时分复用动态显示
的原理可得,其关键是如何单独给每位数码管发送显示信号。以显示
“12345678”
为
例:其显示步骤如下:
1.
打开第
1
位数码管的显示开关,关闭其余数码管显示开关
2.
在数据线上发送数字
“1”
的字码
3.
维持一小段时间(大约
2ms
)
4.
发送消隐的字码,此时第
1
位数码管关闭显示
5.
打开第
2
位数码管的显示开关,关闭其余数码管显示开关
6.
在数据线上发送数字
“2”
的字码
7.
维持一小段时间(大约
2ms
)
8.
发送消隐的字码,此时第
2
位数码管关闭显示
9.
从步骤
5
开始重复,直到
8
个数字显示完成
从显示步骤中可以看到,实际上每个位只显示了
2ms
后就熄灭了,为了维持显示效果,需要不断的重复这样就需要CPU
一直执行显示代码,如果
CPU
没能及时的执行显示代码,会出现数码管闪烁的
情况,严重时无法正常显示内容。
5、动态显示驱动方案选择
我们学习了动态显示的原理,知道其关键是单独给每一位数码管发送显示信号,那么如何实现这个功能
呢?观察数码管的内容电路,
要让数码管显示需要同时满足
2
个条件:一是
LED
的正极有高
电平,二是
LED
的负极为低电平,两个条件同时满足时
LED
点亮。因为
8
个数码管的正极都是共用一组驱 动信号,所以正极有高电平的时候8
个数码管都有高电平。要想独立控制只能从条件二入手,只要负极不是低电平,那么不管正极什么情况,数码管都不会点亮,由此就得到控制方案:控制阴极电平的高低
(与
GND
之间的通断)
,
将数码管的阴极与单片机
IO
口连接,当
IO
口为低
电平时,该位数码管就是选中状态。
6、使用译码器减小
IO
口占用
8
位数码管,则需要
8
个
IO
口控制其阴极的通断,为了进一步减少
IO
的使用,可
以使用译码器芯片。我们的目的就是在
8
路信号中选择
1
路导通,这种情况可以使用
38
译码器
“
74HC138
”
,通过
3
个
IO
口控制
8
路信号的选中状态,达到减小IO口占用的目的。
(逻辑图与真值表)
编写数码管位选择函数,通过该函数可以选择哪一位数码管导通,因为开发板中使用了
74HC138
译
码器,所以需要结合译码器的真值表进行编写,开发板的连接原理图如下图所示:
五、编写代码过程:
1. 新建文件夹,命名为“1位数码管” 新建工程2. 打开Keil5软件,在菜单栏中依次点击“Project->New uVision Project”
(新建工程)
3、编写main函数及主循环(Show_Num()内输入数码管显示的数字)
(主函数)
4、
声明一个数组
meg_code
,保存数字
的字码。
5、
,编写数码管位选择函数:
因为需要逐个显示
数所以字显示需要间隔,这样才能观察得到稳定的数据,则需要延时函
数。定义一个延时函数,函数名称为
Delay_Ms,
其参数为延时的时间,单位是毫秒,函数内容如
下,该函数内是两个循环,其目的就是让
CPU
在这个函数内执行一些没有实际意义的语句(
CPU
执
行语句是需要时间的,如果
CPU
执行一天语句需要
0.1us
,那么
1
条语句循环执行
10
次就需要花费
1us
,),通过这种方式,可以让
CPU“
停
”
在延时函数这里,延时时间到了继续往下执行。
(延时函数)
(
编写显示数字的代码 )
(数码管模块代码)
点击编译后,在底部会显示编译结果,如编译有错误,可复制粘贴在网上查询其报错原因。
五、程序下载
1.
使用数据线连接开发板和电脑;
2.
运行下载工具
STC-ISP;
3.
选择单片机型号及串口号,并选择生成的
hex
文件,然后点击
“
下载
”;
4.
单击
“
下载
”
后,需要给单片机重新上电,即关闭电源开关然后再打开电源开关,随后就会进入下载
模式将
hex
程序下载到单片机中,下载成功后
STC-ISP
提示下载成功!