PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LCD Ansteuerung



Luke17
12.06.2005, 15:47
Hallo, also die Ansteuerung fürs LCD habe ich bereits,
aber mich würde mal interessieren wie die Ansteuerung funktioniert.

Also ich habe ja meine I/O Ports D0-D7 (1Byte)
Wenn ich jetzt ein ASCII-Zeichen darstellen will, dann brauche ich
ja 7 Bit dafür. Doch jetzt habe ich nur noch ein Bit frei.
Wird hier dann das Start-Stop und Paritäts-Bit gesendet?

mfg Lukas

uwegw
12.06.2005, 16:05
die meisten text-lcds können auch mit 4bit-modus betrieben werden. dann braucht man nur noch 4 daten- und 3 steuerleitungen...

izaseba
12.06.2005, 16:09
Hallo,
Ich weiß nicht so richtig, was Du meinst, aber mal eine Gegenfrage
ist Dein LCD HD44780 kompatibel?
wenn ja, dann brauchst Du noch ein Paar weitere Pins um das ganze zu steuern, und 8 Bits, weil Du darüber auch Befehle senden kannst usw.

Gruß Sebastian

lion1984
12.06.2005, 16:10
Hallo,

also es wär mal interressant welches LCD, aber ich nehm an normales HD44780 oder so :D.

die datenleitungen D0-D7 brauchst du nicht unbedingt, man kann LCD's mit 4 or 8 Bit datenleitung ansteuern, ich verwende zb 4 Bit. Da ersparst du dir paar leitungen :) aber eigentlich gibt es nur die datenleitung, zusätzlich ein enable, RS und ein Read/write Pin. Enable brauche ich wohl nicht zu erklären :D Read write bestimmt, ob vom Display gelesen wird oder beschrieben. UND mittels RS bestimmst du, ob kommando gesendet wird oder ein zeichen.

der unterschied zw. 4 und 8 Bit datenbus ist eigentlich nur, dass bei 8 Bit nur einmal eine fallende flanke benötigt wird, um diez eichen zu schicken. bei 4 bit 2 fallenden flanken. beim erstenmal die datenbits 7 - 3, beim zweitenmal 3-0.

hoffe das is das, was du gesucht hast,

