//Working for Banggood TFT Touch LCD Shield #define LCD_RD A0 #define LCD_WR A1 #define LCD_RS A2 #define LCD_CS A3 #define LCD_REST A4 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); } 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_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 H_line(unsigned int x, unsigned int y, unsigned int l, unsigned int c) { unsigned int i,j; l=l+x; Address_set(x,y,l,y); j=l*2; for(i=1;i<=j;i++) { Lcd_Write_Data(c>>8); Lcd_Write_Data(c&0xFF); } } void V_line(unsigned int x, unsigned int y, unsigned int l, unsigned int c) { unsigned int i,j; l=l+y; Address_set(x,y,x,l); j=l*2; for(i=1;i<=j;i++) { Lcd_Write_Data(c>>8); Lcd_Write_Data(c&0xFF); } } void Rect(unsigned int x,unsigned int y,unsigned int w,unsigned int h,unsigned int c) { H_line(x , y , w, c); H_line(x , y+h, w, c); V_line(x , y , h, c); V_line(x+w, y , h, c); } void Rectf(unsigned int x,unsigned int y,unsigned int w,unsigned int h,unsigned int c) { unsigned int i; for(i=0;i>8); Lcd_Write_Data(j); } } 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(); LCD_Clear(0xF800); delay(1000); LCD_Clear(0x07E0); delay(1000); LCD_Clear(0x001F); delay(1000); LCD_Clear(0xFFFF); } void loop() { int p; for(int i=0;i<1000;i++) { Rect(random(300),random(300),random(300),random(300),random(65535)); // rectangle at x, y, with, hight, color /*LCD_Clear(0xf800); delay(1000); LCD_Clear(0x07E0); delay(1000); LCD_Clear(0x001F); delay(1000); LCD_Clear(0xffff); delay(1000);*/ } // LCD_Clear(0xf800); }