const byte SEG_PIN[2]={15,2};            // 7段顯示器的控制接腳
byte Data[2] = {0, 0};
const byte dataPin = 21;    // 74HC595序列輸入
const byte latchPin = 22;   // 74HC595暫存器時脈」
const byte clockPin = 23;   // 74HC595序列時脈
const byte LEDs[10] = {0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};
  
//------------------------------------------------------------------------
void setup() {
  pinMode(latchPin, OUTPUT);    //設定為輸出埠
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  
  for (byte i=0; i<2; i++) {    
    pinMode(SEG_PIN[i], OUTPUT);  //選擇信號線為輸出埠
  }
}
//-----------------------------------------------------
void loop() {  
  for(int i=0;i<100;i++){       //00-99迴圈
   show(i);                     //i值傳入副程式顯示字型
   delay(100);                  //延屬0.5秒
  } 
}//-----------------------------------------------------
void show(byte number){
    Data[0]= number % 10 ;       // 儲存個位數字
    Data[1]= number / 10 % 10 ;  // 十位數字
 
    for (byte i=0; i<2; i++){     //2個數值      
      digitalWrite(latchPin, LOW);                           //latch腳LOW->HIGH
      shiftOut(dataPin, clockPin, LSBFIRST, LEDs[Data[i]]);  //將Data的資料傳入並右移
      digitalWrite(latchPin, HIGH);                          //0->1就能移位
      digitalWrite(SEG_PIN[i], 0);                           // 致能顯示  
      delay(5);       
      for (byte j=0; j<2; j++) digitalWrite(SEG_PIN[j], 1);  // 消除 
    }
}