Forum: Mikrocontroller und Digitale Elektronik STK500 und LCD, LCD funktioniert nicht


von Marcel N. (rufnag)


Angehängte Dateien:

Lesenswert?

sers,
ich weiß, ich hab jetzt schon öfters das Problem gepostet und es haben 
auch schon viele andere das Problem gehabt, doch nach durchforsten des 
Netzes hab ich bis jetzt leider keine Lösung gefunden.
Folgendes:
ich hab mein LCD(EA DIP204-4 mit KS0073 Kontroller) an mein STK500 mit 
atmega8 angeschlossen.
Anschlüsse alle wie im Tutorial, nur RESET-PIN und 
HINTERGRUNDBELEUCHTUNG net angeschlossen.
wenn ich das Board an mach, zeigt mein LCD schön 4 mal 20 leere 
Kästchen, und wenn ich das Programm lade( siehe Anhang) zeigt es leider 
immer noch diese Kästchen, deshalb, was mache ich falsch, hat das was 
mit dem RESET-PIN zu tun, wenn ja, Masse oder VTG?????
bitte hilfe bitte bitte bitte

von Johannes M. (johnny-m)


Lesenswert?

Warum hast Du die Initialisierung des High-Byte des Stack Pointers 
rausgeschmissen?

von Marcel N. (rufnag)


Lesenswert?

oha, stimmt, das muss natürlich rein

von Marcel N. (rufnag)


Lesenswert?

aber an dem lag es net, dass mein lcd net tut

von Snt O. (snt-opfer)


Lesenswert?

Die Kontrastspannung so wie sie soll ?

von Marcel N. (rufnag)


Lesenswert?

denk schon, kontrast ist ja da und mit dem poti kann ich die ja auch 
einstellen

von Peter D. (peda)


Lesenswert?

Snt Opfer wrote:
> Die Kontrastspannung so wie sie soll ?

Ich habe gemerkt, daß bei mehrzeiligen Displays die ersten Zeilen 
Kästchen zeigen, wenn der Kontrast stimmt, da nach dem Poweron der 
1-Zeilenmodus aktiv ist.
Erst nach der Initialisierung auf den 2-Zeilenmodus gehen sie weg.

Wenn also ohne CPU keine Kästchen zu sehen sind, stimmt der Kontrast 
nicht.


Peter

von Peter D. (peda)


Lesenswert?

Marcel Niess wrote:

> HINTERGRUNDBELEUCHTUNG net angeschlossen.

Dann kanns ja nicht gehen.
Transmissive Displays funktionieren nur mit Beleuchtung!


Peter

von Marcel N. (rufnag)


Lesenswert?

okay, egal was ist, es werden immer alle 4 zeilen gezeigt.
woran kann es dann denn liegen, weil wenn ich mim poti rum dreh, geht 
alles aus
oh nein, total verwirrt

von Marcel N. (rufnag)


Lesenswert?

okay, so was in der art hab ich schon gedacht, wie soll ich die 
anschliesen, dachte bei anschluss + an einen 80ohm widerstand und in 
reihe n 100 ohm poti und - an masse?

von Snt O. (snt-opfer)


Lesenswert?

Im DB steht was von :
"KONTRASTEINSTELLUNG
Die Kontrastspannung wird an Pin 3
(VEE) eingespeist, dies kann z.B. über
ein Poti erfolgen.
Achtung: Im Unterschied zu den
meisten Dotmatrix-LCD's erfolgt die
Regelung gegen VDD !"

Hilft das eventuell ?

von Marcel N. (rufnag)


Lesenswert?

denke, wenn es transmissiv ist geht es natürlich ohne 
hintergrundbeleuchtung net. werde es damit versuchen und dann mal hoffen

von Marcel N. (rufnag)


Lesenswert?

servus,
so, jetzt alles angeschlossen, hintergrundbeleuchtung und reset(an gnd).
leider tut sich immernoch nichts. display leuchtet jetzt auch ganz toll, 
aber bei der initialisierung stimmt es wohl dann immernoch net, kann mir 
vielleicht jemand nen code im anhang schicken der funktioniert, dann 
kann ich schonmal sehen, ob es doch noch an der hardware liegt.
schon mal danke

von Condi (Gast)


Lesenswert?

Reset an GND? Der Reset Pin vom Mikrocontroller sollte eigentlich eher 
an VDD...

von Marcel N. (rufnag)


Lesenswert?

na ja im ea datenblatt steht beim level vom reset L, kann es ja mal mit 
vdd probieren

von Marcel N. (rufnag)


Lesenswert?

reset an vdd bringt auch nichts, das display macht nichts

von Condi (Gast)


Lesenswert?

Wieviel Mhz hat den der Mega?

von holger (Gast)


Lesenswert?

ldi temp1, 0b00000010        ;function-set für 4-Bit Modus
           out PORTD, temp1
           rcall lcd_enable
           rcall delay5ms

Einmal in die Codesammlung geschaut und:
Ab hier musst du das in Assembler übersetzen

  // Grundinitialisierung (4-Bit Parallel Mode)
  write_lcd(0x24,1);               // 24 0010 0100 (4Bit Bus RE=1)
  write_lcd(0x09,1);               // 09 0000 1001 (4 Zeilen Mode)
  write_lcd(0x20,1);               // 20 0011 0000 (4Bit Bus RE=0)
  write_lcd(0x0C,1);               // 0000 1111 (Dipl. ein, Cursor aus, 
Cursor blinken aus)
  write_lcd(0x06,1);               // 0000 0110 (Autoinkrement)

von Condi (Gast)


Lesenswert?

und

(1) Display Clear instruction
Write "20H" to all DDRAM

scheint mir zu fehlen

von Marcel N. (rufnag)


Lesenswert?

ja, das müsst ich so alles in assembler haben, muss ich vielleicht doch 
mal die  hardware checken

von Condi (Gast)


Lesenswert?

nö das fehlt

von Marcel N. (rufnag)


Lesenswert?

das mach ich doch mit dem lcd_clear aufruf

von Condi (Gast)


Lesenswert?

der kommt aber erst nach dem lcd_init

von Marcel N. (rufnag)


Lesenswert?

wann sollte der denn kommen

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.