打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
5161AS八段一位数码管显示实验

5161AS八段一位数码管显示实验

先介绍一下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;

  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 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;//定义变量

  for(i=4;i<=11;i++)

    pinMode(i,OUTPUT);//设置4~11 引脚为输出模式

}

void loop()

{

  while(1)

  {

    digital_0();//显示数字0

    delay(1000);//延时1s

    digital_1();//显示数字1

    delay(1000);//延时1s

    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

    digital_9();//显示数字9

    delay(1000); //延时1s

  }

}


实验截图:


=================以下资料来源于网络==================

    按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM 接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM 接到地线GND 上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。数码管的每一段是由发光二极管组成,所以在使用时跟发光二极管一样,也要连接限流电阻,否则电流过大会烧毁发光二极管的。共阴数码管在应用时应将公共极接到GND,当某一字段发光二极管的阳极为低电平时,相应字段就点熄灭。当某一字段的阳极为高电平时,相应字段就点亮。


引脚分布:正面逆时针数依次是1、2、3、4、5、6、7、8、9、10

型号:5161

引脚数:10(5*2)

极性:共阴

尺寸:12.7mm(L)*19mm(H)

发光颜色:红

亮度:高亮

工作电压:1.8V

工作电流:20mA

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
循环显示数码管0-9的实验
1小时C语言入门(转帖续二)
51单片机 用数码管显示动态检测结果
问题详情
一网友的作品:Arduino驱动NOKIA5110,超声波测距网购论坛http://www.bay2009.cn
Arduino教程 Lesson 17:数码管显示
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服