//*************************************************************** // //***** Focus LCDs ***** //***** LCDs Made Simple ***** //***** www.FocusLCDs.com ***** // //*************************************************************** // ////**************************// NOTE:VCI=3.3V,IOVCC=1.8V, Display resolution:480*800 params->vertical_sync_active=4 params->vertical_backporch=20 params->vertical_frontporch=10 params->horizontal_sync_active=4 params->horizontal_backporch=44 params->horizontal_frontporch=10 params->RGB_CLOCK=(27)M Frame Rate=60HZ //************************************** //NOTE:VCC=3.3V,在进入RGB模式前必须要用SPI对屏进行初始化 //**************************************************************** void write_command (unsigned char y) // (uchar y,uchar x) { unsigned char i; csb=0; sclb=0; sdi=0; sclb=1; for(i=0;i<8;i++) { sclb=0; if (y&0x80) { sdi=1; } else { sdi=0; } sclb=1; y=y<<1; } csb=1; } //*************************************************************** void write_data(unsigned char w) // (uchar w, uchar v) { unsigned char i; csb=0; sclb=0; sdi=1; sclb=1; for(i=0;i<8;i++) { sclb=0; if (w&0x80) { sdi=1; } else { sdi=0; } sclb=1; w=w<<1; } csb=1; } //--------------------initial code-----------------------------------------// void LCD_Init(void) { RST=1; delay(1) //MS RST=0; delay(10);//MS RST=1; delay(120)//MS //*******************************/ write_command(0x11); //OUT SLEEP delay(120); /*-------------------------------Bank0 Setting--------------------------------*/ /*--------------------------Display Control setting---------------------------*/ write_command(0xFF); write_data(0x77); write_data(0x01); write_data(0x00); write_data(0x00); write_data(0x10); write_command(0xC0); //480*800 write_data(0x63); write_data(0x00); write_command(0xC1); write_data(0x11); write_data(0x02); write_command(0xC2); //Inversion selection write_data(0x37); //31 2-DOT 37-Column write_data(0x08); write_command(0xC3); //SET RGB MODE write_data(0x02); //00-DE MODE ,80-HV MODE PCLK N write_data(0x00); write_data(0x00); write_command(0xC7);//X-direction Control write_data(0x00);//00-S0-S479, 04-S479-S0 write_command(0xCC); write_data(0x18); //**********GAMMA SET***************// write_command(0xB0); write_data(0x40); write_data(0xC9); write_data(0x91); write_data(0x0D); write_data(0x12); write_data(0x07); write_data(0x02); write_data(0x09); write_data(0x09); write_data(0x1F); write_data(0x04); write_data(0x50); write_data(0x0F); write_data(0xE4); write_data(0x29); write_data(0xDF); write_command(0xB1); write_data(0x40); write_data(0xCB); write_data(0xD0); write_data(0x11); write_data(0x92); write_data(0x07); write_data(0x00); write_data(0x08); write_data(0x07); write_data(0x1C); write_data(0x06); write_data(0x53); write_data(0x12); write_data(0x63); write_data(0xEB); write_data(0xDF); /*-----------------------------End Gamma Setting------------------------------*/ /*------------------------End Display Control setting-------------------------*/ /*-----------------------------Bank0 Setting End-----------------------------*/ /*-------------------------------Bank1 Setting--------------------------------*/ /*--------------------- Power Control Registers Initial ----------------------*/ write_command(0xFF); write_data(0x77); write_data(0x01); write_data(0x00); write_data(0x00); write_data(0x11); write_command(0xB0); write_data(0x65); /*--------------------------------Vcom Setting--------------------------------*/ write_command(0xB1); write_data(0x6D);//65+++ /*------------------------------End Vcom Setting------------------------------*/ write_command(0xB2);//VGH write_data(0x87); write_command(0xB3); write_data(0x80); write_command(0xB5); //VGL write_data(0x49); write_command(0xB7); write_data(0x85); write_command(0xB8); //avdd write_data(0x20); write_command(0xB9); //Power Control 2 write_data(0x10); write_command(0xC1); write_data(0x78); write_command(0xC2); write_data(0x78); write_command(0xD0); write_data(0x88); delay(100); /*--------------------End Power Control Registers Initial --------------------*/ //********GIP SET********************/// write_command(0xE0); write_data(0x00); write_data(0x00); write_data(0x02); write_command(0xE1); write_data(0x08); write_data(0x00); write_data(0x0A); write_data(0x00); write_data(0x07); write_data(0x00); write_data(0x09); write_data(0x00); write_data(0x00); write_data(0x33); write_data(0x33); write_command(0xE2); write_data(0x00); write_data(0x00); write_data(0x00); write_data(0x00); write_data(0x00); write_data(0x00); write_data(0x00); write_data(0x00); write_data(0x00); write_data(0x00); write_data(0x00); write_data(0x00); write_data(0x00); write_command(0xE3); write_data(0x00); write_data(0x00); write_data(0x33); write_data(0x33); write_command(0xE4); write_data(0x44); write_data(0x44); write_command(0xE5); write_data(0x0E); write_data(0x60); write_data(0xA0); write_data(0xA0); write_data(0x10); write_data(0x60); write_data(0xA0); write_data(0xA0); write_data(0x0A); write_data(0x60); write_data(0xA0); write_data(0xA0); write_data(0x0C); write_data(0x60); write_data(0xA0); write_data(0xA0); write_command(0xE6); write_data(0x00); write_data(0x00); write_data(0x33); write_data(0x33); write_command(0xE7); write_data(0x44); write_data(0x44); write_command(0xE8); write_data(0x0D); write_data(0x60); write_data(0xA0); write_data(0xA0); write_data(0x0F); write_data(0x60); write_data(0xA0); write_data(0xA0); write_data(0x09); write_data(0x60); write_data(0xA0); write_data(0xA0); write_data(0x0B); write_data(0x60); write_data(0xA0); write_data(0xA0); write_command(0xEB); write_data(0x02); write_data(0x01); write_data(0xE4); write_data(0xE4); write_data(0x44); write_data(0x00); write_data(0x40); write_command(0xEC); write_data(0x02); write_data(0x01); write_command(0xED); write_data(0xAB); write_data(0x89); write_data(0x76); write_data(0x54); write_data(0x01); write_data(0xFF); write_data(0xFF); write_data(0xFF); write_data(0xFF); write_data(0xFF); write_data(0xFF); write_data(0x10); write_data(0x45); write_data(0x67); write_data(0x98); write_data(0xBA); write_command(0xFF); write_data(0x77); write_data(0x01); write_data(0x00); write_data(0x00); write_data(0x00); //write_command(0x35);//TE ON write_command(0x36); write_data(0x00);//10-180 write_command(0x3A); write_data(0x70); write_command(0x29); //DISP ON delay(25); } //******************************************* void EnterSleep (void) { write_command(0x28); delay(10); write_command(0x10); } //********************************************************* void ExitSleep (void) { write_command(0x11); delay(120); write_command(0x29); }