数码管完整版
- 格式:doc
- 大小:470.50 KB
- 文档页数:9
共阴极数码管编码表0-9
共阴极数码管是一种常见的显示器件,用于显示数字。
它由七个发光二极管(LED)组成,每个LED代表一个数字的一部分。
下面是共阴极数码管的编码表,包括数字0到9的显示方式:
数字0:
a, b, c, d, e, f 灯亮。
g 灯灭。
数字1:
b, c 灯亮。
a, d, e, f, g 灯灭。
数字2:
a, b, g, e, d 灯亮。
c, f 灯灭。
数字3:
a, b, c, d, g 灯亮。
e, f 灯灭。
数字4:
f, g, b, c 灯亮。
a, d, e 灯灭。
数字5:
a, f, g, c, d 灯亮。
b, e 灯灭。
数字6:
a, f, g, e, d, c 灯亮。
b 灯灭。
数字7:
a, b, c 灯亮。
d, e, f, g 灯灭。
数字8:
a, b, c, d, e, f, g 灯亮。
数字9:
a, b, c, d, f, g 灯亮。
e 灯灭。
以上是共阴极数码管的编码表,每个数字由对应的LED灯的亮
灭状态组成。
通过控制不同的LED灯亮灭,可以实现显示不同的数字。
先介绍一下5161数码管的类型:数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示),本实验所使用的是八段数码管。
数码管的连接方式分为共阳极数码管和共阴极数码管。
本实验用到是共阴极数码管。
(一般情况下在元器件上能看到以下几种型号:5161AS:共阴红色;5161AG:共阴绿色;5161BS:共阳红色;5161BG:共阳绿色)本实验用到的元器件为:5161AS八段一位数码管*1;220Ω直插电阻*8;面包板及面包板跳线;图一图二(共阴)图三(共阳)数码管共有七段显示数字的段,还有一个显示小数点的段。
当让数码管显示数字时,只要将相应的段点亮即可。
例如:让数码管显示数字1,则将b、c 段点亮即可。
将每个数字写成一个子程序。
在主程序中每隔1s 显示一个数字,让数码管循环显示0~9 数字。
每一个数字显示的时间由延时时间来决定,时间设置的大些,显示的时间就长些,时间设置的小些,显示的时间就短。
实验代码://设置控制各段的数字IO 脚int a=7;//定义数字接口7 连接a 段数码管int b=6;// 定义数字接口6 连接b 段数码管int c=5;// 定义数字接口5 连接c 段数码管int d=10;// 定义数字接口10 连接d 段数码管int e=11;// 定义数字接口11 连接e 段数码管int f=8;// 定义数字接口8 连接f 段数码管int g=9;// 定义数字接口9 连接g 段数码管int dp=4;// 定义数字接口4 连接dp 段数码管void digital_0(void) //显示数字0{unsigned char j;for(j=5;j<=11;j++)digitalWrite(j,HIGH);digitalWrite(dp,LOW);digitalWrite(g,LOW);}void digital_1(void) //显示数字1{unsigned char j;digitalWrite(c,HIGH);//给数字接口5 引脚高电平,点亮c 段digitalWrite(b,HIGH);//点亮b 段for(j=7;j<=11;j++)//熄灭其余段digitalWrite(j,LOW);digitalWrite(dp,LOW);//熄灭小数点DP 段}void digital_2(void) //显示数字2{unsigned char j;digitalWrite(b,HIGH);digitalWrite(a,HIGH);for(j=9;j<=11;j++)digitalWrite(j,HIGH);digitalWrite(dp,LOW);digitalWrite(c,LOW);digitalWrite(f,LOW);}void digital_3(void) //显示数字3 {unsigned char j;digitalWrite(g,HIGH);digitalWrite(d,HIGH);for(j=5;j<=7;j++)digitalWrite(j,HIGH);digitalWrite(dp,LOW);digitalWrite(f,LOW);digitalWrite(e,LOW);}void digital_4(void) //显示数字4 {digitalWrite(c,HIGH);digitalWrite(b,HIGH);digitalWrite(f,HIGH);digitalWrite(g,HIGH);digitalWrite(dp,LOW);digitalWrite(a,LOW);digitalWrite(e,LOW);digitalWrite(d,LOW);}void digital_5(void) //显示数字5 {unsigned char j;for(j=7;j<=9;j++)digitalWrite(j,HIGH);digitalWrite(c,HIGH);digitalWrite(d,HIGH);digitalWrite(dp,LOW);digitalWrite(b,LOW);digitalWrite(e,LOW);}void digital_6(void) //显示数字6 {unsigned char j;for(j=7;j<=11;j++)digitalWrite(j,HIGH);digitalWrite(c,HIGH);digitalWrite(dp,LOW);digitalWrite(b,LOW);}void digital_7(void) //显示数字7 {unsigned char j;digitalWrite(j,HIGH);digitalWrite(dp,LOW);for(j=8;j<=11;j++)digitalWrite(j,LOW);}void digital_8(void) //显示数字8 {unsigned char j;for(j=5;j<=11;j++)digitalWrite(j,HIGH);digitalWrite(dp,LOW);}void digital_9(void) //显示数字9 {unsigned char j;for(j=5;j<=11;j++)digitalWrite(j,HIGH);digitalWrite(dp,LOW);digitalWrite(e,LOW);}void setup(){int i;//定义变量pinMode(i,OUTPUT);//设置4~11 引脚为输出模式}void loop(){while(1){digital_0();//显示数字0delay(1000);//延时1sdigital_1();//显示数字1delay(1000);//延时1sdigital_2();//显示数字2delay(1000); //延时1sdigital_3();//显示数字3delay(1000); //延时1sdigital_4();//显示数字4delay(1000); //延时1sdigital_5();//显示数字5delay(1000); //延时1sdigital_6();//显示数字6delay(1000); //延时1sdigital_7();//显示数字7delay(1000); //延时1sdigital_8();//显示数字8delay(1000); //延时1s digital_9();//显示数字9 delay(1000); //延时1s }}实验截图:=================以下资料来源于网络==================按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。
74LS1641、器件功能作用8 位串入,并出移位寄存器2. 概述74HC164、74HCT164 是高速硅门 CMOS 器件,与低功耗肖特基型 TTL (LSTTL) 器件的引脚兼容。
74HC164、74HCT164 是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出。
数据通过两个输入端(DSA 或 DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。
两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。
时钟 (CP) 每次由低变高时,数据右移一位,输入到 Q0, Q0 是两个数据输入端(DSA 和 DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。
主复位 (MR) 输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。
3. 特性•门控串行数据输入•异步中央复位•符合 JEDEC 标准 no. 7A•静电放电 (ESD) 保护:·HBM EIA/JESD22-A114-B 超过 2000 V·MM EIA/JESD22-A115-A 超过 200 V 。
•多种封装形式•额定从 -40 °C 至+85 °C 和 -40 °C 至+125 °C 。
4. 功能图图 1. 逻辑符号图 2. IEC 逻辑符号图 3. 逻辑图图 4. 功能图5. 引脚信息图 5. DIP14、SO14、SSOP14 和 TSSOP14 封装的引脚配置引脚说明符号引脚说明DSA 1 数据输入DSB 2 数据输入Q0~Q3 3~6 输出GND 7 地 (0 V)CP 8 时钟输入(低电平到高电平边沿触发)/M/R 9 中央复位输入(低电平有效)Q4~Q7 10~13 输出VCC 14 正电源罗亩的笔记6. 功能表(真值表)H = HIGH(高)电平h = 先于低-至-高时钟跃变一个建立时间 (set-up time) 的 HIGH(高)电平L = LOW(低)电平l = 先于低-至-高时钟跃变一个建立时间 (set-up time) 的 LOW(低)电平q = 小写字母代表先于低-至-高时钟跃变一个建立时间的参考输入(referenced input) 的状态↑ = 低-至-高时钟跃变7. 电器特性动态特性(TA=25℃)8. 推荐工作条件[1] 对于 DIP14 封装:Ptot 在超过70 °C 时以 12 mW/K 的速度线性降低。
LED数码管使用详解L E D数码管的识别与检测方法使用常识 L E D数码管也称半导体数码管,它是将若干发光二极管按一定图形排列并封装在一起的最常用的数码显示器件之一。
L E D数码管具有发光显示清晰、响应速度快、耗电省、体积小、寿命长、耐冲击、易与各种驱动电路连接等优点,在各种数显仪器仪表、数字控制设备中得到广泛应用。
L E D数码管种类很多,品种五花八门,这里仅向初学者介绍最常用的小型“8”字形L E D数码管的识别与使用方法。
如何识别L E D数码管1.结构及特点目前,常用的小型L E D数码管多为“8”字形数码管,它内部由8个发光二极管组成,其中7个发光二极管(a~g)作为7段笔画组成“8”字结构(故也称7段L E D数码管),剩下的1个发光二极管(h或d p)组成小数点,如图1(a)所示。
各发光二极管按照共阴极或共阳极的方法连接,即把所有发光二极管的负极(阴极)或正极(阳极)连接在一起,作为公共引脚;而每个发光二极管对应的正极或者负极分别作为独立引脚(称“笔段电极”),其引脚名称分别与图 1(a)中的发光二极管相对应,即a、b、c、d、e、f、g脚及h脚(小数点),如图1(b)所示。
若按规定使某些笔段上的发光二极管发光,就能够显示出图1(c)所示的“0~9”10个数字和“A~F”6个字母,还能够显示小数点,可用于2进制、10进制以及16进制数字的显示,使用非常广泛。
常用小型L E D数码管是以印制电路板为基板焊固发光二极管,并装入带有显示窗口的塑料外壳,最后在底部引脚面用环氧树脂封装而成。
由于L E D数码管的笔段是由发光二极管组成的,所以其特性与发光二极管相同。
L E D数码管的主要特点:能在低电压、小电流条件下驱动发光,并能与C M O S、T T L电路兼容;它不仅发光响应时间极短(<0.1μs)、高频特性好、单色性好、亮度高,而且体积小、重量轻、抗冲击性能好、使用寿命长(一般在10万小时以上,最高可达100万小时)、成本低。
八段数码管数码管编码译码表以下是八段数码管编码译码表:
共阳极数码管编码:
0:0xC0 (11000000)
1:0xF9 (11111001)
2:0xA4 (10100100)
3:0xB0 (10110000)
4:0x99 (10011001)
5:0x92 (10010010)
6:0x82 (10000010)
7:0xF8 (11111000)
8:0x80 (10000000)
9:0x90 (10010000)
共阴极数码管编码:
0:0x3F ( 00111111)
1:0x06 ( 0000006)
2:0x5B ( 01011011)
3:0x4F ( 01001111)
4:0x66 ( 0110011)
5:0x6D ( 011011)
6:0x7D ( 011111)
7:0x7F ( 0111 1)
8:7F,8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F :F8 (转置位元):对于共阳极的LED数码管,使用高电平驱动显示段,低电平不显示。
对于共阴极的LED数码管,使用低电平驱动显示段,高电平不显示。
因此,共阳极数码管的编码可以直接用作驱动信号,而共阴极数码管需要取反后才能驱动显示。
例如,数字“2”的共阳极编码为A4,可以直接驱动共阳极数码管显示;数字“2”的共阴极编码为5B,需要取反后才能驱动共阴极数码管显示。
例程18.数码管显示实验
数码管是一种半导体发光器件,其基本单元是发光二极管。
数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示),本实验所使用的是八段数码管。
按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。
共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。
共阳数码管在应用时应将公共极COM 接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。
当某一字段的阴极为高电平时,相应字段就不亮。
共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。
共阴数码管在应用时应将公共极COM 接到地线GND 上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。
当某一字段的阳极为低电平时,相应字段就不亮。
数码管的每一段是由发光二极管组成,所以在使用时跟发光二极管一样,也要连接限流电阻,否则电流过大会烧毁发光二极管的。
本实验用的是共阴极的数码管,共阴数码管在应用时应将公共极接到GND,
当某一字段发光二极管的阳极为低电平时,相应字段就点熄灭。
当某一字段的阳极为高电平时,相应字段就点亮。
介绍完原理,
我们开始准备实验用元器件。
八段数码管*1
220Ω直插电阻*8
面包板*1 面包板跳线*1 扎
我们参考实物连接图按原理图连接好电路。
数码管共有七段显示数字的段,还有一个显示小数点的段。
当让数码管显示数字时,只要将相应的段点亮即可。
例如:让数码管显示数字1,则将b、c 段点亮即可。
将每个数字写成一个子程序。
在主程序中每隔2s 显示一个数字,让数码管循环显示1~8 数字。
每一个数字显示的时间由延时时间来决定,时间设置的大些,显示的时间就长些,时间设置的小些,显示的时间就短。
参考程序源代码:
//设置控制各段的数字IO 脚
int a=7;//定义数字接口7 连接a 段数码管
int b=6;// 定义数字接口6 连接b 段数码管
int c=5;// 定义数字接口5 连接c 段数码管
int d=11;// 定义数字接口11 连接d 段数码管
int e=10;// 定义数字接口10 连接e 段数码管
int f=8;// 定义数字接口8 连接f 段数码管
int g=9;// 定义数字接口9 连接g 段数码管
int dp=4;// 定义数字接口4 连接dp 段数码管
void digital_1(void) //显示数字1
{
unsigned char j;
digitalWrite(c,HIGH);//给数字接口5 引脚高电平,点亮c 段digitalWrite(b,HIGH);//点亮b 段
for(j=7;j<=11;j++)//熄灭其余段
digitalWrite(j,LOW);
digitalWrite(dp,LOW);//熄灭小数点DP 段
}
void digital_2(void) //显示数字2
{
unsigned char j;
digitalWrite(b,HIGH);
for(j=9;j<=11;j++) digitalWrite(j,HIGH); digitalWrite(dp,LOW); digitalWrite(c,LOW); digitalWrite(f,LOW);
}
void digital_3(void) //显示数字3 {
unsigned char j; digitalWrite(g,HIGH); digitalWrite(d,HIGH);
for(j=5;j<=7;j++) digitalWrite(j,HIGH); digitalWrite(dp,LOW); digitalWrite(f,LOW); digitalWrite(e,LOW);
}
void digital_4(void) //显示数字4 {
digitalWrite(c,HIGH); digitalWrite(b,HIGH);
digitalWrite(g,HIGH); digitalWrite(dp,LOW); digitalWrite(a,LOW); digitalWrite(e,LOW); digitalWrite(d,LOW);
}
void digital_5(void) //显示数字5 {
unsigned char j;
for(j=7;j<=9;j++) digitalWrite(j,HIGH); digitalWrite(c,HIGH); digitalWrite(d,HIGH); digitalWrite(dp,LOW); digitalWrite(b,LOW); digitalWrite(e,LOW);
}
void digital_6(void) //显示数字6 {
unsigned char j;
for(j=7;j<=11;j++)
digitalWrite(c,HIGH); digitalWrite(dp,LOW); digitalWrite(b,LOW);
}
void digital_7(void) //显示数字7 {
unsigned char j;
for(j=5;j<=7;j++) digitalWrite(j,HIGH); digitalWrite(dp,LOW);
for(j=8;j<=11;j++) digitalWrite(j,LOW);
}
void digital_8(void) //显示数字8 {
unsigned char j;
for(j=5;j<=11;j++) digitalWrite(j,HIGH); digitalWrite(dp,LOW);
}
void setup()
{
int i;//定义变量
for(i=4;i<=11;i++)
pinMode(i,OUTPUT);//设置4~11 引脚为输出模式}
void loop()
{
while(1)
{
digital_1();//显示数字1
delay(2000);//延时2s
digital_2();//显示数字2
delay(1000); //延时1s
digital_3();//显示数字3
delay(1000); //延时1s
digital_4();//显示数字4
delay(1000); //延时1s
digital_5();//显示数字5
delay(1000); //延时1s
digital_6();//显示数字6
delay(1000); //延时1s
digital_7();//显示数字7
delay(1000); //延时1s
digital_8();//显示数字8
delay(1000); //延时1s
}
}
在setup()前面定义了一系列的数字显示子程序,这些子程序的定义可以方便在
loop()中使用,使用时只需将子程序的名写上即可。