#include<p24fj128ga010.h>
_CONFIG1(JTAGEN_OFF & FWDTEN_OFF)
_CONFIG2(FNOSC_FRCPLL & OSCIOFNC_OFF)
#define ldata PORTE
#define rs PORTEbits.RE1
#define rw PORTEbits.RE2
#define en PORTEbits.RE3
void disp_data(unsigned char val);
void disp_cmd(unsigned char val);
void lcdcmd(unsigned char value);
void lcddata(unsigned char value);
void lcd_init();
void print(char *w);
void delay(unsigned long int itime);
int main()
{
TRISE=0x0000;
TRISB=0x0000;
lcd_init();
while(1)
{
disp_cmd(0x0C);
disp_cmd(0x80);
disp_data('a');
disp_data('-');
print("hai");
}
return 0;
}
void lcdcmd(unsigned char value)
{
ldata=value;
rs=0;
rw=0;
en=1;
delay(250);
en=0;
return;
}
void delay(unsigned long int itime)
{
unsigned int x;
for(x=0;x<itime;x++);
}
void lcddata(unsigned char value)
{
ldata=value;
rs=1;
rw=0;
en=1;
delay(250);
en=0;
return;
}
void disp_data(unsigned char val)
{
char data1;
data1=val&0xFFF0;
lcddata(data1);
data1=((val<<4)&0xFFF0);
lcddata(data1);
}
void disp_cmd(unsigned char val)
{
char cmd1;
cmd1=val&0xFFF0;
lcdcmd(cmd1);
cmd1=((val<<4)&0xFFF0);
lcdcmd(cmd1);
}
void print(char *w)
{
while(*w!='\0')
disp_data(*w++);
}
void lcd_init()
{
disp_cmd(0x02);
delay(250);
disp_cmd(0x28);
delay(250);
disp_cmd(0x0E);
delay(250);
disp_cmd(0x01);
delay(250);
disp_cmd(0x06);
delay(250);
disp_cmd(0x0C);
delay(250);
}