void Init_LCD_8(ubyte enable)
{
//This sequence is from the initialization on page 45 of the HD44780U
//data sheet.
Sleep(40);
Write_LCD_Control_8(0x38,enable);
//Yes, the data sheet says write it twice.
Sleep(5);
Write_LCD_Control_8(0x38,enable);
//Yes, the data sheet says write it three times.
Sleep(125);
Write_LCD_Control_8(0x38,enable);
//Yes, the data sheet says write it four times, but at least this one counts.
//038h is Function set:
//8 bit,
//2 line
//F = (5x8)
Sleep(1);
Write_LCD_Control_8(0x38,enable);
//"Display off"
Sleep(2);
Write_LCD_Control_8(0x08,enable);
//"Display clear"
Sleep(2);
Write_LCD_Control_8(0x01,enable);
//006h is Entry mode set, increment, no shift
Sleep(2);
Write_LCD_Control_8(0x06,enable);
//Display on, cursor on, blinking
Sleep(2);
Write_LCD_Control_8(0x0F,enable);
//Clear the display again. This seems to fix a power-up problem
//where the display shows "{{{{{" in a couple of places.
Sleep(2);
Write_LCD_Control_8(0x09,enable);
//Display on, cursor on, blinking
Sleep(2);
Write_LCD_Control_8(0x01,enable);
}