/*
数码管显示
数码管连续循环显示0~9
*/
byte DIGITAL_DISPLAY[10][8] = { //设置0-9数字所对应数组
{ 0,0,0,0,0,1,0,0 }, // = 0
{ 0,0,0,1,1,1,1,1 }, // = 1
{ 0,1,0,0,1,0,0,0 }, // = 2
{ 0,0,0,0,1,0,1,0 }, // = 3
{ 0,0,0,1,0,0,1,1 }, // = 4
{ 0,0,1,0,0,0,1,0 }, // = 5
{ 0,0,1,0,0,0,0,0 }, // = 6
{ 0,0,0,0,1,1,1,1 }, // = 7
{ 0,0,0,0,0,0,0,0 }, // = 8
{ 0,0,0,0,0,0,1,0 } // = 9
};
byte DIGITAL[10][8] = { //设置0-9数字所对应数组
{ 1,1,1,1,1,1,1,1 }, // = 0
{ 1,1,1,1,1,1,1,1 }, // = 1
{ 1,1,1,1,1,1,1,1 }, // = 2
{ 1,1,1,1,1,1,1,1 }, // = 3
{ 1,1,1,1,1,1,1,1 }, // = 4
{ 1,1,1,1,1,1,1,1 }, // = 5
{ 1,1,1,1,1,1,1,1 }, // = 6
{ 1,1,1,1,1,1,1,1 }, // = 7
{ 1,1,1,1,1,1,1,1 }, // = 8
{ 1,1,1,1,1,1,1,1 } // = 9
};
void setup() { //设定4-11号数字端口为输出
for(int i=4;i<=11;i++){
pinMode(i, OUTPUT);
}
}
void loop() {
//0-9数字显示
for (int k = 0; k < 10; k++) {
int pin = 4;
for (int s = 0; s < 8; s++)
{
digitalWrite(pin, DIGITAL_DISPLAY[k][s]);
delay(100);
pin++;
}
delay(1000);
for (int h = 0; h < 8; h++)
{
digitalWrite(pin, DIGITAL[k][h]);
delay(100);
pin--;
}
delay(1000);
}
}
这个代码能看到依次点亮的那一个灯。 |