Kör en HD44780 visas utanför ATmega på en Gertboard (7 / 8 steg)
Steg 7: Koden
Här är koden för min skiss, som är starkt baserat på koden från Raspberry Pi Spy:CONST int LCD_RS = 8;
CONST int LCD_E = 9;
CONST int LCD_D4 = 10;
CONST int LCD_D5 = 11;
CONST int LCD_D6 = 12;
CONST int LCD_D7 = 13.
CONST int LCD_WIDTH = 40;
CONST boolean LCD_CHR = sant;
CONST boolean LCD_CMD = false;
CONST int LCD_LINE_1 = 0x80;
CONST int LCD_LINE_2 = 0xC0;
CONST int paus = 1;
void allLow() {
digitalWrite(LCD_D4,LOW);
digitalWrite(LCD_D5,LOW);
digitalWrite(LCD_D6,LOW);
digitalWrite(LCD_D7,LOW);
}
void tick() {
Delay(PAUSE);
digitalWrite(LCD_E,HIGH);
Delay(PAUSE);
digitalWrite(LCD_E,LOW);
Delay(PAUSE);
}
void lcd_byte (int bitar, booleska läge) {
om (läge == true) {
digitalWrite(LCD_RS,HIGH);
} annat {
digitalWrite(LCD_RS,LOW);
}
allLow();
om ((bits&0x10) == 0x10) {digitalWrite(LCD_D4,HIGH);}
om ((bits&0x20) == 0x20) {digitalWrite(LCD_D5,HIGH);}
om ((bits&0x40) == 0x40) {digitalWrite(LCD_D6,HIGH);}
om ((bits&0x80) == 0x80) {digitalWrite(LCD_D7,HIGH);}
Tick();
allLow();
om ((bits&0x01) == 0x01) {digitalWrite(LCD_D4,HIGH);}
om ((bits&0x02) == 0x02) {digitalWrite(LCD_D5,HIGH);}
om ((bits&0x04) == 0x04) {digitalWrite(LCD_D6,HIGH);}
om ((bits&0x08) == 0x08) {digitalWrite(LCD_D7,HIGH);}
Tick();
}
void lcd_string(String message) {
för (int jag = 0; jag < message.length(); i ++) {
lcd_byte(Message.charAt(i),LCD_CHR);
}
}
void setup() {
pinMode(LCD_RS,OUTPUT);
pinMode(LCD_E,OUTPUT);
digitalWrite(LCD_E,LOW);
pinMode(LCD_D4,OUTPUT);
pinMode(LCD_D5,OUTPUT);
pinMode(LCD_D6,OUTPUT);
pinMode(LCD_D7,OUTPUT);
lcd_byte(0x33,LCD_CMD);
lcd_byte(0x32,LCD_CMD);
lcd_byte(0x28,LCD_CMD);
lcd_byte(0x0C,LCD_CMD);
lcd_byte(0x06,LCD_CMD);
lcd_byte(0x01,LCD_CMD);
lcd_byte(LCD_LINE_1,LCD_CMD);
lcd_string("Hello");
lcd_byte(LCD_LINE_2,LCD_CMD);
lcd_string("World");
}
void loop() {
}