00000000-99999999数码管显示C语言代码

00000000-99999999数码管显示,每隔1秒数码管显示的数据全部+1。C语言代码


int pins[10][7] = { {0,0,0,0,0,0,1}, // 0
                    {1,0,0,1,1,1,1}, // 1
                    {0,0,1,0,0,1,0}, // 2
                    {0,0,0,0,1,1,0}, // 3
                    {1,0,0,1,1,0,0}, // 4
                    {0,1,0,0,1,0,0}, // 5
                    {0,1,0,0,0,0,0}, // 6
                    {0,0,0,1,1,1,1}, // 7
                    {0,0,0,0,0,0,0}, // 8
                    {0,0,0,0,1,0,0}  // 9 
};

int segPins[7] = { 9, 8, 7, 6, 5, 4, 3 };

int counter = 0;

void setup() {
  for(int i=0; i<7; i++) {
    pinMode(segPins[i], OUTPUT);
  }
}

void loop() {
  display(counter);
  delay(1000); // wait 1 second
  counter++;
  if(counter > 99) { // reset counter
    counter = 0;
  }
}

void display(int number) {
  int ones = number % 10;
  int tens = floor(number / 10);
  for(int i=0; i<7; i++) {
    digitalWrite(segPins[i], pins[ones][i]); // display ones digit
    digitalWrite(segPins[i+7], pins[tens][i]); // display tens digit
  }
}
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^