//*************************************************************** // //***** Focus LCDs ***** //***** LCDs Made Simple ***** //***** www.FocusLCDs.com ***** // //*************************************************************** // //NOTE:VCI=3.3V, //**************************************************************** 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; } /*************************************************/ void initi(void) { res=1; delay(1); res=0; delay(10); res=1; delay(120); //************************************************ write_command(0x36); write_data(0xC0); write_command(0xE4); //Gate Line Control write_data(0x27); write_data(0x00); write_data(0x10); write_command(0xB7); //Gate control write_data(0x75); write_command(0xb8); //Gate On Timing Adjustment write_data(0x2A); write_data(0x2B); write_data(0x09); write_command(0xBB); //VCOMS Setting write_data(0x0D); //VCOMS=0.425V write_command(0x0C); //LCM Control write_data(0x2C); write_command(0xC2); // write_data(0x01); write_command(0xC3); //VRH Set write_data(0x1D); write_command(0xC4); //VDV Set write_data(0x20); write_command(0xc6); write_data(0x07); write_command(0xd0); write_data(0xa4); write_data(0x31); //--------------------------------ST7789S gamma setting---------------------------------------// write_command(0xe0); write_data(0xd0); write_data(0x10); write_data(0x0A); write_data(0x0A); write_data(0x0A); write_data(0x10); write_data(0x26); write_data(0x42); write_data(0x3E); write_data(0x36); write_data(0x13); write_data(0x34); write_data(0x18); write_data(0x1B); write_command(0xe1); write_data(0xd0); write_data(0x10); write_data(0x0A); write_data(0x0A); write_data(0x0A); write_data(0x10); write_data(0x26); write_data(0x42); write_data(0x3E); write_data(0x36); write_data(0x13); write_data(0x34); write_data(0x18); write_data(0x1B); write_command(0xE8); write_data(0x43); write_command(0xE9); write_data(0x08); write_data(0x08); write_data(0x08); write_command(0x21); //·΄ΟΤ //*********SET RGB Interfae*************** write_command(0xB0); write_data(0x11); //set RGB interface and DE mode. write_data(0x00); write_data(0x00); write_command(0xB1); write_data(0x40); // set DE mode ; SET Hs,Vs,DE,DOTCLK signal polarity write_data(0x00); write_data(0x00); write_command(0x3A); write_data(0x55); //16 RGB ,66-18BIT RGB write_command(0x2A); //Frame rate control write_data(0x00); write_data(0x00); write_data(0x00); write_data(0xEF); write_command(0x2B); //Display function control write_data(0x00); write_data(0x00); write_data(0x01); write_data(0x3F); write_command(0x11); delay(120); //Delay 120ms write_command(0x29); //display on write_command(0x2c); } //********************************************************************************************* void EnterSleep (void) { write_command(0x28); delay(20); write_command(0x10); } //********************************************************* void ExitSleep (void) { write_command(0x11); delay(120); write_command(0x29); }