Forum: Mikrocontroller und Digitale Elektronik LCD ansteuern mit Atmega32


von Musti M. (saidov11)


Angehängte Dateien:

Lesenswert?

Hallo,

Ich habe ein Problem beim Ansteuern eines 16x4 Displays(Lcd 164A).
Angeschlossen ist das Display an den Port A vom ATMega32.
Die Pinbelegung ist:
RS  =PA4
R/W ist an Gnd angeschlossen .
E   =PA5
DB4 =PA0
DB5 =PA1
DB6 =PA2
DB7 =PA3
PA6 und PA7 sind offen.

Beim Einschalten wird in der ersten und dritten Zeile ein schwarzer
Balken angezeigt, die anderen beiden Zeilen sind leer.
wenn die das Programm starte, verschwinden zwar die beiden Balken.Sonst 
passiert nichts.

Den Quellcode und den Schaltplan habe ich als ZIP Datei angehängt.

Ich hoffe es kann mir einer von euch bei meinem Problem helfen.

Danke im Voraus

Gruß

von Kay I. (imperator)


Lesenswert?

Dass die Balken verschwinden ist schon mal gut ...
Hast Du die Kontrastspannung richtig eingestellt?
Manche LCDs wollen auch eine leicht negative Spannung ...

von Martin e. C. (eduardo)


Lesenswert?

Kay Imperator schrieb:
> Dass die Balken verschwinden ist schon mal gut ...

das bedeutet genau dass der LCD initialisiert ist also ist auf alle 
Fälle ok!

Kay Imperator schrieb:
> Hast Du die Kontrastspannung richtig eingestellt?
> Manche LCDs wollen auch eine leicht negative Spannung ...

hmmm...

wenn beim Einschalten in der ersten und dritten Zeile ein schwarzer
Balken angezeigt wird dann muss du der Kontrastspannung bzw. der 10K 
Poti (nehme ich mal an) etwas drehen bis du was siehst!
Negative Spannung ist hier ja nicht der Fall da du schon die " schwarzer 
Balken" siehst

von Musti M. (saidov11)


Lesenswert?

Hi,
danke für die schnelle Antwort.
ja ich drehe an den Poti wie ich will, passiert aber leider nicht.
Ich muss sagen. Der lcd hat schon mal was gezeigt. Aber seit ich mit 
angeschlossen LCD geflasht habe, zeigt er nichts mehr.

von Martin e. C. (eduardo)


Lesenswert?

was für Board hast du? was für Proger hast du?
nimmt mal der Proger Mal raus und guck was passiert? manchmal zieht er 
Strom  vom Board und passieren so seltsame Sachen am LCD "das habe ich 
hier im Forum gelesen"

von Kay I. (imperator)


Lesenswert?

Kann auch ein Timing-Problem sein,


nach dem Hochfahren der Spannung musst Du eventuell eine Weile Warten, 
bis die Kommandos richtig verarbeitet werden können.

Nutzt Du die Busy-Signalisierung?

Nochmals zum Kontrast:
Ich hatte es schon, dass vor Initialisierung schwarze Balken da waren, 
nach Init. hat der Kontrast nicht mehr ausgereicht, um alle 
Display-Segmente zu versorgen -> Kontrast wird dann schwächer.

von Musti M. (saidov11)


Lesenswert?

Der Programmer ist immer raus, wenn der LCD angeschlossen ist. Auch mit 
warten bringt das nicht.

Der LCD hat schon mal was gezeigt, allerdings zeigt er alles in der 
Zeile eins Pos eins.

von Martin e. C. (eduardo)


Lesenswert?

Hallo Musti,

probiert mal mit folgendes LCD Code von Peter Dannegger:

www.mikrocontroller.net/topic/174303#1672233

das ist der einzige Code wo ich oder besser gesagt wo BEI MIR auf Anhieb 
funktioniert hat mit andere Code mußte ich hier und dort apassen, da 
gucken und und und, das beste an den Code ist dass man alle Pins 
anpassen kann (Datei main.h)!

