mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD WH2004A HD44780 o. KS0066 Ansteuerungsproblem


Autor: Joel Jaegers (array)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Mikrocontroller.net Forum,

nachdem ich mich durch euer AVR ASM Tutorial gekämpft habe und mich 
schon relativ gut mit den AVR µCs und ASM zurechtfinde, stehe ich nun 
vor meinem ersten großen Problem, und hoffe das mir hier jemand helfen 
kann.

Ich versuche mit ASM im 8bit modus ein 4x20 LCD WH2004A anzusteuern, 
wenn das gut klappt möchte ich auf den 4 bit modus umsteigen. Allerdings 
stehe ich hier bereits vor mehreren Problemen.
Das Display ist richtig angeschlosssen, DB0-DB7 an PB0-PB7
von meinem ATtiny2313. RS hängt an PD0 und E an PD1. RS liegt an GND.
Ich füge in den Anhang meinen ASM code, ich habe versucht die 4bit 
Version aus dem Tutorial in eine 8 bit Version umzuändern. Da sind 
bestimmt noch fehler drinn, aber ich finde im Moment keine mehr...

Nun zu meinem Problem:

Das Display zeigt nur in zeile 1 und 3 gelbe Balken an. Der 
Shop(sureelectronics) in dem ich das Display erstanden habe schreibt 
HD44780 aber das Datenblatt zu der Produktbezeichnung die auf einem 
sticker auf der Rückseite war sagt KS0066.
Was ist warscheinlicher? KS0066 oder?

Kann mir jemand ein paar Lösungsvorschläge geben? Oder einen Denkanstoß 
oder soetwas? Danke im Vorraus...

ArRaY

edit
Ich habe ganz vergessen hinzuzufügen, dass ich mich durch so alle 
threads mit betreff lcd gekämpft habe, aber irgendwie scheint nirgendswo 
die richtige lösung zu sein... Kontrastpoti vorhanden...

Autor: Joel Jaegers (array)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Keiner der nen Tipp geben könnte? :-(

Autor: Klaus2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
KS0066 muss imho bei 4 Zeilen anders init. werden - schau dir mal die 
lcd lib von perter fleury an, ist zwar C, aber da stehts drin...

die gelben balken sind übrigens ein gutes zeichen, wenn es ein 
invertiertes disp ist!

Klaus.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal ins Datenblatt der Controller. Da steht was von Wartezeiten 
während der Initialisierung. Ich kann sowas in deinem Code nicht 
erkennen.

Irgendwie ist der ganze Code etwas merkwürdig:
      ldi    temp3,25
powerupwait:

        rcall    delay5ms
temp3 = r18 und das wird in delay5ms überschrieben.

        dec    temp3
        brne   powerupwait
Die Schleife wird daher endlos laufen.

    ldi  temp1,0b00011110
    out   lcdport,temp1
    rcall  lcd_enable      ;1
    rcall  lcd_enable
Hier fehlen die oben angesprochenen Wartezeiten.

    ldi  temp1,0b00000001
    rcall  delay5ms           <- Hier fehlt wohl ein rcall lcd_cmd
    ldi  temp1,0b00000110
    rcall  lcd_cmd

Autor: Joel Jaegers (array)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Antwort, werde mich nun schnellstens daranmachen 
diese Fehler auszubügeln... Die Standart-4bitInit vom HD44780 in der 
Version aus dem Tutorial funktioniert schoneinmal, ich habe 
entsprechende c routinen gefunden, die funktionieren, und ich hoffe, 
dass nach den paar Änderungen auch die 8bit Methode geht.
Vielen Dank nochmal,
Joel

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.