Forum: Mikrocontroller und Digitale Elektronik LCD Initialisierung Mikrocontroller


von Anfänger (Gast)


Lesenswert?

Hallo,

ich lese und versuche den Code zur Initialisierung des LCDs zu 
verstehen.

http://www.mikrocontroller.net/articles/AVR-Tutorial:_LCD

hierbei verstehe ich die folgenden Codes nicht:

powerupwait:

1)Warum bzw. was bedeutet 00000011?? Bedeutet das, dass an den Pins D0 
und D1 5V anliegen??
--------------------------------------------------------------
--------------------------------------------------------------
 ldi   temp1,    0b00000011   ; muss 3mal hintereinander gesendet
 out   PORTD, temp1        ; werden zur Initialisierung
---------------------------------------------------------------
---------------------------------------------------------------

2) Woher weiss ich das hier der 4 Bit Modus eingestellt ist??
 ldi temp1, 0b00000010        ; 4bit-Modus einstellen
 out PORTD, temp1

Bin echt am verzweifeln. Danke für jede Hilfe

von Peter II (Gast)


Lesenswert?

Anfänger schrieb:
> Woher weiss ich das hier der 4 Bit Modus eingestellt ist??

hast du mal das Datenblatt von dem Display gelesen?

von spess53 (Gast)


Lesenswert?

Hi

>hast du mal das Datenblatt von dem Display gelesen?

Das steht da oft nicht drin. Besser das Datenblatt vom HD44780 benutzen.

MfG Spess

von Anfänger (Gast)


Lesenswert?

Ja, eigentlich schon ..

von Anfänger (Gast)


Lesenswert?

Danke..


das mit den Funktionen (aus dem Dantenblatt) setzen oder 
Anzeigenkontrolle ein und aus, habe ich verstanden. Jedoch weiß ich 
nicht wo im Datenblatt die Einstellung des 4-Bot Modus bzw 3 mal 
hintereinander gesendet steht.
Kann mir jemand eventuell sagen auf welcher Seite ich gucken soll?

Lieben Dank

von holger (Gast)


Lesenswert?

>Kann mir jemand eventuell sagen auf welcher Seite ich gucken soll?

Ganz weit hinten steht das.

von spess53 (Gast)


Lesenswert?

Hi

>Kann mir jemand eventuell sagen auf welcher Seite ich gucken soll?

In welchem Datenblatt?

MfG Spess

von holger (Gast)


Angehängte Dateien:

Lesenswert?

Um das mal abzukürzen:

Anhang Seite 213

von Bastler (Gast)


Lesenswert?

Oft steht es nirgends, aber man nutzt es, wenn man nicht weiß, in 
welchem Modus das Display sich gerade befindet, nicht nach einschalte, 
aber wenn der μC ge-resettet wird. Es kann sich, auch ungewollt, im 
8-Bit-Modus befinden oder im 4-Bit-Modus vor dem ersten oder zweiten 
Nibble. Letzteres macht jede Befehlsübertragung zum Glücksspiel.
  Nach 3x "4-Bit-Mode" ist das Display tatsächlich in diesem Modus. Alle 
anderen zu lesenden Verfahren führen zu Problemen, die man dann durch 
"abschalten" lösen muß.

von Bastler (Gast)


Lesenswert?

Wenn man was aus dem (alte) Kopf hinschreibt:
3x"8-Bit-Mode", dann hat man den auch sicher und kann dann (gechilled) 
auf "4-Bit-Mode" schalten.

von Anfänger (Gast)


Lesenswert?

Danke für die Antworten..

Ist dieser Code (aus: 
http://www.mikrocontroller.net/articles/AVR-Tutorial:_LCD)  auch aus dem 
Datenblatt ableitbar? Zum Beispiel ich weiß nicht, warum der 4te Bit 
(1)*) im Register temp1 gesetzt wird .


lcd_data:
           mov temp2, temp1             ; "Sicherungskopie" für
                                        ; die Übertragung des 2.Nibbles
           swap temp1                   ; Vertauschen
           andi temp1, 0b00001111       ; oberes Nibble auf Null setzen
        -->  1)* sbr temp1, 1<<4              ; entspricht 0b00010000 
(Anm.1)
           out PORTD, temp1             ; ausgeben
           rcall lcd_enable             ; Enable-Routine aufrufen
                                        ; 2. Nibble, kein swap da es 
schon
                                        ; an der richtigen stelle ist
           andi temp2, 0b00001111       ; obere Hälfte auf Null setzen
           sbr temp2, 1<<4              ; entspricht 0b00010000
           out PORTD, temp2             ; ausgeben
           rcall lcd_enable             ; Enable-Routine aufrufen
           rcall delay50us              ; Delay-Routine aufrufen
           ret                          ; zurück zum Hauptprogramm

viele Grüße

von GroberKlotz (Gast)


Angehängte Dateien:

Lesenswert?

jetzt wird es trollig!

Die die 4bit-initialisierung wie in der Anlage gezeigt, habe ich aus dem 
original HD44780-Datenblatt S. 213 entnommen. Wen da einer wissen will 
warum dieses oder jenes Bit so gesetzt werden muss, kann ja mal ein 
Anfrage bei Hitachi starten...

von Jobst M. (jobstens-de)


Lesenswert?

GroberKlotz schrieb:
> jetzt wird es trollig!

Ja!

GroberKlotz schrieb:
> Wen da einer wissen will
> warum dieses oder jenes Bit so gesetzt werden muss, kann ja mal ein
> Anfrage bei Hitachi starten...

Oder auf Seite 191 nachsehen. Hat keine Minute gedauert, das zu finden!



Siehe auch: Beitrag "HD44780 Initialisierung - warum dreimal 0x30?"


Gruß

Jobst

von helper (Gast)


Lesenswert?

Anfänger schrieb:
> Zum Beispiel ich weiß nicht, warum der 4te Bit
> (1)*) im Register temp1 gesetzt wird .

guckst Du Anschluss -> an PD4 hängt RS und weil Daten gesendet welche 
angezeigt werden sollen muss RS auf 1

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.