Skip to content

Instantly share code, notes, and snippets.

@alexzam
Created April 10, 2013 07:56
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alexzam/5352676 to your computer and use it in GitHub Desktop.
Save alexzam/5352676 to your computer and use it in GitHub Desktop.
Test code for LCD screen.
int lD = 250;
int lnD = 500;
int N = 0x8;
int F = 0x4;
int RS = 0;
int RW = 1;
int E = 2;
int DB4 = 4;
int DB5 = 5;
int DB6 = 6;
int DB7 = 7;
void fireCommand(){
digitalWrite(E, LOW);
delayMicroseconds(2);
digitalWrite(E, HIGH);
delayMicroseconds(2);
digitalWrite(E, LOW);
delayMicroseconds(500);
}
void write4(char data, boolean isChar){
PORTD = data & 0xF0 | (isChar?0x1:0);
fireCommand();
}
void write8(char data, boolean isChar){
write4(data, isChar);
char data1 = (data & 0xF) << 4;
write4(data1, isChar);
}
void setup(){
delay(45);
pinMode(E, OUTPUT);
pinMode(RS, OUTPUT);
pinMode(RW, OUTPUT);
pinMode(DB4, OUTPUT);
pinMode(DB5, OUTPUT);
pinMode(DB6, OUTPUT);
pinMode(DB7, OUTPUT);
digitalWrite(E, LOW);
digitalWrite(RS, LOW);
digitalWrite(RW, LOW);
// Function set to 8bit
write4(0x30, false);
// Function set to 4bit
write8(0x20 | N | F, false);
// Repeat function set
write8(0x20 | N | F, false);
//Display on/off control
write8(0x0C, false);
// Entry mode set
write8(0x06, false); // 0x06
}
void loop(){
/// Text output
// Display clear
write8(0x01, false);
// Set DDRAM addr to 00
write8(0x80, false);
// Output
write8(0xA8, true); // "П"
delay(lD);
write8(0x70, true); // "p"
delay(lD);
write8(0x65, true); // "e"
delay(lD);
write8(0xB3, true); // "в"
delay(lD);
write8(0x65, true); // "e"
delay(lD);
write8(0x67, true); // "g"
delay(lD);
write8(0x2C, true); // ","
delay(lD);
write8(0x20, true); // " "
delay(lD);
// Set DDRAM addr to 40
write8(0xC0, false);
delay(lD);
write8(0x4D, true); // "M"
delay(lD);
write8(0x65, true); // "e"
delay(lD);
write8(0x67, true); // "g"
delay(lD);
write8(0xB3, true); // "в"
delay(lD);
write8(0x65, true); // "e"
delay(lD);
write8(0x67, true); // "g"
delay(lD);
write8(0x21, true); // "!"
delay(lnD);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment