unsigned short kp;            //  kp is  a variable
// keypad module connections
char keypadPort at PORTD;
// End keypad module connections

// Lcd module connections
sbit LCD_RS at RB0_bit;
sbit LCD_EN at RB1_bit;
sbit LCD_D4 at RB2_bit;
sbit LCD_D5 at RB3_bit;
sbit LCD_D6 at RB4_bit;
sbit LCD_D7 at RB5_bit;

sbit LCD_RS_Direction at TRISB0_bit;
sbit LCD_EN_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB4_bit;
sbit LCD_D7_Direction at TRISB5_bit;
// End Lcd module connections
void main() {
     Lcd_Init();                                                           // initialize Lcd module
     Keypad_Init();                                                     // initilize keypad module
     Lcd_Cmd(_LCD_CLEAR);                               // Lcd clear
     Lcd_Out(1,3, "WELCOME TO");                    
     Lcd_Out(2,1, "MINA TECHNOLOGY");
     delay_ms(1000);                                                 // 1s delay
     Lcd_Cmd(_LCD_CLEAR);                              // clear Lcd
     while(1){                                                            // loop started
              kp = 0 ;                                                     // Reset the key code variable
              // wait for key to be pressed and relised
              do
                kp = Keypad_Key_Click();                   // Store key code in kp varible
                while(!kp);

              switch(kp){
                         case 1 : kp = 49 ; break ;                   //  1
                         case 2 : kp = 50 ; break ;                    //  2
                         case 3 : kp = 51 ; break ;                   //   3
                         case 5 : kp = 52 ; break ;                 //   4
                         case 6 : kp = 53 ; break ;                 //   5
                         case 7 : kp = 54 ; break ;                  //   6
                         case 9 : kp = 55 ; break ;                //   7
                         case 10 : kp = 56 ; break ;                //   8
                         case 11 : kp = 57 ; break ;             //   9
                         case 13 : kp = 42 ; break ;               //    *
                         case 14 : kp = 48 ; break ;             //   0
                         case 15 : kp = 35 ; break ;              //   #
                         }
              Lcd_Chr_Cp(kp);                                    // print lcd with cursor position
              }
    

}