LCD Initialisierung Mikrocontroller

Gast #4229080
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
Gast
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
Gast
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ß.
Gast
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
Gast
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...
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.