#define LCD_RD A0 #define LCD_WR A1 #define LCD_RS A2 #define LCD_CS A3 #define LCD_REST A4 void setup() { for(int p=2;p<10;p++) { pinMode(p,OUTPUT); } pinMode(A0,OUTPUT); pinMode(A1,OUTPUT); pinMode(A2,OUTPUT); pinMode(A3,OUTPUT); pinMode(A4,OUTPUT); digitalWrite(A0, HIGH); digitalWrite(A1, HIGH); digitalWrite(A2, HIGH); digitalWrite(A3, HIGH); digitalWrite(A4, HIGH); Lcd_Init(); //delay(1000); LCD_Clear(0x0000); //Clear to Black. } void loop() { LCD_Clear(0xFFFF); // Clear to White. LCD_Clear(0x0000); // Clear to Black. } //////////////////////////////////////////////////////////// void LCD_Clear(unsigned int j) { unsigned int i,m; Address_set(0,0,319,239); for(i=0;i<320;i++) for(m=0;m<240;m++) { Lcd_Write_Data(j>>8); Lcd_Write_Data(j); } } ////////////////////////////////////////////////////////////// void Lcd_Init(void) { digitalWrite(LCD_REST,HIGH); delay(5); digitalWrite(LCD_REST,LOW); delay(15); digitalWrite(LCD_REST,HIGH); delay(15); Lcd_Write_Com(0xF0); Lcd_Write_Data(0x5A); Lcd_Write_Data(0x5A); Lcd_Write_Com(0xFC); Lcd_Write_Data(0x5A); Lcd_Write_Data(0x5A); Lcd_Write_Com(0xFD); Lcd_Write_Data(0x00); Lcd_Write_Data(0x00); Lcd_Write_Data(0x10); Lcd_Write_Data(0x14); Lcd_Write_Data(0x12); Lcd_Write_Data(0x00); Lcd_Write_Data(0x04); Lcd_Write_Data(0x48); Lcd_Write_Data(0x40); Lcd_Write_Data(0x16); Lcd_Write_Data(0x16); Lcd_Write_Com(0x35); Lcd_Write_Com(0x36); Lcd_Write_Data(0x28);//0x68 Lcd_Write_Com(0x3A); Lcd_Write_Data(0x55);//0x55 Lcd_Write_Com(0xF2); Lcd_Write_Data(0x28); Lcd_Write_Data(0x5B); Lcd_Write_Data(0x7F); Lcd_Write_Data(0x08); Lcd_Write_Data(0x08); Lcd_Write_Data(0x00); Lcd_Write_Data(0x00); Lcd_Write_Data(0x15); Lcd_Write_Data(0x48); Lcd_Write_Data(0x04); Lcd_Write_Data(0x07); Lcd_Write_Data(0x01); Lcd_Write_Data(0x00); Lcd_Write_Data(0x00); Lcd_Write_Data(0x63); Lcd_Write_Data(0x08); Lcd_Write_Data(0x08); Lcd_Write_Com(0xF7); Lcd_Write_Data(0x01); Lcd_Write_Data(0x00); Lcd_Write_Data(0x10); Lcd_Write_Data(0x00); Lcd_Write_Com(0xF8); Lcd_Write_Data(0x33); Lcd_Write_Data(0x00); Lcd_Write_Data(0x00); Lcd_Write_Com(0xF6); Lcd_Write_Data(0x01); Lcd_Write_Data(0x01); Lcd_Write_Data(0x07); Lcd_Write_Data(0x00); Lcd_Write_Data(0x01); Lcd_Write_Data(0x0C); Lcd_Write_Data(0x03); Lcd_Write_Data(0x0C); Lcd_Write_Data(0x03); Lcd_Write_Com(0xF5); Lcd_Write_Data(0x00); Lcd_Write_Data(0x2E); Lcd_Write_Data(0x40); Lcd_Write_Data(0x00); Lcd_Write_Data(0x00); Lcd_Write_Data(0x01); Lcd_Write_Data(0x00); Lcd_Write_Data(0x00); Lcd_Write_Data(0x0D); Lcd_Write_Data(0x0D); Lcd_Write_Data(0x00); Lcd_Write_Data(0x00); Lcd_Write_Com(0xF4); Lcd_Write_Data(0x07); Lcd_Write_Data(0x00); Lcd_Write_Data(0x00); Lcd_Write_Data(0x00); Lcd_Write_Data(0x22); Lcd_Write_Data(0x64); Lcd_Write_Data(0x01); Lcd_Write_Data(0x02); Lcd_Write_Data(0x2A); Lcd_Write_Data(0x4D); Lcd_Write_Data(0x06); Lcd_Write_Data(0x2A); Lcd_Write_Data(0x00); Lcd_Write_Data(0x06); Lcd_Write_Data(0x00); Lcd_Write_Data(0x00); Lcd_Write_Data(0x00); Lcd_Write_Data(0x00); Lcd_Write_Data(0x00); Lcd_Write_Data(0x00); Lcd_Write_Com(0xF3); Lcd_Write_Data(0x01); //GAMMA Lcd_Write_Com(0xF9); Lcd_Write_Data(0x04); Lcd_Write_Com(0xFA); Lcd_Write_Data(0x0A); Lcd_Write_Data(0x04); Lcd_Write_Data(0x0C); Lcd_Write_Data(0x19); Lcd_Write_Data(0x25); Lcd_Write_Data(0x33); Lcd_Write_Data(0x2D); Lcd_Write_Data(0x27); Lcd_Write_Data(0x22); Lcd_Write_Data(0x1E); Lcd_Write_Data(0x1A); Lcd_Write_Data(0x00); Lcd_Write_Com(0xFB); Lcd_Write_Data(0x0C); Lcd_Write_Data(0x04); Lcd_Write_Data(0x19); Lcd_Write_Data(0x1E); Lcd_Write_Data(0x20); Lcd_Write_Data(0x23); Lcd_Write_Data(0x18); Lcd_Write_Data(0x3D); Lcd_Write_Data(0x25); Lcd_Write_Data(0x19); Lcd_Write_Data(0x0B); Lcd_Write_Data(0x00); Lcd_Write_Com(0xF9); Lcd_Write_Data(0x02); Lcd_Write_Com(0xFA); Lcd_Write_Data(0x0A); Lcd_Write_Data(0x04); Lcd_Write_Data(0x0C); Lcd_Write_Data(0x19); Lcd_Write_Data(0x25); Lcd_Write_Data(0x33); Lcd_Write_Data(0x2D); Lcd_Write_Data(0x27); Lcd_Write_Data(0x22); Lcd_Write_Data(0x1E); Lcd_Write_Data(0x1A); Lcd_Write_Data(0x00); Lcd_Write_Com(0xFB); Lcd_Write_Data(0x0C); Lcd_Write_Data(0x04); Lcd_Write_Data(0x19); Lcd_Write_Data(0x1E); Lcd_Write_Data(0x20); Lcd_Write_Data(0x23); Lcd_Write_Data(0x18); Lcd_Write_Data(0x3D); Lcd_Write_Data(0x25); Lcd_Write_Data(0x19); Lcd_Write_Data(0x0B); Lcd_Write_Data(0x00); Lcd_Write_Com(0xF9); Lcd_Write_Data(0x01); Lcd_Write_Com(0xFA); Lcd_Write_Data(0x0A); Lcd_Write_Data(0x04); Lcd_Write_Data(0x0C); Lcd_Write_Data(0x19); Lcd_Write_Data(0x25); Lcd_Write_Data(0x33); Lcd_Write_Data(0x2D); Lcd_Write_Data(0x27); Lcd_Write_Data(0x22); Lcd_Write_Data(0x1E); Lcd_Write_Data(0x1A); Lcd_Write_Data(0x00); Lcd_Write_Com(0xFB); Lcd_Write_Data(0x0C); Lcd_Write_Data(0x04); Lcd_Write_Data(0x19); Lcd_Write_Data(0x1E); Lcd_Write_Data(0x20); Lcd_Write_Data(0x23); Lcd_Write_Data(0x18); Lcd_Write_Data(0x3D); Lcd_Write_Data(0x25); Lcd_Write_Data(0x19); Lcd_Write_Data(0x0B); Lcd_Write_Data(0x00); Lcd_Write_Com(0x11); delay(100); Lcd_Write_Com(0xF0); Lcd_Write_Data(0xA5); Lcd_Write_Data(0xA5); Lcd_Write_Com(0xFC); Lcd_Write_Data(0xA5); Lcd_Write_Data(0xA5); Lcd_Write_Com(0x2a); Lcd_Write_Data(0x00); Lcd_Write_Data(0x00); Lcd_Write_Data(0x01);//0x01 Lcd_Write_Data(0x3f);//0x3f Lcd_Write_Com(0x2b); Lcd_Write_Data(0x00); Lcd_Write_Data(0x00); Lcd_Write_Data(0x00);//0x00 Lcd_Write_Data(0xef);//0xef Lcd_Write_Com(0x29); Lcd_Write_Com(0x2c); } /////////////////////////////////////////////////////////////////////// void Address_set(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2) { Lcd_Write_Com(0x2a); Lcd_Write_Data(x1>>8); Lcd_Write_Data(x1&0xFF); Lcd_Write_Data(x2>>8);//0x01 Lcd_Write_Data(x2&0xFF);//0x3f Lcd_Write_Com(0x2b); Lcd_Write_Data(y1>>8); Lcd_Write_Data(y1&0xFF); Lcd_Write_Data(y2>>8);//0x01 Lcd_Write_Data(y2&0xFF);//0x3f Lcd_Write_Com(0x2c); } //////////////////////////////////////////////////////////// void Lcd_Write_Com(unsigned char VH) { digitalWrite(LCD_CS,LOW); digitalWrite(LCD_RS,LOW); Lcd_Writ_Bus(VH); digitalWrite(LCD_CS,HIGH); digitalWrite(LCD_RS,HIGH); } //////////////////////////////////////////////////////////////// void Lcd_Write_Data(unsigned char VH) { digitalWrite(LCD_CS,LOW); digitalWrite(LCD_RS,HIGH); Lcd_Writ_Bus(VH); digitalWrite(LCD_CS,HIGH); digitalWrite(LCD_RS,HIGH); } ///////////////////////////////////////////////////////////////// void Lcd_Writ_Bus(unsigned char VH) { unsigned int i,temp,data; data=VH; for(i=8;i<=9;i++) { temp=(data&0x01); if(temp) digitalWrite(i,HIGH); else digitalWrite(i,LOW); data=data>>1; } digitalWrite(LCD_WR,LOW); for(i=2;i<=7;i++) { temp=(data&0x01); if(temp) digitalWrite(i,HIGH); else digitalWrite(i,LOW); data=data>>1; } digitalWrite(LCD_WR,HIGH); } ///////////////////////////////////////////////////////////////