This is the example code. I have very quickly modified it to work with Arduino.
Disclaimer I didn't write this, and it needs a whole lot of optimisation (quite frankly it it awful coding), but at this point it would be good to know if the display works, and if this code works for the display. If it does, then I might be inclined to rewrite it for you.
const byte reset = 8;
const byte cs = 6;
const byte scl = 4;
const byte sda = 5;
const byte rs = 7;
void write_command(byte c){
digitalWrite(cs,0);
digitalWrite(rs,0);
digitalWrite(sda,bitSet(c,7));
digitalWrite(scl,0);
digitalWrite(scl,1);
digitalWrite(sda,bitSet(c,6));
digitalWrite(scl,0);
digitalWrite(scl,1);
digitalWrite(sda,bitSet(c,5));
digitalWrite(scl,0);
digitalWrite(scl,1);
digitalWrite(sda,bitSet(c,4));
digitalWrite(scl,0);
digitalWrite(scl,1);
digitalWrite(sda,bitSet(c,3));
digitalWrite(scl,0);
digitalWrite(scl,1);
digitalWrite(sda,bitSet(c,2));
digitalWrite(scl,0);
digitalWrite(scl,1);
digitalWrite(sda,bitSet(c,1));
digitalWrite(scl,0);
digitalWrite(scl,1);
digitalWrite(sda,bitSet(c,0));
digitalWrite(scl,0);
digitalWrite(scl,1);
digitalWrite(cs,1);
}
void write_data(byte d) {
digitalWrite(cs,0);
digitalWrite(rs,1);
digitalWrite(sda,bitSet(d,7));
digitalWrite(scl,0);
digitalWrite(scl,1);
digitalWrite(sda,bitSet(d,6));
digitalWrite(scl,0);
digitalWrite(scl,1);
digitalWrite(sda,bitSet(d,5));
digitalWrite(scl,0);
digitalWrite(scl,1);
digitalWrite(sda,bitSet(d,4));
digitalWrite(scl,0);
digitalWrite(scl,1);
digitalWrite(sda,bitSet(d,3));
digitalWrite(scl,0);
digitalWrite(scl,1);
digitalWrite(sda,bitSet(d,2));
digitalWrite(scl,0);
digitalWrite(scl,1);
digitalWrite(sda,bitSet(d,1));
digitalWrite(scl,0);
digitalWrite(scl,1);
digitalWrite(sda,bitSet(d,0));
digitalWrite(scl,0);
digitalWrite(scl,1);
digitalWrite(cs,1);
}
void write_data(byte LCD_DataH,byte LCD_DataL)
{
write_data(LCD_DataH);
write_data(LCD_DataL);
}
void write_data(byte LCD_DataH,byte LCD_DataM,byte LCD_DataL)
{
write_data(LCD_DataH);
write_data(LCD_DataM);
write_data(LCD_DataL);
}
void Reset()
{
digitalWrite(reset,LOW);
delay(100);
digitalWrite(reset,HIGH);
delay(100);
}
//////////////////////////////////////////////////////////////////////////////////////////////
void lcd_initial(){
Reset();
//------------------------------------------------------------------//
//-------------------Software Reset-------------------------------//
//------------------------------------------------------------------//
write_command(0x11);//Sleep exit
delay (120);
//ST7735R Frame Rate
write_command(0xB1);
write_data(0x01);
write_data(0x2C);
write_data(0x2D);
write_command(0xB2);
write_data(0x01);
write_data(0x2C);
write_data(0x2D);
write_command(0xB3);
write_data(0x01);
write_data(0x2C);
write_data(0x2D);
write_data(0x01);
write_data(0x2C);
write_data(0x2D);
write_command(0xB4); //Column inversion
write_data(0x07);
//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(0x0A);
write_data(0x00);
write_command(0xC3);
write_data(0x8A);
write_data(0x2A);
write_command(0xC4);
write_data(0x8A);
write_data(0xEE);
write_command(0xC5); //VCOM
write_data(0x0E);
write_command(0x36); //MX, MY, RGB mode
write_data(0xC8);
//ST7735R Gamma Sequence
write_command(0xe0);
write_data(0x0f);
write_data(0x1a);
write_data(0x0f);
write_data(0x18);
write_data(0x2f);
write_data(0x28);
write_data(0x20);
write_data(0x22);
write_data(0x1f);
write_data(0x1b);
write_data(0x23);
write_data(0x37);
write_data(0x00);
write_data(0x07);
write_data(0x02);
write_data(0x10);
write_command(0xe1);
write_data(0x0f);
write_data(0x1b);
write_data(0x0f);
write_data(0x17);
write_data(0x33);
write_data(0x2c);
write_data(0x29);
write_data(0x2e);
write_data(0x30);
write_data(0x30);
write_data(0x39);
write_data(0x3f);
write_data(0x00);
write_data(0x07);
write_data(0x03);
write_data(0x10);
write_command(0x2a);
write_data(0x00);
write_data(0x00);
write_data(0x00);
write_data(0x7f);
write_command(0x2b);
write_data(0x00);
write_data(0x00);
write_data(0x00);
write_data(0x9f);
write_command(0xF0); //Enable test command
write_data(0x01);
write_command(0xF6); //Disable ram power save mode
write_data(0x00);
write_command(0x3A); //65k mode
write_data(0x05);
write_command(0x29);//Display on
}
void RamAdressSet(){
write_command(0x2A);
write_data(0x00);
write_data(0x00);
write_data(0x00);
write_data(0x7f);
write_command(0x2B);
write_data(0x00);
write_data(0x00);
write_data(0x00);
write_data(0x9f);
}
void dsp_single_colour(byte DH,byte DL)
{
byte i,j;
//RamAdressSet();
for (i=0;i<160;i++){
for (j=0;j<128;j++){
write_data(DH,DL);
}
}
}
void PutPixel(unsigned int x_start,unsigned int y_start,unsigned int color)
{
write_command(0x2a);
write_data(x_start);
write_data(0x5f);
write_command(0x2b);
write_data(y_start+0x34);
write_data(0x7F);
write_command(0x2c);
write_data(color>>8);
write_data(color&0xff);
}
void setup()
{
// This code will only run once, after each powerup or reset of board
lcd_initial();
}
void loop()
{
static byte i = 0;
i += 10;
// This code loops consecutively
delay(100);
write_command(0x2C);
dsp_single_colour(i,i);
}