übrigens, jetzt, wo ich alles geschrieben habe, habe ich auch dne link gefunden :(
hier der link. erklärung + Beispiel codes für PIC, vielleicht kannste was damit anfangen

Andun
12.06.2005, 18:17
Dann hast du den wohl vergessen :D

lion1984
12.06.2005, 18:25
mist, ja da hast du recht, denn hab ich vergessen :D

zuerst nicht gefunden, dann gefunden, dann vergessen, toll.
HIER IST ER:
http://www.fernando-heitor.de/pic/projekte/lcdsteuerung/lcdsteuerung.htm[/url]

Luke17
15.06.2005, 21:05
Hallo, erstmal danke für die antworten,
sorry hab erst heut wieder rein geschaut.

also es handelt sich um ein LCD mit einem HD 44780 Controller.
Es wird aber nicht an den PC angeschlossen. Ich werde es an
meine C-Control anschließen.
Wobei ich gleich eine weitere Frage habe:

Es handelt sich um ein LCD mit 4x27 Zeichen.
Im datenblatt steht der PIN E1 ist für die obere Displayhälfte
und der PIN E2 für die untere zuständig. Es sind also zwei
seperate controller.
Also wenn ich jetzt auf die obere Hälfte was schreiben will,
dann lege ich den PIN E1 auf "High" ????
Und wie soll das funktionieren wenn ich auf beide schreiben will?

mfg Lukas

izaseba
16.06.2005, 21:54
Also wenn ich jetzt auf die obere Hälfte was schreiben will,
dann lege ich den PIN E1 auf "High" ????
Und wie soll das funktionieren wenn ich auf beide schreiben will?

mfg Lukas

Hallo,
Ist es das LCD von Pollin ?
das stimmt nicht ganz, was Du schreibst.
Wenn Du auf dem LCD was schreiben willst legst Du den E1 nicht auf High sondern
legst Du dein Byte, oder Nibble, je nachdem ob Du 8 oder 4 bit Ansteuerung hast an die Datenleitungen, dann setzt Du ganz kurz den E1(E2) auf HIGH, (hab jetzt kein Datenblatt zu hand, ein paar nop's reichen schon aus) und dann wieder auf LOW.
Bei der fallenden Flanke werden die Daten übernommen.

Achso, ich hab das LCD von Pollin mit 4x27 Zeichen, und da ist E1 für Zeile 1 und 3 Zuständig, und E2 für 2 und 4
Lies Dir mal das Datenblatt zu Deinem LCD durch, dort steht es auch genau geschrieben,
mit den Zeiten und so, sonst guck mal im Internet oder hier in Forum nach.

Wenn was unklar ist, einfach mal fragen.

Gruß Sebastian

Luke17
18.06.2005, 11:40
Hallo sebastian,

ja stimmt, das lcd ist von pollin.

wie bereits geschrieben will ich das lcd an meine control station anschließen. hab 6 digitale ports dafür. habe deswegen keinen weiteren
für meinen E2 frei.
Ich hab soweit das lcd an meine ccontrol angeschlossen.

doch bei der intialisierung sind ja ganz genau pausen von 4,1 ms bis
zu 100µ sekunden zu machen! hab aber in meinem handbuch für die ccontrol nachgelesen dass sie bis zu +/- 20 ms toleranz hat!!!!
Also ich denke dass das der Fehler ist, das ich bissher noch kein zeichen auf meinem diplay sehe.
Wie könnte ich das beheben?

Meine C-Control programmiere ich gerade in Basic. Wenn ich es
in Assembler schreiben würd, dann müsste ich die pausen für die intialisierung hin bekommen, oder?

mfg Lukas

izaseba
19.06.2005, 10:34
hallo,

hab 6 digitale ports dafür

In Deinem erstem Post hast Du geschrieben, daß du D0 bi D7 angschlossen hast...
was nu? 4 bit oder 8 bit Anteuerung? das wäre ja schon wichtig zu wissen.

Hast du RW an Low (GND) angelötet? Der muß unbedingt an LOW liegen, damit man schreiben kann, also nicht irgendwie in der Luft hängen lassen!
Hast Du auch die Bedeutung von RS richtig verstanden?


doch bei der intialisierung sind ja ganz genau pausen von 4,1 ms bis
zu 100µ sekunden zu machen!

Stimmt nicht ganz. sie müssen nicht genau eingehalten werden, sondern sollten minsestens 15 ms 4,1ms und 100 us lang sein, und das ist schon ein Unterschied.

Was auch noch wichtig ist, wenn man 4 bit Ansteuerung benutzt, müssen die Nibbles in der richtigen Reihenfolge übertragen werden, zuerst das obere (bits 4-7), dann das untere (bits 0-3) und nicht andersherum!

Leider kenne ich mich mit Ccontrol nicht aus, aber du hast schon recht, mit Assembler kann man schon sehr genaues Timing machen, mit Basic müßte das auch gehen... :-k ,Du schreibst 20 ms toleranz #-o das ist schon Hammer... kann ich kaum glauben

Ich kann Dir noch zwei Links geben, die haben mir sehr geholfen mein LCD zu verstehen und am laufen zu bekommen, das erste bezieht sich zwar auf AVR, aber es ich gut beschrieben, wie so ein LCD funktioniert
hier (http://www.mikrocontroller.net/tutorial/lcd)
und hier (http://www.repairfaq.org/filipg/LINK/F_Tech_LCD2.html#TECHLCD_002)

Ich hoffe, daß ich helfen konnte,
Gruß Sebastian

Luke17
20.06.2005, 18:37
Hallo Sebastian,
nochmals vielen Dank für deine umfangreiche Antwort.
Hatt mir auf jedenfall weiter geholfen.
Ich werd mich dann mal ans tüfteln begeben ...

mfg Lukas