//*************************************************************** // //***** Focus LCDs ***** //***** LCDs Made Simple ***** //***** www.FocusLCDs.com ***** // //*************************************************************** // // //NOTE:VCC=3.3V,IOVCC=1.8V-3.3V //************************指令***************************** void write_command (unsigned char y) // (uchar y,uchar x) { unsigned char i; cs=0; rs=0; for(i=0;i<8;i++) { scl=0; if (y&0x80) { sdi=1; } else { sdi=0; } scl=1; y=y<<1; } cs=1; } //************************************数据*************************** void write_data(unsigned char w) // (uchar w, uchar v) { unsigned char i; cs=0; rs=1; for(i=0;i<8;i++) { scl=0; if (w&0x80) { sdi=1; } else { sdi=0; } scl=1; w=w<<1; } cs=1; } //*********************************送显示数据 void write_DISPdata(unsigned char data3,data4) { unsigned char a,i,b; cs=0; rs=1; a=data3; for(i=0;i<8;i++) { scl=0; if (a&0x80) { sdi=1; } else { sdi=0; } scl=1; a=a<<1; } cs=1; cs=0; b=data4; for(i=0;i<8;i++) { scl=0; if (b&0x80) { sdi=1; } else { sdi=0; } scl=1; b=b<<1; } cs=1; } /*************************************************/ void initi(void) { res=1; delay(1); res=0; delay(10); res=1; delay(120); // ************* Start Initial Sequence ********** write_command(0xB1); write_data(0x02); write_data(0x35); write_data(0x36); write_command(0xB2); write_data(0x02); write_data(0x35); write_data(0x36); write_command(0xB3); write_data(0x02); write_data(0x35); write_data(0x36); write_data(0x02); write_data(0x35); write_data(0x36); //------------------------------------End ST7735R Frame Rate-----------------------------------------// write_command(0xB4); //Column inversion write_data(0x03); //------------------------------------ST7735R Power Sequence-----------------------------------------// write_command(0xC0); write_data(0xA2); write_data(0x02); write_data(0x84); write_command(0xC1); write_data(0xC5); write_command(0xC2); write_data(0x0D); write_data(0x00); write_command(0xC3); write_data(0x8D); write_data(0x2A); write_command(0xC4); write_data(0x8D); write_data(0xEE); //---------------------------------End ST7735R Power Sequence-------------------------------------// write_command(0xC5); //VCOM write_data(0x03); write_command(0x36); //MX, MY, RGB mode write_data(0xC8); //------------------------------------ST7735R Gamma Sequence-----------------------------------------// write_command(0xe0); write_data(0x12); write_data(0x1C); write_data(0x10); write_data(0x18); write_data(0x33); write_data(0x2C); write_data(0x25); write_data(0x28); write_data(0x28); write_data(0x27); write_data(0x2F); write_data(0x3C); write_data(0x00); write_data(0x03); write_data(0x03); write_data(0x10); write_command(0xe1); write_data(0x12); write_data(0x1C); write_data(0x10); write_data(0x18); write_data(0x2D); write_data(0x28); write_data(0x23); write_data(0x28); write_data(0x28); write_data(0x26); write_data(0x2F); write_data(0x3B); write_data(0x00); write_data(0x03); write_data(0x03); write_data(0x10); write_command(0xFC); write_data(0x8C); write_command(0x3A); //65k mode write_data(0x05); write_command(0x2a);//Set Column Address//128 write_data(0x00); write_data(0x00); write_data(0x00); write_data(0x7F); write_command(0x2b);//Set Page Address //128 write_data(0x00); write_data(0x20); //由于硬件设的是128*160,需页地址向后移32? write_data(0x00); write_data(0x9F); write_command(0x11); // Exit Sleep delay(120); write_command(0x29); // Display On delay(25); 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); }