Gruß

von Musti M. (saidov11)


Lesenswert?

Hallo Martin,

danke für das Link. Das werde ich mal probieren.

Gruß

von Musti M. (saidov11)


Lesenswert?

Leider ist das Verhalten immer nich das gleiche.

Eine Frage

bei mir ist die R/W an Gnd angeschlossen, Gnd entspricht Pin 8 an Port 
A.
leider kann ich das nicht in meinen Programm anpassen, weil in io.h nur 
7 Pins hier gibt.
kann jemand was dazu sagen?

danke

von Hc Z. (mizch)


Lesenswert?

Musti Maroane schrieb:
> bei mir ist die R/W an Gnd angeschlossen, Gnd entspricht Pin 8 an Port
> A.

Kannst Du das genauer ausführen?  Vielleicht gibt das nur für mich 
keinen Sinn, aber

- R/W kann entweder an GND angeschlossen sein oder an einem Port, und

- PIN 8 des Mega32 ist nicht Port A, und wenn BIT gemeint ist, gibt es 8 
nicht.

von Musti M. (saidov11)


Lesenswert?

Ah Sorry.

Also: Der LCD ist an einen 10 Poliger Stecker angeschlossen. Pin 1 bis 7 
(10 Polig) entspricht PA0 bis PA7 von Atmega32. Gnd ist Pin 9 und Vcc 
ist Pin 10(10 Polig).
Die R/W ist an Gnd angeschlossen also an Pin 9 von (10 Polig Stecker).
Das Programm will aber wissen, wo der R/W angeschlossen ist.
welchen Wert im Programm soll ich R/W geben?
Z.B
RS  =PA4
E   =PA5

R/w = ?

Gruß

von Hc Z. (mizch)


Lesenswert?

Wenn das Programm wissen will, wo R/W liegt, musst Du R/W entweder an 
ein passendes Port anschließen oder ein anderes Programm verwenden. 
Eine andere Wahl hast Du nicht.

Hintergrund: Ein LCD-Treiber-Programm kann darauf verzichten, vom LCD zu 
lesen.  Es ersetzt dann die Busy-Abfrage (Abfrage, ob der Controller auf 
dem LCD bereit ist) durch vergleichsweise üppig bemessene Zeitschleifen 
und R/W kann dauerhaft auf GND bleiben.  Dann aber wird der R/W-Pin 
nirgends im Programm auftauchen.  Tut er es doch, hast  den Typ von 
Programm erwischt, der Busy abfrägt und dann braucht das Programm R/W. 
Kannst Du ihn nicht anliefern, musst Du ein anders aufgebautes Programm 
verwenden.

von Musti M. (saidov11)


Lesenswert?

OK.

Danke

von uwi (Gast)


Lesenswert?

Musti M. schrieb:
> Die R/W ist an Gnd angeschlossen also an Pin 9 von (10 Polig Stecker).
> Das Programm will aber wissen, wo der R/W angeschlossen ist.
> welchen Wert im Programm soll ich R/W geben?

hallo,
hatte mal ein ähnliches problem mit einem 4-zeilen-LCD unter bascom.
es ging und ging und ging nicht, bis ich R/W statt an masse über einen 
1K-widerstand an +5V angeschlossen habe.

von Hc Z. (mizch)


Lesenswert?

Dann hatte das LCD einen anderen Controller oder es war schlicht und 
einfach kaputt.  Wenn R/W=1 ist, kann nämlich nichts in den Controller 
geschrieben werden.

von uwi (Gast)


Lesenswert?

Hc Zimmerer schrieb:
> Dann hatte das LCD einen anderen Controller oder es war schlicht und
> einfach kaputt.  Wenn R/W=1 ist, kann nämlich nichts in den Controller
> geschrieben werden.

würde mich jetzt mal näher interessieren.
habe das display leider eingebaut und fest verlötet, dass ich im moment 
nicht ohne weiteres nachschauen kann, welchen controller es hat

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.