problema con 7 segments 4 digit (timer countdown)

ho un problema con il suo utilizzo. in pratica voglio fare un countdown vero passandogli un tot di secondi trasformo il tempi in formatto mm:ss e lo visualizzzo sul dispaly. il mio problema è che il timer dopo ogni secondo che passa blinka per aggiornarsi. io vorrei cercare di limitare il blink e rendere più visible i numeri scritti ma non capisco dove sbaglio. questo è il codice

// -----------------------------------------------------------------
// Definisco la mappatura tra pin e segmenti
// -----------------------------------------------------------------

int digit1 = 7; // 7Segment = PIN 12 - Arduino PWM 7: accende il primo digit
int segA = 6;   // 7Segment = PIN 11 - Arduino PIN 6
int segF = 5;   // 7Segment = PIN 10 - Arduino PIN 5
int digit2 = 4; // 7Segment = PIN 09 - Arduino PWM 4: accende il secondo digit
int digit3 = 3; // 7Segment = PIN 08 - Arduino PWM 3: accende il terzo digit
int segB = 2;   // 7Segment = PIN 07 - Arduino PIN 2

int digit4 = 8; // 7Segment = PIN 06 - Arduino PWM 8: accende il quarto digit
int segG = 9;   // 7Segment = PIN 05 - Arduino PIN 9
int segC = 10;  // 7Segment = PIN 04 - Arduino PIN 10
int segDP = 11; // 7Segment = PIN 03 - Arduino PIN 11
int segD = 12;  // 7Segment = PIN 02 - Arduino PIN 12
int segE = 13;  // 7Segment = PIN 01 - Arduino PIN 13

#define DIGIT_ON  LOW
#define DIGIT_OFF  HIGH
#define SEGMENT_ON  HIGH // Catodo comune
#define SEGMENT_OFF LOW
#define DISPLAY_BRIGHTNESS  20000


int Tempo=15;

void setup()
{
  // Imposto tutti i pin come output 
  pinMode(segA, OUTPUT);
  pinMode(segB, OUTPUT);
  pinMode(segC, OUTPUT);
  pinMode(segD, OUTPUT);
  pinMode(segE, OUTPUT);
  pinMode(segF, OUTPUT);
  pinMode(segG, OUTPUT);
  pinMode(segDP, OUTPUT);
  // Pin relativi all'elemento
  pinMode(digit1, OUTPUT);
  pinMode(digit2, OUTPUT);
  pinMode(digit3, OUTPUT);
  pinMode(digit4, OUTPUT);
  // Spengo tutti gli elementi
  digitalWrite(digit1, DIGIT_OFF);
  digitalWrite(digit2, DIGIT_OFF);
  digitalWrite(digit3, DIGIT_OFF);
  digitalWrite(digit4, DIGIT_OFF);
 
  Conteggia();
}   


void Conteggia()
{
   do
   {
     Calcola(Tempo);
     delay(1000);
     Tempo=Tempo-1;
   }
   while(Tempo>0);   

  // Spengo tutti gli elementi
  digitalWrite(digit1, DIGIT_OFF);
  digitalWrite(digit2, DIGIT_OFF);
  digitalWrite(digit3, DIGIT_OFF);
  digitalWrite(digit4, DIGIT_OFF);
}

void loop()
{

}

void Calcola(int TempoInSecondi)
{
  int TotMinuti;
  int MinutiA;
  int MinutiB;
  int TotSecondi;
  int SecondiA;
  int SecondiB;

  TotMinuti = (int) (TempoInSecondi/60);
  TotSecondi= TempoInSecondi - (TotMinuti*60);

  if (TotMinuti < 10)
  {
    MinutiA=0;
  }
  else
  {
    MinutiA=TotMinuti/10;
  }
 
  MinutiB=TotMinuti-(MinutiA*10);
 
  SecondiA=TotSecondi/10;
  SecondiB=TotSecondi-(SecondiA*10);


  Numero(MinutiA,1);
  Numero(MinutiB,2);
  Numero(SecondiA,3);
  Numero(SecondiB,4);
}

