Aide programation afficheur led digit

Bonjour,
J'ai fait l'acquisition d'un module LED SPI 8X7segment => SPI_LED_Module__SKU_DFR0090_-DFRobot
Mon but est de pouvoir afficher les différents nombres que je rentre via serial.
Apres branchement sur un arduino nano (en direct, sans passer par leurs "interface shield" ) . L'afficheur fonctionne parfaitement mais c'est au niveau du code que ce trouve les problemes :
-Les chiffres affiché sont dans le mauvais ordre ( ex : je rentre 123 et cela va m'afficher 321) existe t'il une fonction pour inverser la position des chiffre ?
-Un caractere de debut de ligne est affiché après chaque ajout de nombre (ex : je rentre 12345 et cela va m'afficher e.54321 et de temps en temps P.54321 )
-L'afficheur n'est pas remis a zero si j'ajoute un autre numero a la suite (ex : je rentre 123 puis je valide et je rentre 23 et je valide , cela va m'afficher e.32e.321
-Et enfin comment gerer les point ?

Au final ce que je voudrai c'est : je rentre le nombre 154.235 et il s'affiche , je rentre le nombre 23.20 et il s'affiche en remplaçant le précédent.
Voici le code original que j'utilise (avec les n° de pin utilisé modifié pour qu'il tourne sur l'arduino nano) :

//Pin connected to latch pin (ST_CP) of 74HC595
const int latchPin = 10;
//Pin connected to clock pin (SH_CP) of 74HC595
const int clockPin = 13;
////Pin connected to Data in (DS) of 74HC595
const int dataPin = 11;
byte Tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
void setup() {
  pinMode(latchPin, OUTPUT);
  pinMode(dataPin, OUTPUT);  
  pinMode(clockPin, OUTPUT);
  Serial.begin(9600);
  Serial.println("reset");
}
void loop() {
  if (Serial.available() > 0) {
  int bitToSet = Serial.read() - 48;
  digitalWrite(latchPin, LOW);
  shiftOut(dataPin, clockPin, MSBFIRST, Tab[bitToSet]);
  digitalWrite(latchPin, HIGH);
  }
}

Merci de votre aide