chronomètre arduino

Bonjour
Je fais un chronomètre avec Arduino Uno, je changé partie d’un circuit qu’il peut avoir 5 chiffres et a commencé une partie du code et maintenant ne sais pas comment continuer, la minuterie que vous voulez faire avec un bouton exécute la fonction de démarrage, d’arrêt et réinitialiser à 0 commencer à compter, en utilisant 74HC595 apprécier si quelqu’un pouvait me aider à finir le code
merci

code
void display(unsigned long numero) {

int centenas = numero / 10000;
numero %= 10000;
int decenas = numero / 1000;
numero %= 1000;
int unidades = numero / 100;
numero %= 100;
int decimas = numero / 10;
numero %= 10;
int centesimas = numero;

digitalWrite(LATCH, LOW);
shiftOut(data, clock, MSBFIRST, digito[centenas]);
shiftOut(data, clock, MSBFIRST, digito[decenas]);
shiftOut(data, clock, MSBFIRST, digito[unidades]);
shiftOut(data, clock, MSBFIRST, digito[decimas]);
shiftOut(data, clock, MSBFIRST, digito[centesimas]);
digitalWrite(LATCH, HIGH);
}

#French#
Salut, tu trouveras ci-dessous le code pour le même type de montage avec 2 afficheurs 7 segments à cathode commune SMA42056 et 2 multiplexeurs 74HC595 pour compter jusqu'à 99 ; le code devrait être facilement applicable si tu as plus d'afficheurs et si tu es parvenu à en faire fonctionner deux en série.

Un afficheur SMA42056 a les pins en haut et en bas, le code doit fonctionner également avec un afficheur HDSP-C8G1 avec les pins sur le côté.


#English#
You'll find here the code for two 7 segments and two shift registers 74HC595 to count until 99 ; code can be easily adapted if you have more than two 7 segments and two shift registers.

const int latchPin = 8;
const int clockPin = 12;
const int dataPin = 11;

int compte = 0;

const byte digit[10] = {
   //ABCDEFG° 
   B11111100, // 0
   B01100000, // 1
   B11011010, // 2
   B11110010, // 3
   B01100110, // 4
   B10110110, // 5
   B10111110, // 6
   B11100000, // 7
   B11111110, // 8
   B11110110, // 9
};

void setup() {
 pinMode(latchPin, OUTPUT);
 pinMode(clockPin, OUTPUT);
 pinMode(dataPin, OUTPUT);

 Serial.begin(9600);
}

void loop() {
   compte = (compte + 1) % 100;

   float d = compte % 10;   // find the remainder of dividing z by 10, this will be the right-hand digit
   int c = int(d);          // make it an integer, c is the right hand digit
   float b = compte / 10;   // divide z by 10 - the whole number value will be the left-hand digit
   int e = int(b);          // e is the left hand digit
   
   digitalWrite(latchPin, LOW); // send the digits down to the shift registers!
   shiftOut(dataPin, clockPin, MSBFIRST, digit[c]); 
   shiftOut(dataPin, clockPin, MSBFIRST, digit[e]); 
   digitalWrite(latchPin, HIGH);
 
   delay(50);
}