Forum: Mikrocontroller und Digitale Elektronik LCD Display: Adressen doppelt vergeben?


von Bastian (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich experimentiere gerade mit einem Display von Electronic Assembly:
4x20 Zeichen, Typ: EA DIP204-4
Kontroller laut Datenblatt: KS0073

ich habe Probleme die Zeilen "richtig" anzusprechen.

Mein altes Display ist abgeraucht, damit hatte ich keine Probleme, es 
funktionierte mit allen vier Zeilen, die ich auch gezielt  ansprechen 
konnte.

Ich benutze den Code aus dem AVR-Tutorial: LCD

Das Problem war, das die zeilen nicht wie erwartet angesprochen wurden. 
Ich habe folgende Sachen festgestellt:

Die Zeilen scheinen nicht versetzt zu sein (1,3,2,4)
Ich habe pro Zeile 20 Zeichen, ab Zeichen 13 wiederholt sich die Anzeige 
in Zeile 2:
Ich adressiere mit temp= 0x80(DDRAM)+ 0x00(Zeile)+x(Zeichen) die erste 
Zeile, allerdings erscheinen alle zeichen ab Zeichen 13 in der zweiten 
zeile.
Zeile 2 kann ich ansprechen mit 0x80(DDRAM)+ 0x0C +x. - Der text 
erscheint zwar in Zeile 2, aber in der ersten Zeile, ab Zeichen 13 
erscheint der gleiche Text bis Zeilenende(13-20).
Das Gleiche wiederholt sich bei Zeile 3/4.
Zusätzlich ist mir aufgefallen, dass ich Zeile 3 doppelt ansprechen 
kann: temp= 0x80 + 0x28 +x von Zeile 3, Zeichen 1 beginnend
temp= 0x80 + 0x40 +x von Zeile 3, Zeichen 1 beginnend.

Kennt jemand das Phänomen? oder den Display-Typ/Kontroller?

Das Display ist nicht defekt, da ich einige Wochen vorher ein ähnliches 
Display bestellt hatte (es lag noch hier rum und ist ein anderer Typ: 
blau/weiß). Dieses habe ich dann ausgetauscht und es regiert genau so. 
Also scheint der Fehler bei mir zu liegen.
Datenblatt im Anhang.

P.S.: Im Datenblatt stehen die folgenden Adressen, die so nicht 
funktionieren:
1. Zeile $00 - $13
2. Zeile $20 - $33
1. Zeile $40 - $53
2. Zeile $60 - $73

von spess53 (Gast)


Lesenswert?

Hi

Wahrscheinlich falsch initialisiert. Hast du das RE-Bit für 
'Ext.Function Set' beachtet?

MfG Spess

von Hubert G. (hubertg)


Lesenswert?

Versuche es mal mit den Adressen von hier:
http://sprut.de/electronic/lcd/index.htm#4x20

von Bastian (Gast)


Lesenswert?

spess53 schrieb:
> Wahrscheinlich falsch initialisiert. Hast du das RE-Bit für
> 'Ext.Function Set' beachtet?

Danke für dden Hinweis, das habe ich nicht gemacht! Ich probiere es 
sofort aus.

von Andreas D. (dandy)


Lesenswert?

Hi
Versuchs mal mit diesen Adrtessen:

 Display 1.Zeile=$80
 Display 2.Zeile=$C0
 Display 3.Zeile=$94
 Display 4.Zeile=$D4

Gruß, Andy

von LCD-Geschädigter (Gast)


Lesenswert?

Habe mit dem LCD keine Probleme (mehr).
Die Startadressen der Zeilen stimmen.
Gibst du mehr als 20 Zeichen pro Zeile aus, so
geht der String direkt in der Nächsten Zeile weiter.

Aber:
Die Initialisierung im EA-Datenblatt ist etwas "dürftig"
beschrieben, hat bei mir auch nicht auf Anhieb funtioniert.
Aber mit dem Datenblatt des Herstellers des KS0073 kommt man
gut zurecht. Das Datenblatt findest du bei EA.

Das Ding ist eben nur "fast" kompatibel zu dem Standard.

von spess53 (Gast)


Lesenswert?

Hi

>Versuche es mal mit den Adressen von hier:
>http://sprut.de/electronic/lcd/index.htm#4x20

Da ist ein KS0073 Controller drauf, der mehr Befehle als der 44780 hat.

MfG Spess

von Bastian (Gast)


Lesenswert?

spess53 schrieb:
> Hast du das RE-Bit für
> 'Ext.Function Set' beachtet?

Habe jetzt das RE-Bit für die Extensions beachtet und es funktioniert 
wie vorgegeben!
Super-Tipp, danke.

Ich musste erst mal schauen, wie das mit dem RE-Bit funktionierte, aber 
dann hat es sofort funktioniert!

Einen schönen Tag noch...

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.