#include <P18F452.h>

#define LCD PORTD
#define RS PORTBbits.RB0
#define EN PORTBbits.RB1

void Delay()
{
    int i;
    for(i=0;i<3000;i++);
}

void LCD_Command(unsigned char cmd)
{
    LCD = cmd;
    RS = 0;
    EN = 1;
    Delay();
    EN = 0;
}

void LCD_Char(unsigned char data)
{
    LCD = data;
    RS = 1;
    EN = 1;
    Delay();
    EN = 0;
}

void LCD_String(char *str)
{
    while(*str)
    {
        LCD_Char(*str);
        str++;
    }
}

void LCD_Init()
{
    LCD_Command(0x38);
    LCD_Command(0x0C);
    LCD_Command(0x01);
    LCD_Command(0x80);
}

void main()
{
    TRISD = 0x00;
    TRISB = 0x00;

    LCD_Init();

    LCD_Command(0x80);
    LCD_String("JAIN");

    LCD_Command(0xC0);
    LCD_String("UNIVERSITY");

    while(1);
}