Matrice LED 8*8+ reccepteur IR

Bonjour à tous.
J'ai actuellement un projet qui un pour but d'afficher le symbole envoyé d'une télécommande sur une matrice LED.
Le code est presque finit. Actuellement, si j’appuie sur le bouton 0 de la télécommande, 0 s'affiche sur la matrice. Le problème, c'est que quand j'appuie sur le bouton 1, rien ne change ( et inversement).
Voila une capture d’écran de la liaison série.

On peut voir une série de 0, avant que j'appuie sur un bouton, puis une série de 16724175.

Et voila le code:

#include <IRremote.h>

int RECV_PIN = 13;
IRrecv irrecv(RECV_PIN);
decode_results results;

byte zero[]=
{
  B00000000,
  B00111100,
  B00100100,
  B00100100,
  B00100100,
  B00111100,
  B00000000,
  B00000000,
};
byte un[]=
{
  B00000000,
  B00010000,
  B00110000,
  B01010000,
  B00010000,
  B00010000,
  B00000000,
  B00000000,
};


const int colonnePins[] = {2, 3, 4, 5, 6, 7, 8, 9};
const int lignePins[] = {10, 11, 12, 15, 16, 17, 18, 19};

void setup() {

  Serial.begin(9600);

 pinMode(13,INPUT);
  irrecv.enableIRIn(); 
 for (int i = 0; i < 8; i++)
  {
    pinMode(lignePins[i], OUTPUT);        // lignes en sorties
    pinMode(colonnePins[i], OUTPUT);     // colonnes en sorties
  }  
}
void aff(byte * image, unsigned long duree)
{
  unsigned long debut = millis();
   while (debut + duree > millis())
   {
    for(int ligne = 0; ligne < 8; ligne++)
    {
      digitalWrite(lignePins[ligne],HIGH);
      for(int col = 0; col < 8; col++)
      {
        int situ= 7-col;
        boolean pixel =bitRead(image[ligne],col);

        if(pixel ==1)
        {
          digitalWrite(colonnePins[situ],LOW);
        }
        delayMicroseconds(30);
        digitalWrite(colonnePins[situ],HIGH);
      }
      digitalWrite(lignePins[ligne],LOW);
  
   
    }
   }
}

void loop() {
   
    
  if (irrecv.decode(&results)); {
    Serial.print(results.value);
    
 
   if(results.value==0xFF6897)
  {

    aff(zero, 750);
    irrecv.resume();
 

   
  }
  if(results.value==0xFF30CF)
  {
   aff(un,750);
   irrecv.resume();

 
  }
  }
  
  
}



Je ne sais pas d'où cela peut venir.

et sans le ; dans cette ligne, ca change le code recu?

if (irrecv.decode(&results)); {
void loop() {
   
   
  if (irrecv.decode(&results)) {
    Serial.print(results.value);
    
              if(results.value==0xFF6897)
             {
                aff(zero, 750);
              }
              if(results.value==0xFF30CF)
                {
               aff(un,750);
                 }
    irrecv.resume();
  }
 
 
}

Merci beaucoup pour cette aide.
Cela fonctionne, c'est parfait.