Forum: Projekte & Code Treiber für LCD-Displays mit KS0066-Controller


von __juergen (Gast)


Angehängte Dateien:

Lesenswert?

Ich war ja selber schon oft froh, dass ich hier in der Codesammlung 
hilfreiche Routinen für meine Vorhaben gefunden habe.
Das hatte mir eine Menge Zeit und Ärger erspart.

Es gibt ja etliche Punktmatrix-LCD-Displays mit KS0066-Controller zu 
kaufen. Der Controller wird als HD44780-kompatibel beschrieben. Das ist 
er auch, aber nur größtenteils. Gerade in der Initialisierung und in den 
Timings unterscheidet er sich jedoch. Somit klappt's mit den original 
HD44780-libs oft nicht.

Also hab ich auf Basis der lcd-lib von Peter Fleury eine KS0066-Library 
geschrieben, abgespeckt auf den ausschließlichen Betrieb im 
4-bit-I/O-Modus (was anderes mach ich nie).

Gebaut und getestet mit:

Compiler: AVR-GCC 4.3.2 mit gnu99-flag, AVR-LIBC 1.6.2
Entwicklungsplattform: Kontrollerlab unter Kanotix (Linux-Debian 5.0)
AVR: Atmega8, 8 MHz int. RC-Osz., Fuse-Bytes: Low:0xD4 High:0xE9
Display: Lehner Dabitros YL#202-17/A7 (2 x 20 Z), baugleich mit DEM20231 
(gibt's z. B. bei www.elpro.org)
Pin-Zuordnung: PortD, Pins PIND0 bis PIND6, wird in der 
lcd_ks0066_4bit_io.h gesetzt.

Library als ZIP angehängt, bestehend aus .c und .h-File mit einer 
Beispielanwendung in der main.c. Viel Spaß damit, vielleicht hilft's ja 
dem einen oder anderen weiter.
Rückmeldungen über erfolgreiche Anwendung, Fehler oder Verbesserungen 
gerne ... :)

Grüße Jürgen

von nils (Gast)


Lesenswert?

Hallo,

bei mir funktionierts nich wirklich :-(

Display ist ein nicht näher spezifiziertes, aber KS0066F drauf (2x24Z).
Habs erstmal mit nem 2313 (8MHz extern) probiert, aber mit dem sollte es 
doch auch gehen, oder?

Port hab ich geändert, aber Display zeigt nichts an (nur den Balken in 
der 1. Zeile, Spannung stimmt also)...

Die LEDs die ich testweise mit an den Port gehängt habe
 blinkern auch fleißig vor sich hin, also scheint der Code zu laufen...

Vielleicht eine Idee wodran es noch liegen könnte?

Gruß Nils

von nils (Gast)


Lesenswert?

peinlich, aber hat sich erledigt...
hatte die datenleitungen falsch verdrahtet...

Funktioniert jetzt einwandfrei!

gruß Nils

von __juergen (Gast)


Lesenswert?

Hi Nils

... na fein :)

Was ich noch beobachtet hab:

Der KS0066 mag's nicht wenn, man ihm nach Anlegen der Betriebsspannung 
die Initialisierungssequenz mehr als 1x verpasst.

Dann funktioniert nur die erste Zeile, solange bis die Betriebsspannung 
unterbrochen und das ganze frisch gestartet wird. Ist mir aufgefallen, 
als ich eine Anwendung weiterprogrammiert hab. Nach jedem neuen Flashen 
des mega8 ging imemr nur die 1. Zeile. Da muss ich den AUfbau jedes mal 
aus- und wieder einschalten.

von daniel44 (Gast)


Lesenswert?

bei mir klappt es leider nicht.
Ich habe ein YL # 162 -37 /E7 von Lehner Dabitros mit KS0066.
(Unter dem Aufkleber von Lehner steht : AMPIRE 162C-D REV.A)
und das habe ich nach Erwerb mit Deinem Code @ __juergen probiert,
leider ohne Erfolg.(Es waren nur dunkle Blöcke in Reihe 1 zu sehen.)
Dann aus Verzweiflung den Code aus dem AVR-GCC Tutorial getestet, der 
funktioniert ohne Probleme.

Trotzdem hab Dank für das Posten des Codes.

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.