mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD Jedes Zeichen ein kästchen


Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich habe in Display mit dem KS0066 Controller und wenn ich ein zeichen 
ausgebe kommt immer nur ein kästchen. Ich betreibe das ganze an einem 
Atmega8. Meine Vermutung ist ein fehler in der initialisierung. Kanns 
aber nicht bestimmt sagen.
Hatte jemand schonmal diesen fehler?

Autor: Fäbu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie hast du den Kontrast eingestellt???? Dachte auch schon mein LCD sei 
kapput, aber dabei war das Potentiometer für den Kontrast defekt.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich verwende kein poti.
Vss V0 und R/W liegen auf masse.
jedesmal wenn ich die platine einschalte ändert es sich ein bisschen. 
z.B. fehlen 3 pixel von den kästchen.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Code? Schaltplan?

Autor: Fäbu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmmm,
hast du eine selbsgeschriebene Initialisierung des LCD's oder hast du 
sie runtergeladen??? Kontrollier noch mal genaustens die Anschlüsse das 
LCD zum uC. Könnte sein das eine Datenleitung oder so vertauscht ist, 
oder die Software noch auf die richtigen I/O Pins eingestellt werden 
muss.

Autor: Dietmar E (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Meine Vermutung ist ein fehler in der initialisierung. Kanns
aber nicht bestimmt sagen.

Kein Sourceocode. Ist die lustige Ratestunde zum Testen unsere 
Gedankenübertragungs-Kräfte hiermit eröffnet?

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

powerupwait:
  rcall  delay5ms
  dec  temp3
  brne  powerupwait
  ldi  temp1,0b00000010  ; muss 2mal hintereinander gesendet
  out  LCD_PORT,temp1  ; werden zur Initialisierung
  rcall  lcd_enable  ; 1
  rcall  delay5ms
  rcall  lcd_enable  ; 2
  rcall  delay5ms
  ldi  temp1,0b00001100  ; n f einstellen
  out  LCD_PORT,temp1
  rcall  lcd_enable
  rcall  delay5ms
  rcall  delay5ms
  ldi  temp1,0b00110000  ; DCB einstellen
  rcall  lcd_command
  rcall  delay5ms

  ldi  temp1,0b00010000  ; display clear
  rcall  lcd_command
  ldi  temp1,0b01100000  ; inc und entrie shift
  rcall  lcd_command
  ret


Wenn ich die initialisierung so mache wie oben (nach datenblatt) dann 
kommt gar nix mehr. mit dem init aus dem tutorial kommen wie gesagt 
anstatt zeichen kästchen.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Dietmar E (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> powerupwait:
>  rcall  delay5ms

Wenn ich meinem EA-LCD mit 5ms kommen würde, bliebe es auch leer. Ich 
nehme 500ms, damit es immer zuverlässig startet (langsam startendes 
Power Supply).

Autor: Guido Körber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vo auf Masse ist der Fehler. Pack nen Poti rein und stell den Kontrast 
richtig ein.

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Markus schrieb:
> ich verwende kein poti. Vss V0 und R/W liegen auf masse.

Guido Körber schrieb:
> Pack nen Poti rein und stell den Kontrast richtig ein.

So ist es. V0 muss meist in der Gegend von 1 V liegen, deutlich
darüber wird alles weiß, deutlich darunter alles schwarz.

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei meinem letzten Versuch, die LCD Routinen aus dem GCC Tutorial zu 
benutzen hatte ich das gleiche Problem. Konnte die Zeichen nur sehen, 
wenn ich mit dem Poti den Kontrast definiert einstellte und den Pin 
nicht direkt auf Masse legte. Da aber mit einem älteren 
Assembler-Programm alles korrekt funktionierte (ohne Kontrastregelung), 
war die Hardware in Ordnung.

Im Endeffekt musste ich dann in lcd_init nach den Zeilen:
   // 4 Bit Modus aktivieren 
   LCD_PORT &= 0xF0;
   LCD_PORT |= 0x02;
   lcd_enable();

noch ein
   _delay_ms(1);

einfügen. Danach ging es mit dem C-Programm auch ohne Kontrastregelung. 
(Habe danach das zusätzliche Delay im Tutorial eingefügt.)

Kann also durchaus an deiner Initialisierung liegen.

Gerhard

Autor: Guido Körber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn die Spannung am Vo nicht stimmt ist es egal was man für Befehle an 
das Display schickt, es ist nichts zu sehen...

Grundzustand sollte sein, dass auf dem nicht initialisierten Display 
leicht graue Felder zu sehen sind, nicht satt schwarz.

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.