void Numero(int numero, int digit)
{
  // Accendo il digit corrispondente alla lettera da scrivere
  digitalWrite(digit1, (digit==1) ? DIGIT_ON : DIGIT_OFF);
  digitalWrite(digit2, (digit==2) ? DIGIT_ON : DIGIT_OFF);
  digitalWrite(digit3, (digit==3) ? DIGIT_ON : DIGIT_OFF);
  digitalWrite(digit4, (digit==4) ? DIGIT_ON : DIGIT_OFF);
 
  switch (numero)
  {
    case 0:
        digitalWrite(segA, SEGMENT_ON);
        digitalWrite(segB, SEGMENT_ON);
        digitalWrite(segC, SEGMENT_ON);
        digitalWrite(segD, SEGMENT_ON);
        digitalWrite(segE, SEGMENT_ON);
        digitalWrite(segF, SEGMENT_ON);
        digitalWrite(segG, SEGMENT_OFF);
        break;
 
    case 1:
        digitalWrite(segA, SEGMENT_OFF);
        digitalWrite(segB, SEGMENT_ON);
        digitalWrite(segC, SEGMENT_ON);
        digitalWrite(segD, SEGMENT_OFF);
        digitalWrite(segE, SEGMENT_OFF);
        digitalWrite(segF, SEGMENT_OFF);
        digitalWrite(segG, SEGMENT_OFF);
        break;
 
    case 2:
        digitalWrite(segA, SEGMENT_ON);
        digitalWrite(segB, SEGMENT_ON);
        digitalWrite(segC, SEGMENT_OFF);
        digitalWrite(segD, SEGMENT_ON);
        digitalWrite(segE, SEGMENT_ON);
        digitalWrite(segF, SEGMENT_OFF);
        digitalWrite(segG, SEGMENT_ON);
        break;
 
    case 3:
        digitalWrite(segA, SEGMENT_ON);
        digitalWrite(segB, SEGMENT_ON);
        digitalWrite(segC, SEGMENT_ON);
        digitalWrite(segD, SEGMENT_ON);
        digitalWrite(segE, SEGMENT_OFF);
        digitalWrite(segF, SEGMENT_OFF);
        digitalWrite(segG, SEGMENT_ON);
        break;
 
    case 4:
        digitalWrite(segA, SEGMENT_OFF);
        digitalWrite(segB, SEGMENT_ON);
        digitalWrite(segC, SEGMENT_ON);
        digitalWrite(segD, SEGMENT_OFF);
        digitalWrite(segE, SEGMENT_OFF);
        digitalWrite(segF, SEGMENT_ON);
        digitalWrite(segG, SEGMENT_ON);
        break;
 
    case 5:
        digitalWrite(segA, SEGMENT_ON);
        digitalWrite(segB, SEGMENT_OFF);
        digitalWrite(segC, SEGMENT_ON);
        digitalWrite(segD, SEGMENT_ON);
        digitalWrite(segE, SEGMENT_OFF);
        digitalWrite(segF, SEGMENT_ON);
        digitalWrite(segG, SEGMENT_ON);
        break;
 
    case 6:
        digitalWrite(segA, SEGMENT_ON);
        digitalWrite(segB, SEGMENT_OFF);
        digitalWrite(segC, SEGMENT_ON);
        digitalWrite(segD, SEGMENT_ON);
        digitalWrite(segE, SEGMENT_ON);
        digitalWrite(segF, SEGMENT_ON);
        digitalWrite(segG, SEGMENT_ON);
        break;
 
    case 7:
        digitalWrite(segA, SEGMENT_ON);
        digitalWrite(segB, SEGMENT_ON);
        digitalWrite(segC, SEGMENT_ON);
        digitalWrite(segD, SEGMENT_OFF);
        digitalWrite(segE, SEGMENT_OFF);
        digitalWrite(segF, SEGMENT_OFF);
        digitalWrite(segG, SEGMENT_OFF);
        break;
 
    case 8:
        digitalWrite(segA, SEGMENT_ON);
        digitalWrite(segB, SEGMENT_ON);
        digitalWrite(segC, SEGMENT_ON);
        digitalWrite(segD, SEGMENT_ON);
        digitalWrite(segE, SEGMENT_ON);
        digitalWrite(segF, SEGMENT_ON);
        digitalWrite(segG, SEGMENT_ON);
        break;
 
    case 9:
        digitalWrite(segA, SEGMENT_ON);
        digitalWrite(segB, SEGMENT_ON);
        digitalWrite(segC, SEGMENT_ON);
        digitalWrite(segD, SEGMENT_ON);
        digitalWrite(segE, SEGMENT_OFF);
        digitalWrite(segF, SEGMENT_ON);
        digitalWrite(segG, SEGMENT_ON);
        break;
 
    case 10: // Tutto spento
        digitalWrite(segA, SEGMENT_OFF);
        digitalWrite(segB, SEGMENT_OFF);
        digitalWrite(segC, SEGMENT_OFF);
        digitalWrite(segD, SEGMENT_OFF);
        digitalWrite(segE, SEGMENT_OFF);
        digitalWrite(segF, SEGMENT_OFF);
        digitalWrite(segG, SEGMENT_OFF);
        break;
    }

 
  // Piccolo ritardo
  delayMicroseconds(DISPLAY_BRIGHTNESS);
  digitalWrite(digit1, DIGIT_OFF);
  digitalWrite(digit2, DIGIT_OFF);
  digitalWrite(digit3, DIGIT_OFF);
  digitalWrite(digit4, DIGIT_OFF);
}

Anziché spegnere tutti i digit, devi solo fare il refresh dei digit.