Forum: Mikrocontroller und Digitale Elektronik Bitmodus setzen und Soft reset - LCD mit HD44780


von lk (Gast)


Lesenswert?

Moin,

ich gucke mir jetzt schon den ganzen Tag die Funktionsweise der 
Ansteuerung für LC-Displays an (C-Code), leider ist in den Tutorials 
mein Anliegen nicht genauer beschrieben, jedenfalls kann ich es nicht 
finden.

Es geht um die einstellung des Bitmodus (4 oder 8 bit).
1
lcd_out( LCD_SET_FUNCTION |
2
             LCD_FUNCTION_4BIT );

Dort wird über die Funktion PortD auf xxxx0010 geschaltet was aber nach 
dem Befehlssatz des LCDs nicht dem ändern des Bitmous entspricht. Nach 
dem übrigen Code müsste man entweder mehr Datenpins vom LCD ansteuern 
(wenn das LCD standardmäßig auf 8bit eingestellt ist) oder es müsste 
nach der Ausgabe nochmal ein gelöschtes Nibble gesendet werden (0000). 
Wie funktioniert das dann?


Und dann habe ich noch eine Frage: Aus welchem Grund wird der Softreset 
3 mal hintereinander gemacht und in welchem Zusammenhang steht er mit 
dem 8bit Modus? Denn der Befehl lautet 0x00110000 genauso wie 
(LCD_SET_FUNCTION | LCD_FUNCTION_8BIT)?
1
    // Soft-Reset muss 3mal hintereinander gesendet werden zur Initialisierung
2
    lcd_out( LCD_SOFT_RESET );
3
    _delay_ms( LCD_SOFT_RESET_MS1 );
4
 
5
    lcd_enable();
6
    _delay_ms( LCD_SOFT_RESET_MS2 );
7
 
8
    lcd_enable();
9
    _delay_ms( LCD_SOFT_RESET_MS3 );


Den Code habe ich von hier: 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung

von J.-u. G. (juwe)


Lesenswert?

lk schrieb:
> Dort wird über die Funktion PortD auf xxxx0010 geschaltet was aber nach
> dem Befehlssatz des LCDs nicht dem ändern des Bitmous entspricht.

Wieso nicht? Gemäß diesem Datenblatt (letzte Seite):
http://www.produktinfo.conrad.com/datenblaetter/175000-199999/183342-da-01-ml-LCD_Modul_16x2_Zeichen_de_en.pdf
wird der 4-Bit-Modus durch Anlegen des Bitmusters 0010 an die Eingänge 
DB7-DB4 des LCD eingestellt.

> Aus welchem Grund wird der Softreset
> 3 mal hintereinander gemacht
Das haben die Entwickler des HD44780 so festgelegt.

> in welchem Zusammenhang steht er mit
> dem 8bit Modus?
In keinem. Diese Sequenz ist sowohl im 8-Bit-Modus als auch im 
4-Bit-Modus identisch.

von lk (Gast)


Lesenswert?

Okay, alles klar. Danke für die Antwort.

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.