Forum: Mikrocontroller und Digitale Elektronik Falsche Zeichen am Display KS0066 Controller


von Wayne I. (mustang)


Lesenswert?

Hallo zusammen,

ich stehe seit Tagen vor einem größeren Problem. Und zwar versuche ich 
Zeichen auf einem Winstone WH2004A Display (4 Zeilen a 20 Zeichen) 
auszugeben. Im Datenblatt ist beschrieben, dass der verwendete 
Controller ein KS0066 ist. Durch die Suchfunktion bin ich leider auf 
kein Ergebnis gestoßen, deshalb wende ich mich erwartungsvoll an euch.

Nach anlegen der Betriebsspanung sind Zeile 1 und 3 des Display zunächst 
von der Farbe her leicht dunkler, das verschwindet nach der 
Initialisierung. Ich kann das Display initialisieren, komplett löschen, 
den Cursor blinken lassen und die Position des Cursors sowie die 
Position im RAM festlegen wo ich hinschreiben möchte.

Schreibe ich allerdings Daten zur Ausgabe an das Display, so erscheinen 
mir auf dem Display nur irgendwelche wilden Zeichen, die absolut nichts 
mit den eigentlichen Buchstaben zu tun haben.

gebe ich z.B. send_data(0x41);
              send_data(0x42);

aus, so erwarte ich AB als Anzeige auf dem Display.
Als Ergebnis erhalte ich jedoch die ersten beiden Anzeigefelder mit 
irgend welchen undefinierbaren Zeichen gefüllt.

Hat irgendjemand eine Idee woran das liegen könnte? mache ich bei der 
Initialisierung möglicherweise etwas falsch.

Gruß und Dank


P.S. Das Display ist Funktionstüchtig

von Spess53 (Gast)


Lesenswert?

Hi

>Als Ergebnis erhalte ich jedoch die ersten beiden Anzeigefelder mit
>irgend welchen undefinierbaren Zeichen gefüllt.

Und welche?

MfG Spess

von Wayne I. (mustang)


Lesenswert?

Diese Zeichen gibt es leider nicht auf der Tastatur, selbst im ASCII 
Zeichensatz habe ich sie nicht gefunden. Sind einfach innerhalb eines 
Zeichenfeldes wild durcheinandergewürfelte Pixel zu sehen.

Ach was mir in der Zwichenzeit noch eingefalle ist.
Ansteuerung erfolgt über ein komplettes Byte.

von Karl H. (kbuchegg)


Lesenswert?

Dirk K. schrieb:
> Diese Zeichen gibt es leider nicht auf der Tastatur, selbst im ASCII
> Zeichensatz habe ich sie nicht gefunden. Sind einfach innerhalb eines
> Zeichenfeldes wild durcheinandergewürfelte Pixel zu sehen.

Hier findest zb einen Zeichensatz
http://www.lcd-module.de/pdf/doma/dips082.pdf

Man beachte die Japanischen Zeichen mit Codes größer 127.
Ist da deine Anzeige dabei?

(Worauf es hinausgeht: Eventuell hast du ein paar Datenleitungen 
vertauscht. Wenn du die richtigen erwischt, dann geht sich das mit der 
Initialisierung immer noch aus. Nur die Zeichencodes sind dann 
durcheinander)

von Wayne I. (mustang)


Lesenswert?

Nein,
die Zeichen, welche auf meinem Display zu sehen sind, sind auch in 
dieser Tabelle nicht dabei.

Datenleitungen vertauscht kann ich auch ausschließen, da die .exe Datei 
eines Kollegen mit selber Kabelbelegung fehlerfrei läuft. Nur leider ist 
dazu der C Code nicht mehr vorhanden, somit muss das ganze neu 
geschrieben werden und ich stehe gerade vor diesem Problem.

von Karl H. (kbuchegg)


Lesenswert?

Dirk K. schrieb:
> Nein,
> die Zeichen, welche auf meinem Display zu sehen sind, sind auch in
> dieser Tabelle nicht dabei.

Hmm.
Dann können das dann aber eigentlich nur noch die vordersten 8 
benutzerdefinierten Zeichen sein, die du da siehst. Denn was anderes als 
diese im Datenblatt angegebenen Zeichen + die 8 benutzerdefinierten 
Zeichen kann das Display nicht anzeigen.

