找个人帮忙改一下代码

a. 

#include <LedControl.h>
#include <MsTimer2.h>

#define u8 unsigned char
#define u16 unsigned int

u8 led_pin=4;

int pinInterrupt = 2;

u16 count = 0,t=100,jud;

int DIN = 0;
int CS =  1;
int CLK = 3;

LedControl lc=LedControl(DIN,CLK,CS,1);

byte  num_0[8]={B00000000,B00000000,B01111100,B01000100,B01111100,B00000000,B00000000,B00000000},
      num_1[8]={B00000000,B00000000,B00000000,B01111110,B01111110,B00000000,B00000000,B00000000},
      num_2[8]={B00000000,B00000000,B01110100,B01010100,B01010100,B01011100,B00000000,B00000000},
      num_3[8]={B00000000,B00000000,B01010100,B01010100,B01010100,B01111100,B00000000,B00000000},
      num_4[8]={B00000000,B00000000,B00011100,B00010000,B00010000,B01111100,B00000000,B00000000},
      num_5[8]={B00000000,B00000000,B01011100,B01010100,B01010100,B00100100,B00000000,B00000000};

u8 k,flag_1=0;

 void onChange()
 {
      delay(50);
    flag_1 = ~flag_1;
 }

 void wait()
 {
  while(flag_1);
  
 }
void setup() 
{
    lc.shutdown(0,false);
  lc.clearDisplay(0);
  for(led_pin=4;led_pin<14;led_pin++)
  {
      pinMode(led_pin,OUTPUT);  
  }

  // put your setup code here, to run once:

 pinMode(pinInterrupt,INPUT);
 attachInterrupt(digitalPinToInterrupt(pinInterrupt),onChange,CHANGE);
 MsTimer2::set(100,onTimer);
  MsTimer2::start();
  lc.shutdown(0,false);                  
  lc.setIntensity(0,3);                      
  lc.clearDisplay(0);                       
  
}
u8 a;

void loop() 
{
  for(led_pin=4;led_pin<14;led_pin++)
  {
    wait();
    digitalWrite(led_pin,LOW);    
    delay(analogRead(A0));
  }

    if(led_pin==14)
  led_pin=4;

  for(led_pin=4;led_pin<14;led_pin++)
  {
    wait();
    digitalWrite(led_pin,HIGH);    
    delay(analogRead(A0));
  }
  
  
}

void onTimer()
{
  count=analogRead(A0);
  count=count/200;

  switch(count)
  {
    case 5:
          lc.clearDisplay(0);  
         for (k=0;k<8;k++)         
        lc.setRow(0,k,num_5[k]); break;

    case 4:
          lc.clearDisplay(0);  
         for (k=0;k<8;k++)         
        lc.setRow(0,k,num_4[k]); break;

    case 3:
          lc.clearDisplay(0);  
         for (k=0;k<8;k++)         
        lc.setRow(0,k,num_3[k]); break;

    case 2:
          lc.clearDisplay(0);  
         for (k=0;k<8;k++)         
        lc.setRow(0,k,num_2[k]); break;

    case 1:
          lc.clearDisplay(0);  
          for (k=0;k<8;k++)         
        lc.setRow(0,k,num_1[k]); break;
    case 0:
          lc.clearDisplay(0);  
          for (k=0;k<8;k++)         
        lc.setRow(0,k,num_0[k]); break;

          }}

望采纳,谢谢!修改完毕!

#
include < LedControl.h > #include < MsTimer2.h > #define u8 unsigned char# define u16 unsigned int
u8 led_pin = 4;
int pinInterrupt = 2;
u16 count = 0, t = 100, jud;
int DIN = 0;
int CS = 1;
int CLK = 3;
LedControl lc = LedControl(DIN, CLK, CS, 1);
byte num_0[8] = {
        B00000000, B00000000, B01111100, B01000100, B01111100, B00000000, B00000000, B00000000
    },
    num_1[8] = {
        B00000000, B00000000, B00000000, B01111110, B01111110, B00000000, B00000000, B00000000
    },
    num_2[8] = {
        B00000000, B00000000, B01110100, B01010100, B01010100, B01011100, B00000000, B00000000
    },
    num_3[8] = {
        B00000000, B00000000, B01010100, B01010100, B01010100, B01111100, B00000000, B00000000
    },
    num_4[8] = {
        B00000000, B00000000, B00011100, B00010000, B00010000, B01111100, B00000000, B00000000
    },
    num_5[8] = {
        B00000000, B00000000, B01011100, B01010100, B01010100, B00100100, B00000000, B00000000
    };
u8 k, flag_1 = 0;
void onChange()
{
    delay(50);
    flag_1 = ~flag_1;
}
void wait()
{
    while(flag_1);
}
void setup()
{
    lc.shutdown(0, false);
    lc.clearDisplay(0);
    for(led_pin = 4; led_pin < 14; led_pin++)
    {
        pinMode(led_pin, OUTPUT);
    }
    // put your setup code here, to run once:
    pinMode(pinInterrupt, INPUT);
    attachInterrupt(digitalPinToInterrupt(pinInterrupt), onChange, CHANGE);
    MsTimer2::set(100, onTimer);
    MsTimer2::start();
    lc.shutdown(0, false);
    lc.setIntensity(0, 3);
    lc.clearDisplay(0);
}
u8 a;
void loop()
{
    for(led_pin = 4; led_pin < 14; led_pin++)
    {
        wait();
        digitalWrite(led_pin, LOW);
        delay(analogRead(A0));
    }
    if(led_pin == 14) led_pin = 4;
    for(led_pin = 4; led_pin < 14; led_pin++)
    {
        wait();
        digitalWrite(led_pin, HIGH);
        delay(analogRead(A0));
    }
}
void onTimer()
{
    count = analogRead(A0);
    count = count / 200;
    switch(count)
    {
        case 5:
            lc.clearDisplay(0);
            for(k = 0; k < 8; k++) lc.setRow(0, k, num_5[k]);
            break;
        case 4:
            lc.clearDisplay(0);
            for(k = 0; k < 8; k++) lc.setRow(0, k, num_4[k]);
            break;
        case 3:
            lc.clearDisplay(0);
            for(k = 0; k < 8; k++) lc.setRow(0, k, num_3[k]);
            break;
        case 2:
            lc.clearDisplay(0);
            for(k = 0; k < 8; k++) lc.setRow(0, k, num_2[k]);
            break;
        case 1:
            lc.clearDisplay(0);
            for(k = 0; k < 8; k++) lc.setRow(0, k, num_1[k]);
            break;
        case 0:
            lc.clearDisplay(0);
            for(k = 0; k < 8; k++) lc.setRow(0, k, num_0[k]);
            break;
    }
}