Forum: Mikrocontroller und Digitale Elektronik LCD 2x16 nur 1 Balken


von Alex (Gast)


Lesenswert?

Hallo,
ich baue gerade das Tutorial nach und habe mir ein 2x16 Display
gekauft, dachte ich jedenfalls und es steht auch auf der Verpackung
drauf.
Denkste!
Da lege ich die 5V an Vdd und GND an Vss, Kontrast auch GND, aber was
passiert? Nur ein Balken auf dem Display, zwar mit herrlichem Kontrast,
aber was nu?

Habe PIN 1-14 so wie es im Tutorial steht. 15 und 16 habe ich auch
noch, aber der Verkäufer hat gemeint, dass es ohne
Hintergrundbeleuchtung wäre...

Ich bin ratlos! Auf dem Display steht nichts drauf, auf der Verpackung
steht 2x16.
Jedenfalls wird nur 1 Balken angezeigt und das komische ist, dass er
genau in der oberen Hälfte ist, die untere Hälfte leuchtet nicht
dunkel.
Kaputt oder 1x16 oder sonst was? Sowas schon mal jemand erlebt?

von Peter (Gast)


Lesenswert?

Warum legst Du Gnd auf Vss?
Dort die Betriebsspannung anlegen

Peter

von Peter (Gast)


Lesenswert?

denke ich jedenfalls bei Vss oder ?
Hab zwar noch nie mit Display gearbeitet aber rein der Bezeichnung
halber denke ich...

von MooseC (Gast)


Lesenswert?

Der Effekt ist reichlich bekannt...
siehe -> http://www.mikrocontroller.net/forum/read-1-31556.html#31582


MooseC

von Alex (Gast)


Lesenswert?

Vss  ->  GND
Vdd (oder wie`s im Tut. steht: Vcc) -> 5V
Kontrastspannung -> GND (Poti war nicht nötig)

1 Balken leuchtet wunderbar, ich denke mir jetzt, wenns ein 1x16 wäre,
dann wäre der Balken zentriert, ist er aber nicht, es würde genau ein
2. reinpassen.

Angeschlossen ist es jedenfalls, wie es das Datenblatt erfordert. Dass
Vss auf GND liegt ist schon richtig.

von Alex (Gast)


Lesenswert?

aha, meins war auch billig. 10 Euro bei Conrad!

Ich brauche eigentlich nur eine Zeile...

trotzdem danke

von Alex (Gast)


Lesenswert?

mit welchem Display von welchem Hersteller passiert mir das nicht?

von Nik Bamert (Gast)


Lesenswert?

Ey, also bei mir sahs am Anfang genau so aus.
Ich hab die ganze Zeit etwas mit der Initialisierung Falsch gemacht,
als dann alles korrekt war, begann auch die zweite Zeile an leicht
schwarz zu leuchten....

Könnte gut ein solches Prob sein.

Mfg Nik

von Alex (Gast)


Lesenswert?

Werde etwas rumspielen - soviel ich jetzt verstanden habe, sparen sich
da die Hersteller nur ein paar IC's und das Datenblatt habe ich auch
noch nicht intus.

Hat mir jedenfalls schon geholfen, war kurz davor alles wieder
zurückzubringen :)

von thkais (Gast)


Lesenswert?

Da wird nix gespart. Nach dem Einschalten ist das immer so - und war es
auch. Dein Controller initialisiert schlichtweg das Display nicht.

von Frank K. (Gast)


Lesenswert?

Hi

Also bei meinen LCD´s leuchtet immer nur die erste Zeile ich dachte
immer das sei so richtig weil ja die zweite zeile dann auch geht wenn
ich die daten dort hin schicke. Zweite zeile fängt mit c0-Hex an und
die zeile 1 mit 01-Hex.


mfg Frank

von Alex (Gast)


Lesenswert?

@thkais:

Also ich habe jetzt das LCD so an den 4433 angeschlossen, wie es im
tutorial steht.

Ich habe den µC vor gut zwei Wochen bekommen und bin gerade dabei mich
etwas in Assembler einzuarbeiten. Den I/O - Teil habe ich noch
wunderbar verstanden, naja, es funktionierte jedenfalls.

Ich benutze TAVRASM, aber ich bekomme bei dem im Tutorial vorgestellten
Testprogramm immer einen Fehler!

### aus lcd-test.asm - fürn 4433 ###

.include "4433def.inc"   <---------- anstatt des M8 hab ich meinen
                                     reingeschrieben, wie im I/O-Teil

#### die folgende Zeile mag TAVRASM nicht!!!
#### bekomme immer einen Fehler
#### Error: undefined variable referenced in I/O port address
####        out SPH, temp1

ldi temp1, HIGH(RAMEND)     ; HIGH-Byte der obersten RAM-Adresse
           out SPH, temp1

was ist falsch?

von Uwe (Gast)


Lesenswert?

Hi!
Man man man, die Piesastudie untertreibt ja noch, die können ja noch
nicht mal lesen! Wie wäre es denn mal mit Datenblatt studieren!

"4433" hat kein "SPH" sondern nur "SP" !

MFG Uwe

von -ohne Worte- (Gast)


Lesenswert?

> die Piesastudie untertreibt ja noch
--------^-----------------------------

von Edgar (Gast)


Lesenswert?

@Alex
ich glaube nicht, daß Du ein einzeiliges Display hast (da wäre der
Balken in der Mitte). Hast Du schon mal probiert, auf der 2. Zeile
etwas auszugeben? Vorsicht, die Adressen beginnen, glaub' ich, bei
$40...
Daß beim einschalten nur der oberste Balken erscheint, kommt evtl.
daher, daß Du Kontrast auf Masse gelegt hast. Mit Poti hast Du die
Möglichkeit, den Koontrast einzustellen und dann sollte auch der zweite
Balken sichtbar werden :-)
Edgar

von thkais (Gast)


Lesenswert?

@Edgar:
Mit Kontrasteinstellen kriegt man den zweiten Balken nicht, es sei
denn, man hätte getrennte Kontrasteinstellmöglichkeiten (puh, was ein
Wort). Die zweite Zeile kommt erst, wenn der Display-Controller richtig
initialisiert wird.

@Uwe:
Wer im Glashaus sitzt... Als Anfänger kanns schon mal passieren, dass
man Feinheiten wie SP und SPH (noch) nicht unterscheiden kann. Da muß
man nicht gleich persönlich werden.

von Bernd Walter (Gast)


Lesenswert?

Eigendlich schon erwähnt, aber...
Wenn man das LCD nicht auf zweizeiligen Betrieb initialisiert hat, dann
erscheint auch die zweite Zeile nicht, die erste hingegen kann man auch
ohne Darstellung mit dem Kontrast sichtbar machen.
Im AVR Tutorial passiert das hierdurch:
ldi temp1, 0b00101000        ;noch was einstellen...
rcall lcd_command

von Stefan_h (Gast)


Lesenswert?

Hi,

also nach meinem Wissensstand ist das so mit den (meisten)LCD´s. Wenn
man den Contrast auf GND legt, ist der Contrast am Stärksten. Bei
meinen LCD´s mach ich das zum Testen auch so.

Wenn das LCD nicht initialisiert wird, ist die erste Zeile immer
Schwarz.
2 zeilige--> 1. Zeile
4 zeilige--> 1. u. 3. Zeile schwarz.

Also wenn das der Fall ist, dann stimmt bei der Initialisierung des
Displays was nicht

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.