//#include <p18f4450.h>
#include <p18cxxx.h>
//#pragma config WDT = OFF, LVP = OFF, FOSC = INTOSC_HS //internal oscillator
#pragma config WDT=OFF,LVP=OFF,FOSC=HSPLL_HS,PLLDIV=5,CPUDIV=OSC2_PLL3 //run with external oscillator
void main (void);
void InterruptHandlerLow (void);
#define LCD_DATA PORTD
#define LCD_EN PORTCbits.RC2
#define LCD_RW PORTCbits.RC1
#define LCD_RS PORTCbits.RC0
#define A PORTAbits.RA0
#define B PORTAbits.RA1
#define C PORTAbits.RA2
#define D PORTAbits.RA3
unsigned char data[]="123456789 90";
unsigned char dd[]="DDDDDDDDDDDDD123";
unsigned char aa[]="AAAAAAAAAAAAA123";
unsigned char bb[]="BBBBBBBBBBBBB123";
unsigned char cc[]="CCCCCCCCCCCCC123";
unsigned char xx[]="xxxxxxxxxxxxxxxx";
void delay(int);
void WRT_COMM(void);
void WRT_DATA(void);
unsigned char *varr , var;
void LCD_sendstring(unsigned char *varr);
void LCD_dt();
void LCD_senddata(unsigned char var );
void initilizeLCD(void);
void lcd_clear(void);
void main ()
{
char DATA;
varr=&data[0];
ADCON1 = 0xFF; // turn all of port a to digital I/O
TRISCbits.TRISC6=1;
TRISAbits.TRISA3=1;
TRISAbits.TRISA2=1;
TRISAbits.TRISA1=1;
TRISAbits.TRISA0=1;
TRISAbits.TRISA0=1;
TRISAbits.TRISA1=1;
TRISAbits.TRISA2=1;
TRISAbits.TRISA3=1;
CMCON = 0x07; // CM0, CM1 and CM2 set to 1
initilizeLCD();
lcd_clear();
LCD_dt();
while(1)
{
if(A==1 && B==0 && C==0 && D==0)
{
varr=&aa[0];
LCD_dt();
}
else if(A==1 && B==1 && C==0 && D==0)
{
varr=&bb[0];
LCD_dt();
}
else
if(A==1 && B==0 && C==1 && D==0)
{
varr=&cc[0];
LCD_dt();
}
else if(A==1 && B==0 && C==0 && D==1)
{
varr=&dd[0];
LCD_dt();
}
else
varr=&xx[0];
LCD_dt();
}
}