Note that you'll need to configure the IM pins for 8-bit interface:
//************* Reset LCD Driver ****************//
LCD_nRESET = 1;
delayms(1); // Delay 1ms
LCD_nRESET = 0;
delayms(10); // Delay 10ms // This delay time is necessary
LCD_nRESET = 1;
delayms(120); // Delay 120 ms
//Start initial Sequence
write_cmd(0x01); //software reset
delay(5);
write_cmd(0x28); // display off
//------------power control------------------------------
write_cmd(0xc0); //power control
write_data16(0x00,0x26);
write_cmd(0xc1); //power control
write_data16(0x00,0x11);
write_cmd(0xc5); //vcom control
write_data16(0x00,0x5c);//35
write_data16(0x00,0x4c);//3E
write_cmd(0xc7); //vcom control
write_data16(0x00,0x94);
//------------memory access control------------------------
write_cmd(0x36); // memory access control
write_data16(0x00,0x48); //0048 my,mx,mv,ml,BGR,mh,0.0
write_cmd(0x3a); // pixel format set
write_data16(0x00,0x55);//16bit /pixel
//----------------- frame rate------------------------------
write_cmd(0xb1); // frame rate
write_data16(0x00,0x00);
write_data16(0x00,0x1B); //70
//----------------Gamma---------------------------------
write_cmd(0xf2); // 3Gamma Function Disable
write_data16(0x00,0x08);
write_cmd(0x26);
write_data16(0x00,0x01); // gamma set 4 gamma curve 01/02/04/08
write_cmd(0xE0); //positive gamma correction
write_data16(0x00,0x1f);
write_data16(0x00,0x1a);
write_data16(0x00,0x18);
write_data16(0x00,0x0a);
write_data16(0x00,0x0f);
write_data16(0x00,0x06);
write_data16(0x00,0x45);
write_data16(0x00,0x87);
write_data16(0x00,0x32);
write_data16(0x00,0x0a);
write_data16(0x00,0x07);
write_data16(0x00,0x02);
write_data16(0x00,0x07);
write_data16(0x00,0x05);
write_data16(0x00,0x00);
write_cmd(0xE1); //negamma correction
write_data16(0x00,0x00);
write_data16(0x00,0x25);
write_data16(0x00,0x27);
write_data16(0x00,0x05);
write_data16(0x00,0x10);
write_data16(0x00,0x09);
write_data16(0x00,0x3a);
write_data16(0x00,0x78);
write_data16(0x00,0x4d);
write_data16(0x00,0x05);
write_data16(0x00,0x18);
write_data16(0x00,0x0d);
write_data16(0x00,0x38);
write_data16(0x00,0x3a);
write_data16(0x00,0x1f);
//--------------ddram ---------------------
write_cmd(0x2a); // column set
write_data16(0x00,0x00);
write_data16(0x00,0x00);
write_data16(0x00,0x00);
write_data16(0x00,0xEF);
write_cmd(0x2b); // page address set
write_data16(0x00,0x00);
write_data16(0x00,0x00);
write_data16(0x00,0x01);
write_data16(0x00,0x3F);
// write_cmd(0x34); // tearing effect off
//write_cmd(0x35); // tearing effect on
//write_cmd(0xb4); // display inversion
//write_data16(0x00,0x00);
write_cmd(0xb7); //entry mode set
write_data16(0x00,0x07);
//-----------------display---------------------
write_cmd(0xb6); // display function control
write_data16(0x00,0x0a);
write_data16(0x00,0x82);
write_data16(0x00,0x27);
write_data16(0x00,0x00);
write_cmd(0x11); //sleep out
delay(100);
write_cmd(0x29); // display on
delay(100);
write_cmd(0x2c); //memory write
delay(200);
//Please add code °•write_cmd(0x2C);°¶to access the GRAM before to display picture.
void EnterSleep()
{
write_cmd(0x28); //display off
write_cmd(0x10);//enter standby mode
}
void Exitsleep()
{
write_cmd(0x11); //standby out
delay(60);
write_cmd(0x29);//display on
}