PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LCD



Redsox
23.08.2005, 14:29
Hallo,

ich habe versucht ein LCD Display 16x2
an mein STK 500 anzuschliessen:

Ich bin nach folgender Beschreibung vorgegangen:

http://www.mikrocontroller.net/tutorial/lcd

es sieht aber irgendwie so aus als bekäme das
Display überhaupt keinen Strom.
Das Display hängt an Port A!

Weiss net wirklich was ich machen soll...

kann mir da jemand weiterhelfen?
Kann es sein das VTG keinen Strom liefert??

cavegn
23.08.2005, 14:43
hi

wenn du 5v an pin1, gnd an pin2 und gnd an pin3 legst, solltest du 'schwarze vierecke' auf dem display sehen - funktioniert es denn soweit?

cu

chris

Redsox
23.08.2005, 14:45
ne, da passiert rein garnichts!! muss 5V nicht an Pin2??

Redsox
23.08.2005, 14:47
Ok jetzt habe ich im oberen Bereich schwarz Vierecke!


Jetzt funktioniert es, habe das Ground an Pin 3 vergessen!

cavegn
23.08.2005, 21:06
hi

du musst nicht unbedingt gnd anlegen - an pin 3 kommt ja einfach eine 'kontrastspannung' - bei gnd hast du maximalen kontrast, bei erhöhung der spannung wird dieser kleiner.
mit einem potti könntest du den kontrast frei einstellen

cu

chris

Redsox
28.08.2005, 19:53
eine Frage noch,

wie kann ich die untere und wie die obere
Zeile ansprechen???

SprinterSB
28.08.2005, 20:16
Das geht üblicherweise über die Cursorposition.
Oben links von 0..15 (doe sichtbaren) und die zweite Zeile ab 40 = 0x28

Lektor
10.10.2005, 11:10
ich mache hier mal weiter, da ich keinen Beitrag gefunden habe, der treffender mein Problem schildert. Also ich habe auch das Mikrocontroller.net Tutorial zur LCD Ansteuerung über Assembler ausprobiert und ich komme auch nicht weiter.
Ich habe alles so angeschlossen wie es im Tutorial stand und ich sehe auf dem Display nur schwarze Rechtecke. Das Programm verändert nichts. Nicht einmal das Löschen des Displays klappt.
Ich habe auch ein Mega8 mit dem internen 4MHz Takt laufen. Ich weiss nicht, welcher Takt für dieses Programm vorgesehen ist.

delay5ms: ;5ms Pause
ldi temp1, $21
WGLOOP0: ldi temp2, $C9
WGLOOP1: dec temp2
brne WGLOOP1
dec temp1
brne WGLOOP0
ret

