title: PIC18F2550 Memory game PIC C18 programming LED off
body: <p>I am using MPLAB C18 compiler to write c code for a PIC18F2550 which is to control a memory game. The user is to repeat a sequence of flashing LEDs by pressing corresponding buttons. A bit like a old Simon game but with a sequence just happening once.</p>
  
  <p>I have been struggling so far and I have only managed to get a number of LEDs to turn on, but the buttons only turn off the LEDs for a split second then they go on again.</p>
  
  <p>Here's my code so far:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  #include &lt;p18f2550.h&gt;
  #include &lt;delays.h&gt;
  
  //#pragma config WDT = OFF //Disable watchdog timer
  
  // LED Configuration
  #define LED_PIN_0 LATAbits.LATA0 //RA0
  #define LED_PIN_1 LATAbits.LATA1 //RA1
  #define LED_PIN_2 LATAbits.LATA2 //RA2
  #define LED_PIN_3 LATAbits.LATA3 //RA3
  #define LED_PIN_4 LATAbits.LATA4 //RA4
  #define LED_PIN_5 LATAbits.LATA5 //RA5
  #define LED_PIN_6 LATAbits.LATA6 //RA6
  
  // Push Button Configuration
  #define PUSH_BUTTON_0 PORTBbits.RB0 //RB0
  #define PUSH_BUTTON_1 PORTBbits.RB1 //RB1
  #define PUSH_BUTTON_2 PORTBbits.RB2 //RB2
  #define PUSH_BUTTON_3 PORTBbits.RB3 //RB3
  #define PUSH_BUTTON_4 PORTBbits.RB4 //RB4
  #define PUSH_BUTTON_5 PORTBbits.RB5 //RB5
  #define PUSH_BUTTON_6 PORTBbits.RB6 //RB6
  
  // Global Variables
  int led_array[7] ; // array storing the pin outs
  int button_array[7] ;
  
  void main()
  {
  int i;
  ADCON1 = 0b11111111;
  TRISA = 0; // sets the LED pins to output
  TRISB = 1; // sets pushbutton pins to input
  
  PORTA = 0;
  PORTB = 0;
  
  //sequence
  led_array[0] = 1 ;
  led_array[1] = 0 ;
  led_array[2] = 1 ;
  led_array[3] = 0 ;
  led_array[4] = 1 ;
  led_array[5] = 1 ;
  led_array[6] = 0 ;
  
  
  // Configure the LEDs
  LED_PIN_0 = led_array[0] ;
  LED_PIN_1 = led_array[1] ;
  LED_PIN_2 = led_array[2] ;
  LED_PIN_3 = led_array[3] ;
  LED_PIN_4 = led_array[4] ;
  LED_PIN_5 = led_array[5] ;
  LED_PIN_6 = led_array[6] ;
  
  
  // Configure the push button array
  PUSH_BUTTON_0 = button_array[0] ;
  PUSH_BUTTON_1 = button_array[1] ;
  PUSH_BUTTON_2 = button_array[2] ;
  PUSH_BUTTON_3 = button_array[3] ;
  PUSH_BUTTON_4 = button_array[4] ;
  PUSH_BUTTON_5 = button_array[5] ;
  PUSH_BUTTON_6 = button_array[6] ;
  
  
  
  if ( PUSH_BUTTON_0 == 1 )
  {
  led_array[0] = 0;
  }
  if ( PUSH_BUTTON_1 == 1 )
  {
  led_array[1] = 1;
  }
  if ( PUSH_BUTTON_2 == 1 )
  {
  led_array[2] = 0;
  }
  if ( PUSH_BUTTON_3 == 1 )
  {
  led_array[3] = 1;
  }
  if ( PUSH_BUTTON_4 == 1 )
  {
  led_array[4] = 0;
  }
  if ( PUSH_BUTTON_5 == 1 )
  {
  led_array[5] = 0;
  }
  if ( PUSH_BUTTON_6 == 1 )
  {
  led_array[6] = 1;
  }
  
  }
  </code></pre>
  
  <p>Any help is greatly appreciated!!</p>