void WriteComm(unsigned int i) { CS0=0; RD0=1; RS=0; DBH=i>>8; WR0=0; WR0=1; DBH=i; WR0=0; WR0=1; CS0=1; } void WriteData(unsigned int i) { CS0=0; RD0=1; RS=1; DBH=i>>8; WR0=0; WR0=1; DBH=i; WR0=0; WR0=1; CS0=1; } void LCD_Init(void) { //CS0=0; // RST=1; // Delay(50); RST=0; Delay(100); RST=1; Delay(800); //HX8347D_CM22() WriteComm(0x002E);WriteData(0x0079); // WriteComm(0x00EE);WriteData(0x000C); // //Driving ability Setting WriteComm(0x00EA);WriteData(0x0000); //PTBA[15:8] WriteComm(0x00EB);WriteData(0x0020); //PTBA[7:0] WriteComm(0x00EC);WriteData(0x0008); //STBA[15:8] WriteComm(0x00ED);WriteData(0x00C4); //STBA[7:0] WriteComm(0x00E8);WriteData(0x0040); //OPON[7:0] WriteComm(0x00E9);WriteData(0x0038); //OPON1[7:0] WriteComm(0x00F1);WriteData(0x0001); //OTPS1B WriteComm(0x00F2);WriteData(0x0010); //GEN WriteComm(0x0027);WriteData(0x00A3); // //Gamma 2.2 Setting WriteComm(0x0040);WriteData(0x0000); // WriteComm(0x0041);WriteData(0x0000); // WriteComm(0x0042);WriteData(0x0001); // WriteComm(0x0043);WriteData(0x0012); // WriteComm(0x0044);WriteData(0x0010); // WriteComm(0x0045);WriteData(0x0026); // WriteComm(0x0046);WriteData(0x0008); // WriteComm(0x0047);WriteData(0x0053); // WriteComm(0x0048);WriteData(0x0002); // WriteComm(0x0049);WriteData(0x0015); // WriteComm(0x004A);WriteData(0x0019); // WriteComm(0x004B);WriteData(0x0019); // WriteComm(0x004C);WriteData(0x0016); // WriteComm(0x0050);WriteData(0x0019); // WriteComm(0x0051);WriteData(0x002F); // WriteComm(0x0052);WriteData(0x002D); // WriteComm(0x0053);WriteData(0x003E); // WriteComm(0x0054);WriteData(0x003F); // WriteComm(0x0055);WriteData(0x003F); // WriteComm(0x0056);WriteData(0x002C); // WriteComm(0x0057);WriteData(0x0077); // WriteComm(0x0058);WriteData(0x0009); // WriteComm(0x0059);WriteData(0x0006); // WriteComm(0x005A);WriteData(0x0006); // WriteComm(0x005B);WriteData(0x000A); // WriteComm(0x005C);WriteData(0x001D); // WriteComm(0x005D);WriteData(0x00CC); // //Power Voltage Setting WriteComm(0x001B);WriteData(0x001B); //VRH=4.65V WriteComm(0x001A);WriteData(0x0001); //BT (VGH~15V);(VGL~-10V);(DDVDH~5V) WriteComm(0x0024);WriteData(0x002F); //VMH(VCOM High voltage ~3.2V) WriteComm(0x0025);WriteData(0x0057); //VML(VCOM Low voltage -1.2V) //****VCOM offset**/// WriteComm(0x0023);WriteData(0x0097); //for Flicker adjust //can reload from OTP //Power on Setting WriteComm(0x0018);WriteData(0x0036); //I/P_RADJ);(N/P_RADJ);( Normal mode 75Hz WriteComm(0x0019);WriteData(0x0001); //OSC_EN='1');( start Osc WriteComm(0x0001);WriteData(0x0000); //DP_STB='0');( out deep sleep WriteComm(0x001F);WriteData(0x0088);// GAS=1);( VOMG=00);( PON=0);( DK=1);( XDK=0) Delay(5); WriteComm(0x001F);WriteData(0x0080);// GAS=1);( VOMG=00);( PON=0);( DK=0);( XDK=0);( Delay(5); WriteComm(0x001F);WriteData(0x0090);// GAS=1);( VOMG=00);( PON=1);( DK=0);( XDK=0);( Delay(5); WriteComm(0x001F);WriteData(0x00D0);// GAS=1);( VOMG=10);( PON=1);( DK=0);( XDK=0);( Delay(5); //262k/65k color selection WriteComm(0x0017);WriteData(0x0005); //default 0x0006 262k color // 0x0005 65k color //SET PANEL WriteComm(0x0036);WriteData(0x0000); //SS_P);( GS_P);(REV_P);(BGR_P //Display ON Setting WriteComm(0x0028);WriteData(0x0038); //GON=1);( DTE=1);( D=1000 Delay(40); WriteComm(0x0028);WriteData(0x003C); //GON=1);( DTE=1);( D=1100 //Set GRAM Area WriteComm(0x0002);WriteData(0x0000); WriteComm(0x0003);WriteData(0x0000); //Column Start WriteComm(0x0004);WriteData(0x0000); WriteComm(0x0005);WriteData(0x00EF); //Column End WriteComm(0x0006);WriteData(0x0000); WriteComm(0x0007);WriteData(0x0000); //Row Start WriteComm(0x0008);WriteData(0x0001); WriteComm(0x0009);WriteData(0x003F); //Row End WriteComm(0x0022); //Start GRAM write } void BlockWrite(unsigned int Xstart,unsigned int Xend,unsigned int Ystart,unsigned int Yend) reentrant { WriteComm(0x0002);WriteData(Xstart>>8); WriteComm(0x0003);WriteData(Xstart); WriteComm(0x0004);WriteData(Xend>>8); WriteComm(0x0005);WriteData(Xend); WriteComm(0x0006);WriteData(Ystart>>8); WriteComm(0x0007);WriteData(Ystart); WriteComm(0x0008);WriteData(Yend>>8); WriteComm(0x0009);WriteData(Yend); WriteComm(0x0022); // write ram } void DispColor(unsigned int color) { unsigned int i,j; BlockWrite(0,COL-1,0,ROW-1);// #define ROW 320 #define COL 240 CS0=0; RS=1; RD0=1; for(i=0;i>8; WR0=0; WR0=1; DBH=color; WR0=0; WR0=1; } } CS0=1; } Main() { LCD_Init(); for(;;) { DispColor(0xf800); //RED Delay(10); DispColor(0x07e0); //GREEN Delay(10); DispColor(0x001f);//BLUE Delay(10); DispColor(0xffff); //WHITE } }