Forum: Mikrocontroller und Digitale Elektronik AT89C51CC03UA ansteuern eines LCD


von Michael Thom (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!

Im Internet habe ich schon viel gesucht, dabei habe ich viele Programme 
gefunden und Beiträge. Doch diese helfen mir irgendwie nicht weiter! 
Deshalb habe ich mich hier angemeldet in der Hoffnung das man mir 
vielleicht helfen kann.

Ich möchte mit den AT89C51CC03 UA ein LCD (WD-C2704M-1HNN von Pollin) 
mittels den Ports 0 und 2 ansteuern im 8-bit modus. Habe auch ein 
Inizalisierungsdatei geschrieben laut Datenblatt. Doch das Display lässt 
sich nicht inizalisieren.
Alles programmiere ich mit C in Keil µVision3 und das board worauf der 
µC sitzt heißt AT89STK-06 Demo Board.

Würde mich über eine Hilfe sehr freuen, denn ich sitze schon seit 2 
Wochen daran!

Beinahe hätte ich es vergessen, mein LCD zeigt auf allen vier zeilen im 
hinteren drittel die dots voll ausgefüllt.

Meine LCD - Datei hänge ich an!

Grüße

Taz

von Michael Thom (Gast)


Lesenswert?

Hallo nochmal!

Glaube das ich den Fehler gefunden habe. Mein Port 0_1 und 0_2 zeigt 
laut Multimeter 2,8 - 3 Volt an, dann kann es zu keiner Datenübertragung 
kommen.
Doch warum der Port`s eine solche Spannung haben ist mir schleierhaft!

Taz

von Michael Thom (Gast)


Lesenswert?

Hi!

Da es im 8-bit Modus nicht klappen möchte, werde ich es mal im 4-bit 
Modus versuchen und hoffen das es besser klappt.

Falls jemanden dennoch vielleicht ein Fehler im Code auffällt wäre eine 
Antwort trotzdem schön.

Grüße

Taz

von Pieter (Gast)


Lesenswert?

moin moin ,

denk bei Port0 an externe Pullupwiderstände...

mfg
Pieter

von Michael Thom (Gast)


Lesenswert?

Moin Pieter,

oh ja glatt übersehen! doch wie schalte ich sie aus? Damit ich sie auf 0 
oder 5 Volt setzen kann! Ich besitze nur noch die beiden Ports 0 und 2; 
1 und 3 sind komplett ausgebucht.

Gruß

Taz

von Michael Thom (Gast)


Lesenswert?

Moin Pieter,

sorry! Externe pull-up`s anbringen? Habe ich das richtig verstanden!

mfg

Taz

von Peter D. (peda)


Lesenswert?

P0-Pins sind open drain, daher müssen externe pullups ran, wenns 
Ausgänge sein sollen.

Ausnahme, Du benutzt ihn als memory mapped IO (/WR+/RD über NAND an Pin 
E), das gehts am einfachsten (einfach nur MOVX aufs LCD).

Aber aufpassen, MOVX stretchen, sonst wird die E-Pulsbreite zu klein.


Peter

von Michael Thom (Gast)


Lesenswert?

Moin!

Nun dann werde ich es mit externen pullups umsetzen. So wie ich die 
Schaltung im Datenblatt sehe funktioniert es bei mir nicht. Werde die 
Pull-up`s einfach nur auf Vcc = 5V gelegt?

mfg

Taz

von Markus 8. (markus_8051)


Lesenswert?

@Peter: Daß das Timing beim MOVX nicht mit dem im Datenblatt von den 
LCDs angegebenen übereinstimmt, habe ich auch schon festgestellt. Nun, 
manche LCDs sind da recht schmerzfrei und funktionieren, andere wollen 
bei mir überhaupt nicht.
Was kann ich dagegen tun? Wie kann ich das Timing verbessern? Was meinst 
Du mit "MOVX stretchen"? Wie mache ich das?

Markus_8051

von Michael Thom (Gast)


Lesenswert?

Hi Peter,

für die Pull-up`s verwende ich 4,7 kOhm. Das geht auch gut, es ist nur 
so das sich Port 0_0 und 0_1 nicht schalten lassen. Die sind permanent 
auf 5V. Dafür gehten aber die anderen. Denke mal da ich nur vier Port`s 
brauch wird es wohl gehen.
Mich würde nur interessieren warum es bei 0_0 und 0_1 kein schalten per 
Sofware möglich ist?

Grüße

Taz

von Michael Thom (Gast)


Lesenswert?

Hallo,

so die beiden Ports P0 und P2 sind für mich eingerichtet!

P0_2 = RS
P0_3 = RW
P0_4 = E1
P0_5 = E2

P2_0 = DB0
....
P2_7 = DB7

Habe eine init_LCD geschrieben nach dem Datenblatt des HD44780! Als ich 
nun die Ports mit einem Multimeter nachgemessen habe flackert die 
Spannung von E1 von 0 V bis 2,7 V.
Was geht da schief?

Grüße

Taz

von Michael Thom (Gast)


Lesenswert?

Hi,

hatte einen Kabel dreher bei den Port0

P0_2 = E2
P0_3 = E1
P0_4 = RW
P0_5 = RS

War ein blöder Fehler!

mfg

Taz

von svenny1981 (Gast)


Lesenswert?

Hallo, Ich habe ein Problem mit dem demoboard at89stk-06.


Benutze dieses Board um meine Technikerarbeit umzusetzen und habe dieses 
von einem Kumpel bekommen. Es funktioniert soweit auch - hab auch den 
Soft- /Hardware User Guide usw. - kann aber nichts über die Pinbelegung 
der zwei Steckerleisten (j1 und j2) links und rechts vom Board finden. 
Dies ist ein großes Problem für mich da ich zu testzwecken ein LCD 
Display anschließen muss und nicht weiss auf welchen pins die einzelen 
ports usw. gehen.
Wenn mir jemand sagen könnt wie diese Pinbelegung ist oder vielleicht 
sogar einen Plan schicken könnt - wäre ich ihm sehr dankbar!


MfG
svenny1981

von Peter D. (peda)


Lesenswert?

svenny1981 wrote:
> Hallo, Ich habe ein Problem mit dem demoboard at89stk-06.
>
>
> Benutze dieses Board um meine Technikerarbeit umzusetzen und habe dieses
> von einem Kumpel bekommen. Es funktioniert soweit auch - hab auch den
> Soft- /Hardware User Guide usw. - kann aber nichts über die Pinbelegung
> der zwei Steckerleisten (j1 und j2) links und rechts vom Board finden.


Schaltplan Seite 17.


Peter

von Sven W. (svenny1981)


Lesenswert?

Merci, habs endlich durschaut mit dem Plan!!!

svenny

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.