so i got this out of curiosity
after reading the PDF
http://www.jlxlcd.cn/UpFile/2013122811212.pdf
there is sample code which i could try to convert over
at this moment, everything seem straight forward, i just want to dump some bytes on the screen using void clear_screen() + transfer_data(0xFF) (which is blocks of blacks)
while what i tried compiled, the screen did not fuzz
anyone want to give me a hand?
start of code
// LCD --------> MCU
// 05 LED BL --> 4 LB
// 06 GND
// 07 V+
// 08 A0/RS ---> 5 LA
// 09 RESET ---> 6 LR
// 10 CS ------> 7 LC
// 11 SDA -----> 8 LD
// 12 SCK -----> 13 LK
//
//
#define LB 4
#define LA 5
#define LR 6
#define LC 7
#define LD 8
#define LK 13
void LTC(byte cmd) //LCD cmd
{
byte i;
digitalWrite(LA, LOW);
for(i=0;i<8;i++)
{
digitalWrite(LK, LOW);
if(cmd&0x80) digitalWrite(LD, HIGH);
else digitalWrite(LD, LOW);
digitalWrite(LK, HIGH);
cmd=cmd<<=1;
}
}
//digitalWrite(LA, HIGH);
//shiftOut(LD, LK, MSBFIRST, cmd);
void LTD(byte cmd) //LCD data
{
byte i;
digitalWrite(LA, HIGH);
for(i=0;i<8;i++)
{
digitalWrite(LK, LOW);
if(cmd&0x80) digitalWrite(LD, HIGH);
else digitalWrite(LD, LOW);
digitalWrite(LK, HIGH);
cmd=cmd<<=1;
}
}
//digitalWrite(LA, LOW);
//shiftOut(LD, LK, MSBFIRST, cmd);
void INITL() // init LCD
{
digitalWrite(LC, LOW);
// rd=0;
digitalWrite(LR, LOW);
delay(20);
digitalWrite(LR, HIGH);
delay(10);
LTC(0xAB); // 1010 1011 osc on
delay(10);
LTC(0x2C); //0010 1100 boost 1 on
delay(20);
LTC(0x2E); //0010 1110 boost 2 on
delay(20);
LTC(0x2F); //0010 1111 boost 3 on
delay(20);
LTC(0xAF); //1010 0010 lcd bias set
LTC(0x24); //0010 0100 vreg set
LTC(0x81); //1000 0001 set vref on
LTC(0x18); //0001 0100 contrast offset set
LTC(0x40); // 0100 0000 start @ display line zero
LTC(0xA1); // 1010 0001 SEG fwd/rev direction
LTC(0xC0); // 1100 0000 COM fwd/rev direction
LTC(0xAF); // 1010 1111 disp ON
}
void LADD(byte PG,byte CL) // display address
{
digitalWrite(LC, LOW);
CL=CL+31; //
PG=PG-1;
LTC(0xb0+PG); //1 page is 8lines, start = page zero
LTC(((CL>>4)&0x0f)+0x10); // upper 4 bit
LTC(CL&0x0f); //lower 4bit
}
void CLS()
{
byte i,j;
digitalWrite(LC, LOW);
for(i=0;i<9;i++)
{
LADD(1+i,1);
for(j=0;j<224;j++)
{
LTD(0x22);
}
}
}
void setup()
{
Serial.begin(115200, SERIAL_8N1);
pinMode(4, OUTPUT); //LB
pinMode(5, OUTPUT); //LA
pinMode(6, OUTPUT); //LR
pinMode(7, OUTPUT); //LC
pinMode(8, OUTPUT); //LD
pinMode(9, OUTPUT); //LK
INITL();
}
void loop(){
//digitalWrite(13, HIGH);
//delay(10);
//Serial.println("Hello World");
//digitalWrite(13, LOW);
delay(1500);
CLS();
delay(1500);
byte i,j;
digitalWrite(LC, LOW);
for(i=0;i<9;i++)
{
LADD(1+i,1);
for(j=0;j<224;j++)
{
LTD(0xFF);
}
}
}