// -------------------------------------------------------
void lcd_initialise(void) /* Initialise LCD */
{
/* tie the R/W pin low permanently and ignore the DEM16217 d/sheet */
/* refer to the HD44780 d/sheet */
unsigned char data, n;
setbit(global, 1); /* indicate 1x 4 bit transfer*/
for(n=0; n<10; n++)
{
delay_10ms(); /* wait for power to stabilise*/
}
for (n=0; n<3; n++)
{
data = 0b00110000;
lcd_write(data);
}
/* function set */
data = 0b00100000;
lcd_write(data);
clearbit(global, 1); /* indicate 2x 4 bit transfer */
data = 0b00101000; /* N= 1; F=0 */
lcd_write(data);
/* display off */
data = 0b00001000;
lcd_write(data);
/* display clear */
data = 0b00000001;
lcd_write(data);
/* entry mode set */
data = 0b00000110; /* I/D = 1 S = 1 */
lcd_write(data);
/* display on */
data = 0b00001100;
lcd_write(data);
}