Forum: Mikrocontroller und Digitale Elektronik LCD mit 8 Bit initialisieren


von Jürgen H. (misteret)


Lesenswert?

Hallo Leute,

anders als im Tutorial muss ich ein LCD mit allen 8 Datenleitungen 
ansteuern.
Den 4 Bit Modus habe ich hinbekommen, aber den 8 Bit Modus nicht so 
wirklich :-(

Habe hier meinen Quelltext, habe einfach von 4 Bit in 8 Bit geändert. 
Alles vom 4 Bit Modus habe ich ausgeklammert, damit ihr sehen könnt, was 
ich geändert habe.





void lcd_init(void)
{
  LCD_DDR_Data = 0xFF;
  LCD_DDR_Control = (1<<LCD_RW) | (1<<LCD_RS) | (1<<LCD_E);

      // Pins als Ausgang



  // 4 Bit Modus aktivieren
  /* LCD_PORT &= 0xF0;
  LCD_PORT |= 0x02;
  lcd_enable();
  _delay_ms(1);*/

  FRAAAAAAAAAAGE:
  Wozu dienen diese paar Zeilen? 4 Bit Modus aktivieren? Das macht man 
so,   indem man das Kommando lcd_command(0x38) sendet. Da wird doch auch 
der 4 Bit Modus aktiveirt.

Naja, ich habe es mal hier komplett ausgeklammert, aber gibt es 
vielleicht so was ähnliches, dass wie oben den 4 Bit Modus auch den 8 
Bit Modus aktivieren kann?






  // Function Set
  lcd_command(0x38);    // 0 0 1 1  1 0 0 0 ==> 4 Bit, 2 Zeilen, 5*7 
Punkte
  _delay_ms(1);

  // Entry Mode Set
  lcd_command(0x06);    // 0 0 0 0  0 1 1 0 ==> Erhöhe Curser Position, 
Display schieben
              // Diese Operationen werden während des Lesen/Schreiben
              // durchgeführt.
  _delay_ms(1);

  // Display On/Off Control
  lcd_command(0x0C);    // 0 0 0 0  1 1 0 0 ==> Display on, mit Curser, 
Blinken
  _delay_ms(1);

  // Cursor/Display shift
  lcd_command(0x10);    // 0 0 0 1  0 0 0 0
              // Setzt Cursor Bewegung oder Display Bewegung (S/C),
              // Bewegungsrichtung (R/L).
  _delay_ms(1);




  lcd_clear();
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.