Was mich zur Vermutung bringt, dass dir irgendwo das High-Nibble bei der 
Ausgabe verloren geht und du anstelle von 0x41 irrtümlich 0x01 zum LCD 
schickst. Genauso bei 0x51, das High-Nibble geht verloren und das LCD 
kriegt den Auftrag wiederrum 0x01 anzuzeigen.

Klappere deinen Code mal in diese Richtung ab.

von Wayne I. (mustang)


Lesenswert?

Aber warum kann ich dann einen Befehl zur Intialisierung oder 
Adressierung z.b. 0x80 problemlos senden? Und der Cursor steht danach 
auch an dieser Position.
Ich verwende die selbe routine zum senden der Befehle als auch zum 
senden der Daten. Allerdings das RS bei der Datenübermittlung auf 1 
gesetzt.
Daher kann ich das eigentlich auch fast ausschließen.

Ich weiß, ist furchtbar aber ich kann das Datenblatt mittlerweile fast 
auswendig und finde einfach nichts mehr wo ich den Fehler noch suchen 
kann.

von Stefan B. (stefan) Benutzerseite


Lesenswert?


von Wayne I. (mustang)


Lesenswert?

Da könnte eines dabei sein,
das muss ich mir morgen nochmal genau anschauen. Habe das Display leider 
gerade nicht hier.

Aber vielen Dank schon mal für eure Hilfe!!

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Winstone oder Winstar (LCD Hersteller in Taiwan)?

von holger (Gast)


Lesenswert?

>Winstone oder Winstar (LCD Hersteller in Taiwan)?

Das Teil ist von Winstar.

Und wer so einen Schwachsinn macht hat sowieso keine Ahnung
von dem was er tut.

>send_data(0x41);
>send_data(0x42);

send_data('A');
send_data('B');

Müsste eigentlich auch gehen;)

Da aber niemand weiss was send_data() wirklich
macht kann man sich weitere Vermutungen einfach sparen.

von Karl H. (kbuchegg)


Lesenswert?

Dirk K. schrieb:

> Ich weiß, ist furchtbar aber ich kann das Datenblatt mittlerweile fast
> auswendig und finde einfach nichts mehr wo ich den Fehler noch suchen
> kann.

Nun, wir auch nicht.

Du könntest aber mal einen Anfang machen und den Code herzeigen. Dann 
müsste man nicht raten.

von Klaus W. (mfgkw)


Lesenswert?

Jetzt stell dich nicht an, du wirst den Fehler doch bestimmt auch so 
finden!

von Wayne I. (mustang)


Lesenswert?

> Jetzt stell dich nicht an, du wirst den Fehler doch bestimmt auch so
>
> finden!

Hab ich ;-)

Ich danke allen für die mehr oder weniger Geistreichen Beiträge zu dem 
Thema!

von Karl H. (kbuchegg)


Lesenswert?

Dirk K. schrieb:
>> Jetzt stell dich nicht an, du wirst den Fehler doch bestimmt auch so
>>
>> finden!
>
> Hab ich ;-)

Und was wars?

von Filo (Gast)


Lesenswert?

tja... das selbe prob hab ich in etwa auch und es wäre nett gewesen wenn 
jemand der hilfe sucht und sie dann findet die lösung mit anderen teilt 
;)

lg

von Karl H. (kbuchegg)


Lesenswert?

Filo schrieb:
> tja... das selbe prob hab ich in etwa auch und es wäre nett gewesen wenn
> jemand der hilfe sucht und sie dann findet die lösung mit anderen teilt
> ;)
>

Das war mit einiger Sicherheit irgend ein hausgemachter Blödsinn in 
seinem Code, den er nicht herzeigen will. Ich schätze mal du wirst ein 
komplett anderes Problem haben.

Aber ohne Code und/oder Verschaltung herzuzeigen kann man sowieso nichts 
genaueres sagen.

von Filo (Gast)


Lesenswert?

ich hab nen neuen thread aufgemacht, vlt kannst mir ja helfen...
[[Beitrag "ks0066 mit m8535 und bascom"]]

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.