Moin euch allen!
Mit einem At89C51CC03U möchte ich ein LCD ansteuern im 8-Bit Modus. Die
Anschlüsse zum Controller sind Port 0 und Port 2; wobei ich Port 0 nur
für die Steuerbefehle benutze.
Ich habe das LCD-Display von Pollin für 5,-€, es hat den HD44780
Controller.
Nun zu meinen Problem:
Wenn ich mein µC und LCD anschalte werden auf den Display die erste und
dritte Zeile angezeigt! Nach den ich meine init_LCD abfrage blinkt das
Display nur noch. Das sieht reichlich komisch aus, da nur das hintere
drittel alle 4 Zeilen blinken.
Und ich weis nicht mehr weiter, bitte kann mir jemand helfen!?
Ich programmier mit µVison3 und in C
MFG
Michael
Schreib' mal eine ganz einfache Initialisierung ohne das Busy-Flag
abzufragen. Also einfach die Ini-Befehle mit den entsprechenden Warte-
zeiten dazwischen.
Ich sehe nicht, wie du den RS Pin vom LCD bedienst.
Lies dir doch mal im AVR-Tutorial den Abschnitt über
das LCD durch. Das ist zwar Assembler und eine 4-Bit
Ansteuerung, aber die Prinzipien der Ansteuerung
sind dieselben (uns soviel Assembler um zu verstehen
was da abgeht, kannst du auch).
http://www.mikrocontroller.net/articles/AVR-Tutorial:_LCD
Nee, funzt auch nicht so richtig! Das LCD zeigt mir nach wie vor elf
felder von rechts nach links in allen vier zeilen an!
Bin für jede Hilfe dankbar!
MFG
Michael
Also in meinem Programm (assembler) lese ich:
R/W auf 0 (nur lesen)
RS auf 0 (Befehle)
0x38 ausgeben (zwei Zeilen,8-Bit-Bus)
0xo6 ausgeben (Inkrement bei festem Display)
0x0C ausgeben (Display an, Cursor aus, Blinken aus)
0x01 3 mal ausgeben (sonst werden die ersten Zeichen verschluckt)
und natürlich zwischendurch warten.
Das müsste eigentlich funktionieren.
Die folgende Anschlußbelegung am LCD ist aber richtig, oder!? Nicht das
da der Fehler liegen könnte.
Pin Funktion
1 GND
2 V_dd
3 V_0
4 RS
5 R/W
6 E1
7 E2
8 D0
...
15 D7
Grüße
Michael
LCD's haben normalerweise eine Standardbelegung.
Lediglich die Leserichtung der Pins (ob 1 jetzt links
oder rechts ist) variiert.
Du musst E und RS richtig bedienen! (Von RS war in deinem
Code Schnipsel überhaupt nichts zu sehen)
Die Wartezyklen ruhig am Anfang länger als gefordert
wählen. Kürzer machen kann man sie immer noch.
Wenn du zulange wartest bis zur nächsten Aktion
ist das OK. Wenn du aber zu kurz wartest, kommt der
HD44780 nicht hinterher.
Und studier noch mal die Initsequenz von Jack (14:48).
Seine Initialisierungsbytes unterschieden sich dramatisch
von deinen. Insbesondere schickst du am Anfang 3 mal ein
0x30, was soviel wie '4-Bit Modus' heist.
Michael Thom wrote:
> RS, RW und E2 habe ich auf 0 gesetzt!
Wen Du E1 und E2 hast, dann sind das 2 Controller, d.h. Du must beide
initialisieren.
Peter
Wie kann man das am besten lösen. Erst einen dann den anderen oder beide
gleichzeitig! Wobei ich mir letzteres nicht vorstellen kann, da es
irgendwie zum Fehler kommen müsste.
Michael
Moin,
nun habe ich eine einfache init geschrieben und es läuft immer noch
nicht wie geplant. Darum habe ich eine frage (bevor ich der Software die
Schuld geben), wenn das LCD mit Strom versorgt wird ist was auf der
Anzeigen zu sehen oder nicht? Und wenn ja, was sollte ich sehen?
Ich habe es an ein PC-Netzteil angeschlossen:
erster Stecker
ROT = 5V
Schwarz = GND
zweiter Stecker
Rot = V_0 //Kontrast Spannung
Schwarz = GND
mfg
Michael
@Michael Thom
>nun habe ich eine einfache init geschrieben und es läuft immer noch>nicht wie geplant. Darum habe ich eine frage (bevor ich der Software die>Schuld geben), wenn das LCD mit Strom versorgt wird ist was auf der>Anzeigen zu sehen oder nicht? Und wenn ja, was sollte ich sehen?>Ich habe es an ein PC-Netzteil angeschlossen:
Das macht man nicht. Wenn du einen Kurzschluss baust, fackelt dir die
Platine ab. Das Netzteil macht locker 20A! Nimm ein kleines
Steckernetzteil (+ 7805) oder Batterien. Ausserdem spucken PC-Netzteile
mamchmal arg HF-Störungen, das kann auch ins Auge gehen.
>ROT = 5V>Schwarz = GND
Geht, aber siehe oben.
>Rot = V_0 //Kontrast Spannung>Schwarz = GND
Die Kontrastspannung muss nahe 0V sein (1,5..0V). Bei 5V am
Kontrastspannugspin siehst du gar nichts.
MfG
Falk
> wenn das LCD mit Strom versorgt wird
und sonst nichts angeschlossen ist.
Normalerweise zeigt das LCD dann in der ersten
(und bei dir in der dritten) Zeile einen Balken
an. Damit kann man dann schon mal den Kontrast des
Displays einstellen:
Die erste Zeile ist dunkel (alle Pixel an), in der 2.ten
Zeile sollen die Pixel noch nicht sichtbar sein.
Hi Falk,
es kommen am Roten Anschluß nur 5V mit ungefähr 3,3 mA raus. Da kann
nichts passieren, habe es vorher natürlich nachgemessen.
Danke Karl heinz Buchegger, dann ist was nicht in ordnung mit mein LCD!
Und ich wundere mich warum nichts geht hier.
Mir werden alle vier Zeilen angezeigt.
mfg
Michael
@Michael Thom
>es kommen am Roten Anschluß nur 5V mit ungefähr 3,3 mA raus. Da kann>nichts passieren, habe es vorher natürlich nachgemessen.
Schon klar, es fliesst normalerweise nur soviel Strom wie die ICs
brauchen. Aber wenn du beim Basteln mal nen Kurzschluss machst kann das
böse ins Auge gehen bei 20A und mehr die dann fliessen.
>Mir werden alle vier Zeilen angezeigt.
Was heisst das? Schwarze Balken?
MfG
Falk
Die Kontrastspannung ist meist nahe 0V oder ein klein
wenig darüber. Daher das Poti: um das einstellen zu können´.
Es gibt allerdings auch LCD die eine negative Kontrastspannung
brauchen.
@Michael Thom
>es werden mir alle vier Zeile angezeigt, worin alle dots an sind!
Na das ist ja schon mal etwas. D.H. das LCD hat Saft und auch die
richtige Kontrastspannung. Fehlt "nur" noch die Initialisierung. Siehe
Tutorial.
MFG
Falk
> Na das ist ja schon mal etwas. D.H. das LCD hat Saft und auch die> richtige Kontrastspannung.
Alle 4 Zeilen?
Es sollten doch nur 2 Zeilen mit Balken sein.
Die anderen beiden sind nicht sichtbar.
Wenn er alle 4 Zeilen deutlich als Balken sieht,
kann doch die Kontrastspannung nicht stimmen.
Also ich werde gleich zur Probe das LCD am LPT Port anklemmen und mit
der Pollin Software testen. Werde aber nur die Steuer.- und
Datenleiungen anklemmen.
Meine init hänge ich mal an, vielleicht übersehe ich nur einen simplen
Fehler drin.
Michael
PS: Mit dieser init geht dann alle dots aus! Doch mehr passiert nicht.
Taja,
da es sich nicht mit der Software von Pollin inizalisieren lässt. Bleibt
der Traurige Schluß da, es ist geschrottet von mir.
Danke an Alle die mir geholfen haben und mich unterstützt haben !!!
Werde ein neues ordern und vorsichtiger sein.
MfG
Michael
Moinsen!!!
Für jeden der mal Testen möchte mit einem AT89C51CC03 U eine Wintek
WD-C2704M-1HNN an zu steuern!
Ist nur eine Testversion ob das Display klappt!
MfG
Michael