圣源电子制作

 找回密码
 立即注册
查看: 12549|回复: 2
打印 上一主题 下一主题

Ardunio 入门教程-实验十三 数码管测试

[复制链接]
跳转到指定楼层
楼主
发表于 2012-5-13 16:01:12 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
Ardunio 入门教程-实验十三 数码管测试

测试数码管1-8数字,自动翻页显示。

实验用到的元件

实验用到的元件 ,1个数码管,8根杜邦线,1块实验板。

原理图






连接图


蜂鸣器的正极连接 IO口9,蜂鸣器负极连接GND.



实验演示视频:


代码:
  1.      //设置控制各段的数字IO脚,具体几号引脚对应哪一段,来源为数码管官方引脚图。
  2.      int a=7;
  3.      int b=6;
  4.      int c=5;
  5.      int d=11;
  6.      int e=10;
  7.      int f=8;
  8.      int g=9;
  9.      int dp=4;

  10. //显示数字1
  11. void digital_1(void)
  12. {
  13.    unsigned char j;
  14.    digitalWrite(c,LOW);//给数字5引脚低电平,点亮c段
  15.    digitalWrite(b,LOW);//点亮b段
  16.    for(j=7;j<=11;j++)//熄灭其余段
  17.      digitalWrite(j,HIGH);
  18.    digitalWrite(dp,HIGH);//熄灭小数点DP段
  19. }
  20. //显示数字2
  21. void digital_2(void)
  22. {
  23.    unsigned char j;
  24.    digitalWrite(b,LOW);
  25.    digitalWrite(a,LOW);
  26.    for(j=9;j<=11;j++)
  27.      digitalWrite(j,LOW);
  28.    digitalWrite(dp,HIGH);
  29.    digitalWrite(c,HIGH);
  30.    digitalWrite(f,HIGH);
  31. }
  32. //显示数字3
  33. void digital_3(void)
  34. {
  35.    unsigned char j;
  36.    digitalWrite(g,LOW);
  37.    digitalWrite(d,LOW);
  38.    for(j=5;j<=7;j++)
  39.      digitalWrite(j,LOW);
  40.    digitalWrite(dp,HIGH);
  41.    digitalWrite(f,HIGH);
  42.    digitalWrite(e,HIGH);
  43. }
  44. //显示数字4
  45. void digital_4(void)
  46. {
  47.    digitalWrite(c,LOW);
  48.    digitalWrite(b,LOW);
  49.    digitalWrite(f,LOW);
  50.    digitalWrite(g,LOW);
  51.    digitalWrite(dp,HIGH);
  52.    digitalWrite(a,HIGH);
  53.    digitalWrite(e,HIGH);
  54.    digitalWrite(d,HIGH);   
  55. }
  56. //显示数字5
  57. void digital_5(void)
  58. {
  59.    unsigned char j;
  60.    for(j=7;j<=9;j++)
  61.      digitalWrite(j,LOW);
  62.    digitalWrite(c,LOW);
  63.    digitalWrite(d,LOW);
  64.    digitalWrite(dp,HIGH);
  65.    digitalWrite(b,HIGH);
  66.    digitalWrite(e,HIGH);
  67. }
  68. //显示数字6
  69. void digital_6(void)
  70. {
  71.    unsigned char j;
  72.    for(j=7;j<=11;j++)
  73.      digitalWrite(j,LOW);
  74.    digitalWrite(c,LOW);
  75.    digitalWrite(dp,HIGH);
  76.    digitalWrite(b,HIGH);   
  77. }
  78. //显示数字7
  79. void digital_7(void)
  80. {
  81.    unsigned char j;
  82.    for(j=5;j<=7;j++)
  83.      digitalWrite(j,LOW);
  84.    digitalWrite(dp,HIGH);
  85.    for(j=8;j<=11;j++)
  86.      digitalWrite(j,HIGH);
  87. }
  88. //显示数字8
  89. void digital_8(void)
  90. {
  91.    unsigned char j;
  92.    for(j=5;j<=11;j++)
  93.      digitalWrite(j,LOW);
  94.    digitalWrite(dp,HIGH);
  95. }
  96. void setup()
  97. {
  98.    int i;//定义变量
  99.    for(i=4;i<=11;i++)
  100.      pinMode(i,OUTPUT);//设置4~11引脚为输出模式
  101. }
  102. void loop()
  103. {  
  104.    while(1)
  105.    {
  106.      digital_1();//数字1
  107.      delay(2000);//延时2s
  108.      digital_2();
  109.      delay(2000);
  110.      digital_3();
  111.      delay(2000);
  112.      digital_4();
  113.      delay(2000);
  114.      digital_5();
  115.      delay(2000);
  116.      digital_6();
  117.      delay(2000);
  118.      digital_7();
  119.      delay(2000);
  120.      digital_8();
  121.      delay(2000);   
  122.    }
  123. }
复制代码
回复

使用道具 举报

沙发
发表于 2013-2-2 01:17:15 | 只看该作者
朋友,不是我说,这个实验的电路图错了,可是坑坏我了。那个接线的时候,数码管的12脚应该是接vcc而不是gnd..花了好大的功夫才搞明白。
回复 支持 反对

使用道具 举报

板凳
发表于 2013-7-21 18:29:53 | 只看该作者
12口应该接5v或者是3.3v啊,不是接GND
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|联系我们|闽公网安备 35012102000020号|闽ICP备11020110号-1|圣源电子

GMT+8, 2024-11-21 14:41 , Processed in 0.044437 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表