Das ist die Schleife für eine 5ms Warteschleife. Ich habe mal versucht die Zeit auszurechnen welche dafür benötigt wird. ( $c9= 201 $21=33
ca. (33+33/2)*(201+201/2)=50*300=15000 Takte um diese Schleife zu bearbeiten.
bei 4MHz entspricht das in etwa 15000/8000000=3,75ms. Selbst wenn ich auf 1000000MHz stelle komme ich auf 15ms, aber das Programm läuft trotzdem nicht.

Kann vielleicht jemand den kompletten Assembler Code für den Mega8 mit 8MHz posten. Ich weiss nicht, wie bei dem komplexen Programm den Fehler suchen soll.

http://www.mikrocontroller.net/tutorial/lcd

Lektor
10.10.2005, 22:04
habe jetzt noch die LCD Routine von Skyrider ausprobiert, aber es hat auch nicht geklappt. Habe natürlich die Ports und den Takt angepasst.

kann mir jemand beschreiben, wie sich ein heiles LCD verhält? Was sieht man wenn man eine Spannung anlegt etc. Wie kann man feststellen ob ein LCD defekt ist? Also nachdem ich alles so angeschlossen habe, wie es auch im mikrocontroller.net Tutorium steht, zeigen sich vier Zeilen schwarzer Rechtecke. Habe gedacht, dass wenn ich Pin 16 (Reset) auf GND setze, alle Rechtecke verschwinden, aber es tut sich nichts.

Habt ihr Vorschläge, wie ich das LCD Testen kann?

skyrider
11.10.2005, 16:48
Hi Lektor,

poste hier doch mal deine Anschlußbelegung.
Wenn das Display richtig angeschlossen ist, sollte bei erfolgreicher Initialisierung das Display keine Balken mehr angezeigt werden. Ich schätze das Display wird nicht angesteuert. Benutzt du den R/W Anschluß oder hast du den auf Masse gelegt ?
Welchen PIN 16 (Reset) meinst du ?

Viele Grüße
Skyrider

Lektor
11.10.2005, 17:50
habe gerade ins Elektronik-Forum geschrieben. Mir ist aufgefallen, dass auf den Datenpins teilweise Spannungen liegen. Habe das LCD minimalbeschaltet, also Spannungsversorgung und Kontrast. RS, R/W und E auf GND gelegt, messe aber immernoch 5V an D0,D1,D4 und D6. Denke das das nicht korrekt ist. Fragt sich nur woran es liegt. Ich habe lediglich eine Adapterplatine angefertigt, damit ich das 2er Raster auf mein 2,54 Raster Steckbrett bekomme. Da ist eigentlich kein Fehler. Bin schon am überlegen, ob ich mir nicht für 21€ ein neues kaufe, wäre aber schon schmerzhaft.

AVR-Ede
13.10.2005, 19:39
Hallo, habe durch Zufall euer Problem mit dem LCD gelesen. Die Ansteuerung von einem LCD Display mit Standart Controller ( HD44780 oder Protokollgleiche ) ist eigentlich recht zeitkritisch. Die Initialisierung mit den Sequenzen 38h, 0Ch, 01h, 06h erfordert eine Pausenzeit danach von ca. 60 mSekunden wenn nicht mit dem Ready Signal des LCD Controllers gearbeitet wird, die Reihenfolge der Ansteuerung der Steuerleitungen RS, R/W und E ist auch von Bedeutung, also nicht nur auf Masse oder Plus legen. R/W legt die Richtung der Daten fest Daten aus dem Display lesen oder in den Speicher des Display schreiben, Signal E für eine bestimmte Zeit auf H-Pegel, dann Daten auf den Bus D0 bis D7 und die fallende Flanke auf Leitung E übernimmt die Daten. Wichtig ist noch der Pegel auf der Leitung RS, er bestimmt wo die Daten hin sollen RS = H dann Daten ins Display ( was mann sieht) RS auf L dann sind die Daten ein Steuerbyte ( z. B. die Anfangsinitialisierung oder die Stelle im Display, wo das Zeichen erschienen soll ). Um einen Text darzustellen ist eine Initialisierung mit den Sequenzen wie oben durchzuführen RS auf L ! dann warten, dann RS auf L und den Ausgabeplatz auf die Datenleitung und dann RS auf H und die darzustellenden Zeichen als ASCII auf die Datenleitungen.

Lektor
14.10.2005, 00:06
ja AVR-Ede. Das war bekannt. Das Problem war (ist) dass zwei LCD Routinen die ich aus guten Quellen habe ( mikrocontroller.net, roboternetz) einfach nicht funktionieren. Da diese Routinen bestimmt funktionieren suche ich den Fehler in meiner Hardware. Da ich nicht weiss, wie man das LCD messtechnisch kontrollieren kann und auch Softwaremäßig nichts funktioniert, habe ich dankbar den Link von Marco78 angenommen, über welchen ein Programm erhältlich ist, mit dem man ein LCD über die parallele Schnittstelle ansprechen kann. Werde mir am Sonntag eine Adapterplatine fertig machen, damit ich endlich eine flexible Verdrahtungsmöglichkeit mit meiner Steckplatine habe. Normalerweise habe ich keine Probleme damit einfach ein Bauteil extra zu bestellen, aber für einen Test sind mir 21€ doch zu teuer. Da warte ich erstmal das nächste Testergebnis ab. Sobald ich mehr weiss werde ich ein Feedback tippen.

Torsten_G
14.10.2005, 23:21
Hallo Lektor,

ich vermute mal, Du betreibst das Display im 4-Bit-Modus. Hast Du die vier nicht verwendeten Datenbits auf GND gelegt?

Grüße

Torsten

AVR-Ede
21.10.2005, 14:34
Hallo Lektor, ich habe das Display, was ich habe, an Spannung gehängt und mal die Datenleitungen gemessen, da ist wirklich eine Spannung von 5 V an einigen Datenleitungen zu messen, und wenn ich mit dem Finger die Steuereingänge R/S und E berühre verändern sich die Spannungen an den Datenleitungen. Das Display ist definitiv in Ordnung, da ich es an einem PIC 16F84 betreibe.

atlantikhawk
21.10.2005, 18:45
Also wenn ich auch mal was sagen dürfte mussich mich mal thorsten anschliessen...hast du evtl. ( ohne zu wissen ) die Lcd mit 4bit und nicht den 8 bit angesteuert????? bei 4 bi müsstest du die anderen auf Masse legen ( da bei einigen treiber-hd´s von hitachi high - aktiv sind bei nicht connect....*grübel* :-k :-k

sonst kann das doch net soooo schwer sein... :-#

gruss

Lektor
22.10.2005, 19:38
oh, toll das sich hier was getan hat. Ja die übrigen Datenleitungen habe ich GND gelegt; so stand es auch in dem Mikrocontroller.net Tutorial.
Kann es vielleicht am internen Quarz liegen, dass der zu ungenau ist? Dürfte wohl nicht soviel ausmachen wenn er bischen langsamer oder schneller schwingt, aber vielleicht doch.
Ich werde mir noch ein zweites Display zulegen, da ich für dieses schon eine Anwendung habe und dann sowieso mein Lager wieder aufstocken müßte.
Aber ist gut zu wissen, dass bei heilen LCD's auch was an den Datenleitungen herauskommt. Habe das schon für einen Fehler gehalten.
Ich war ja so frei und habe EA angeschrieben und die meinten das sich ein Defekt auch durch über eine erhöhte Stromaufnahme zeigt. Es könnte ein Strom von 1A fliessen. Naja bei mir sind es 1,5mA ohne Kontrastspannung und 3mA mit. Ist noch völlig in Ordnung.
Bin ich froh wenn ich den Fehler erstmal gefunden habe. So habe jetzt eigentlich keine Zeit, aber die Zeit nehme ich mir jetzt nochmal und probiere es nochmal aus. Nach ein paar Tagen Pause ist die Motivation wieder da.

Lektor
22.10.2005, 20:38
hmmm, die Motivation ist wieder weg. Habe eben alles aufgebaut, mit externen Quarz getestet, uC ausgetauscht.
hat vielleicht jemand ne gute Reichelt Bezeichnung für ein LCD, welches auch läuft. Kann auch 2x16 sein.

Was ist eigentlich mit Pin16 (Reset) muß man den auch irgendwie anschliessen oder ansteuern?

Marco78
22.10.2005, 20:44
Ich war ja so frei und habe EA angeschrieben
Du hast aber kein Code für ein HD44780 genommen, oder?
Die Ea haben einen anderen Controller.
Geht es denn am PC?

Zu Reset steht was im Datenblatt glaube ich. Ich hab's nicht auf der Platte, aber schonmal gelesen. Musst mal nachschauen.

Torsten_G
22.10.2005, 21:19
...
hat vielleicht jemand ne gute Reichelt Bezeichnung für ein LCD, welches auch läuft. Kann auch 2x16 sein.
...

Hi Lektor,

zwar nicht von Reichelt, aber von Pollin - ich verwende das Display von Wintek, Pollin-Nr. 120 232

Eckdaten: 4x27, HD44780-kompatibel, zwei Prozessoren

Funktioniert einwandfrei, für 4,95 Euronen einfach Spitze...

In der Bascom-Hilfe gibt es prima Hinweise zum Betrieb dieses Displays, und wenn ich hier richtig quer gelesen habe, dann hat auch so manch anderer hier das Teil schon zum Laufen gebracht.

Viele Grüße

Torsten

Lektor
22.10.2005, 21:24
sind doch kompatibel zum KS0073, so steht es zumindest im Datenblatt. Gehe also davon aus, dass die Ansteuerung die gleiche ist.
Habe hier im Forum eine Reicheltbezeichnung von einem LCD welches nicht im Printgehäuse ist gesehen und mir das Datenblatt angeschaut. Da fehlt der Reset bin. Die haben alle 16 Pins, meiner hat 18. Kein wunder das es nicht funktioniert. Werde mir das LCD 204B LED holen und nicht das LCD 204 DIP. Vielleicht lag es die ganze Zeit daran. Mich stört auch, dass so wenig in der EA Doku steht. Keine Diagramme wie das ganz funktioniert mit welchen Zeiten. Da ist die Doku von den "Billig-" LCD's besser.

Ein LCD ist so ein wichtiges Element; darauf kann ich nicht verzichten. Eines Tages kriege ich es hoffentlich hin.

Lektor
22.10.2005, 21:31
Genial. Danke Torsten. Der Preis ist ein gutes Argument. Muß noch welche aus meinen Bekanntenkreis fragen, ob die dort auch was Bestellen würden, denn sonst lohnen sich ja schon fast die Versandkosten nicht mehr.

Torsten_G
22.10.2005, 23:48
Ja, der Preis ist der absolute Hammer...

Pollin hat auch noch ein paar andere Displays, auch Grafische, sind alle recht günstig.

Der Vollständigkeit halber, zu dem Wintek-Display gibt es auch noch eine passende Abdeckscheibe: 120 237

Aber auch sonst haben die viele interessante Kleinigkeiten - fordere am besten mal einen Katalog an, der Online-Shop ist ein wenig gewöhnungsbedürftig...

Aber lohnen würde es sich ja fast sogar nur für das Display - selbst mit den Versandkosten wäre es immer noch preiswert. :)

Viele Grüße

Torsten

Marco78
23.10.2005, 01:49
sind doch kompatibel zum KS0073, so steht es zumindest im Datenblatt. Gehe also davon aus, dass die Ansteuerung die gleiche ist.

Genau das ist der Fehler!!!
Im Datenblatt steht auch nahzu 100% oder so ähnlich.

Die fehlenden 0,0001% sind die, die ein in den Wahnsinn treiben. Es ist eine andere initalisierung beim Start. Der Rest ist dann aber wie beim HD44780.

Wenn du hier im Forum nach dem Controller suchst, wirst du die Sequenz finden. Probier es mal mit der.

Lektor
23.10.2005, 20:32
ich habe schon im Forum gesucht, aber alle Beiträge zum EA DIP204-4 handeln von C und ich programmiere in Assembler. Konnte nichts zu Assembler finden.
Würde gerne von demjenigen, der das Display zum Laufen gekriegt hat, das Programm bekommen, damit ich es testen kann. .hex Datei und Anschlussbelegung würde erstmal reichen.
Im Internet habe ich leider auch keine fertigen Assemblerroutinen für dieses Display gefunden. Vielleicht habe ich auch falsch gesucht.
Frage ist auch, ab welcher Komplexibilität sich C besser eignet als Assembler. In Assembler kann ich mich leicht reindenken, aber bei C hat man seine fertigen Unterprogramme und muß nur die Schnittstelle dazu schreiben. Richtig lernen kann man so nicht, oder irre ich mich. Naja ab einem gewissen Zeitpunkt muß ich wohl auf C umsteigen.

Marco78
23.10.2005, 20:50
Von Asm auf C umsteigen? Würde ich an deiner Stelle nicht machen!

Du solltest lieber nach dem Controller suchen! Also nach KS0073.

https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=12465&highlight=ks0073
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=9972&highlight=ks0073

atlantikhawk
26.10.2005, 11:13
na kauf dir doch dann was grosses , welches du dann wieder per retour zurück schickt...nicht fein aber sehr hilfreich...um eben die vers.-kosten zu sparen ! *grins