刚接触就遇到问题了,求帮助,谢谢-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8569|回复: 12

[已解决] 刚接触就遇到问题了,求帮助,谢谢

[复制链接]
发表于 2013-8-13 20:36 | 显示全部楼层 |阅读模式
  这两天,学习ARDUINO,学到这个“数码管控制”的时候,部分代码不懂!其余的都懂,求指教!谢谢!!
  http://www.arduino.cn/thread-1224-1-1.html  学到这
  代码如下
const unsigned char LED8Pin[]={
  6,7,8,10,11,13,12,9};//A B C D E F G Dp
const unsigned char LED8Code[]={
  0xC0,    // 0
  0xF9,    // 1
  0xA4,    // 2
  0xB0,    // 3
  0x99,    // 4
  0x92,    // 5
  0x82,    // 6
  0xF8,    // 7
  0x80,    // 8
  0x90,    // 9
  0x88,    // A
  0x83,    // B
  0xC6,    // C
  0xA1,    // D
  0x86,    // E
  0x8E     // F
};
void setup() {
  char i;
  for(i=0;i<8;i++)
  {
    pinMode(LED8Pin, OUTPUT);     
    digitalWrite(LED8Pin, HIGH);   
  }
}
char a;
void loop() {
  for(a=0;a<16;a++)
  {
    LED8Show(a);
    delay(1000);
  }
}
voidLED8Show(char data){
  char i;
  char j;
  char hc;
  if(0<=data<16)
  {
    hc = LED8Code[data];
    for(i=0;i<8;i++)
    {
      j = bitRead(hc,i);
      digitalWrite(LED8Pin, j);
    }
  }
}

桔色的表示不懂,完全看不明白,用途如何?
问题:1.char i ;char j ;data ;hc ;    j = bitRead(hc,i); digitalWrite(LED8Pin, j);到底在这有什么用
        2. 我觉得在绿色的delay 1000那里完就OK了!!如果不加入后面桔色的代码,后果如何?求指教
  本人就卡在这里,希望学友所成的各路人,帮帮解答!谢谢呀!
     

发表于 2013-8-13 21:39 | 显示全部楼层
数码管就是几个并联的LED,这里就是 根据数组来通断点,控制led
 楼主| 发表于 2013-8-14 11:55 | 显示全部楼层
奈何col 发表于 2013-8-13 21:39
数码管就是几个并联的LED,这里就是 根据数组来通断点,控制led

冒昧问句,貌似没关系吧!桔色的代码不知道什么作用,控制断定不是在绿色delay上面的代码吗?

点评

要控制8个LED的通断,用的就是这段  详情 回复 发表于 2013-8-14 12:14
发表于 2013-8-14 12:14 | 显示全部楼层
jimsaswwe 发表于 2013-8-14 11:55
冒昧问句,貌似没关系吧!桔色的代码不知道什么作用,控制断定不是在绿色delay上面的代码吗? ...

要控制8个LED的通断,用的就是这段
发表于 2013-8-14 12:25 | 显示全部楼层
这时是函数的定义啊,没有这个定义loop里面的LED8Show不能用
 楼主| 发表于 2013-8-14 15:03 来自手机 | 显示全部楼层
qptimus 发表于 2013-8-14 12:25
这时是函数的定义啊,没有这个定义loop里面的LED8Show不能用

哦,原来这样,那么请问怎么看,我就一段没看懂,只看懂for语句里面的,还有明白char怎么用,就是没看过其他语句,怎么理解他的,我是跟坛子学习的!
发表于 2013-8-14 19:34 | 显示全部楼层
jimsaswwe 发表于 2013-8-14 15:03
哦,原来这样,那么请问怎么看,我就一段没看懂,只看懂for语句里面的,还有明白char怎么用,就是没看过 ...

这个说起来就话长了,去看看这个吧

http://pan.baidu.com/share/link? ... 565&uk=51636053
发表于 2013-8-14 19:36 | 显示全部楼层
jimsaswwe 发表于 2013-8-14 15:03
哦,原来这样,那么请问怎么看,我就一段没看懂,只看懂for语句里面的,还有明白char怎么用,就是没看过 ...

你没学过编程吧,建议先找本c语言入门的书先看看
 楼主| 发表于 2013-8-14 22:31 | 显示全部楼层
qptimus 发表于 2013-8-14 19:34
这个说起来就话长了,去看看这个吧

http://pan.baidu.com/share/link?shareid=2894600565&uk=51636053 ...

那谢谢你提供连接!麻烦你了
发表于 2013-8-14 23:16 | 显示全部楼层
你问的那句意思就是通过循环将hc的各个位分别赋值给led1~led8。这个hc是你想要显示的数的七段码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-3 07:26 , Processed in 0.083895 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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