void WriteComm(unsigned int i) { CS0=0; RD0=1; RS=0; DBH=i; WR0=0; WR0=1; CS0=1; } void WriteData(unsigned int i) { CS0=0; RD0=1; RS=1; DBH=i; WR0=0; WR0=1; CS0=1; } void LCD_Init(void) { RST=1; Delay(200); RST=0; Delay(800); RST=1; Delay(800); //************* Start Initial Sequence **********// WriteComm(0x11); //Exit Sleep Delay(100); WriteComm(0xCB); //AP[2:0] WriteData(0x01); WriteComm(0xC0); //Power control WriteData(0x26);//VRH[5:0] WriteData(0x01);//VC[2:0] WriteComm(0xC1); //Power control WriteData(0x10);//SAP[2:0];BT[3:0] WriteComm(0xC5); //VCM control WriteData(0x31); WriteData(0x3C); WriteComm(0x26); //Gamma curve selected WriteData(0x01); WriteComm(0xB6); WriteData(0xA0); WriteData(0xC2); WriteComm(0x36); // Memory Access Control WriteData(0x48); // 0x08 WriteComm(0x3A); //Set_pixel_format WriteData(0x05); //64k color WriteComm(0xE0); //Set Gamma WriteData(0x10); WriteData(0x10); WriteData(0x10); WriteData(0x08); WriteData(0x0E); WriteData(0x06); WriteData(0x42); WriteData(0x28); WriteData(0x36); WriteData(0x03); WriteData(0x0E); WriteData(0x04); WriteData(0x13); WriteData(0x0E); WriteData(0x0C); WriteComm(0XE1); //Set Gamma WriteData(0x0C); WriteData(0x23); WriteData(0x26); WriteData(0x04); WriteData(0x0C); WriteData(0x04); WriteData(0x39); WriteData(0x24); WriteData(0x4B); WriteData(0x03); WriteData(0x0B); WriteData(0x0B); WriteData(0x33); WriteData(0x37); WriteData(0x0F); WriteComm(0x2a);// WriteData(0x00); WriteData(0x00); WriteData(0x00); WriteData(0xef); WriteComm(0x2b); // WriteData(0x00); WriteData(0x00); WriteData(0x01); WriteData(0x3f); WriteComm(0x29); //display on Delay(100); WriteComm(0x2c); } void BlockWrite(unsigned int Xstart,unsigned int Xend,unsigned int Ystart,unsigned int Yend) reentrant { WriteComm(0x2a); WriteData(Xstart>>8); WriteData(Xstart&0xff); WriteData(Xend>>8); WriteData(Xend&0xff); WriteComm(0x2b); WriteData(Ystart>>8); WriteData(Ystart&0xff); WriteData(Yend>>8); WriteData(Yend&0xff); WriteComm(0x2c); } void DispColor(unsigned int color) { unsigned int i,j; BlockWrite(0,COL-1,0,ROW-1);// ROW =320 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 } }