falsche zeichen am lcd HILFE :(

Gast #1154319
Lesenswert?

hallo alle zusammen

ich hab ein problem mit meinem lcd display da es falsche zeichen 
anzeigt.

input:
lcd display 4x20
der firma: topway
modell: lmb204bfc
angeblicher treiber: st7066u und drei mal st7063c also vier chips wovon 
ich aber nur drei sone schw. tropfen auf der platine sehe!naja
programm in assembler und mit atmega8.

wie man in der datei sieht schicke ich a,b,c,d,e,....hintereinander weg
aber anstatt diese buchstaben zu zeigen, zeigt das lcd für jeden 
buchstaben "|||" anfangs hatte ich 'T' 'E' 'S' 'T' verschickt und es 
kamen nur ein schw. block an erster stelle, ein unterstrich (2. stelle) 
und dann drei "ooo" raus!

ich hab viel rum gespielt mit zeiten und init. doch das problem war 
immer noch vorhanden!

hab auch mal die zeile mit dem cursor blinken verändert so das es nicht 
mehr blinkt aber geblinkt hat es immer noch, das lcd macht sein eigenes 
ding.

also kurz und knapp das lcd bedient mich und nicht anders herum ;-)

hat vill. jeman einen tipp bzw kann mir erklähren was ich falsch und 
machen soll?

muss dazu sagen bin relativ neu im µc programmieren hab jedoch schon 
einen countdown timer mit 7 seg. anz. gebastelt was auch leuft...nur so 
zur info was ich kann(ist ja nich viel hehe).

währe sehr dankbar für eine lösung
grüße aus berlin mojo
Angehängte Dateien:
#1154354
Lesenswert?

Hmm, also programmierst Du mit Word, oder warum ist das Attachment im 
RTF Format?
Dann habe ich keine Ahnung, was das für ein Display ist, scheint aber 
HD44780 kompatibel sein zu sollen.

Mit ein googlen nach "st7066u" kommt als dritter Eintrag ein thread aus 
diesem Forum, der dieselben Probleme löst:
Beitrag "Probleme mit LCD (ST7066U)"

(Übrigens vermisse ich in Deinem Code beim initialisieren die 
notwendigen Pausen, Du scheinst das Display zu "überfahren".)

Gruß,
Bernhard
#1154460
Lesenswert?

Hallo,

ich bin auch noch recht neu auf dem Gebiet der uP - Programmierung, aber 
ich hab mir deinen Quellcode mal angeguckt.

Mir ist aufgefallen, dass du bei der Initialisierung glaube ich nur 
einmal das Commando 0x30 an das Display sendest.

Im Datenblatt eines HD44780 steht aber, dass man das 3 mal senden muss.
1
;init_lcdd:
2
  
3
  cbi data, e      ;8bit ohne untere nibbel
4
  ldi reg1, 0x30          ;<-- diese Stelle mein ich
5
  out data, reg1                  
6
  rcall ena
7

8
  cbi data, e      ;4bit, 2 zeilen, 5x8
9
  ldi reg1, 0x28
10
  rcall comand
11
        ...

Und wie auch schon boregard sagte, dir fehlen zumindest bei dieser 
ersten Anweisung die Wartezeiten.

MfG BlueMorph
Gast #1154854
Lesenswert?

hallo

danke für eure antworten.
an peter & boregard:
rtf deswegen, weil ich den code in wordpad kopiert hab.
hoffe der anhang hilft jetzt.

an boregard:
die pausen habe ich im comand und im datai versteckt.
meinst du die zeit reicht nicht?? ich mein im datenblatt steht >37us und 
das sind deutlich mehr da ich dachte las dem lcd vieel zeit zum tun;-)

an bluemorph:
http://www.sitronix.com.tw/sitronix/SASpecDoc.nsf/FileDownload/ST7066U614654/$FILE/ST7066Uv22.pdf
laut datenblatt seite 25 sollte das so richtig sein(4 bit mode).

mfg mojo
Angehängte Dateien:
#1154863
Lesenswert?

Hi,

die 37usec sind im Betrieb für normale commands i.O. nicht für 
Initialisierung, und da:
1
  cbi data, e      ;8bit ohne untere nibbel
2
  ldi reg1, 0x30
3
  out data, reg1
4
  rcall ena
5

6
  cbi data, e      ;4bit, 2 zeilen, 5x8
7
  ldi reg1, 0x28
8
  rcall comand
fehlt die Pause ganz, abgesehen davon daß viele Controller da bis zu 
15ms wollen, steht aber alles in den Tutorials.

Gruß,
Bernhard
Gast #1155351
Lesenswert?

nee leider ist das problem noch nicht behoben im gegenteil hab jetzt ein 
neues :-(.

diese zeilen hab ich verändert das heißt nur rcall ms.
1
  ldi reg1, 0x30    ;8bit ohne untere nibbel
2
  out data, reg1
3
  rcall ena
4
  rcall ms <----- hinzu gefügt
5

6

7
  ldi reg1, 0x28
8
  rcall comand
das problem das ich jetzt habe ist das der µc das lcd initialisiert, 
aber weder die buchstaben noch diese "|||" anzeigt besser gesagt nichts 
mehr!

dieses projekt frustriert mich sehr.*heul*

hat jemand noch ne idee?

oder andere frage: meint ihr der gedanke, das ich jetzt den 8 bit mode 
und nicht 4bit init. hab, ist richtig?

mfg mojo
Gast #1155448
Lesenswert?

Ich hatte auch Probleme mit LCDs
Diese Lib funktioniert bei mir mit einem Mega8 1Mhz stabil. Die 
Pinbelegung ist zwar anders aber vllcht kannst du ja umlöten.
Aus irgendeinem Grund. den ich noch nicht herausgefunden habe, 
funktioniert bei mir das LCD  nur, wenn  D4-D7 vom LCD am einem unteren 
Nibble Px0-Px3 eines Ports angeschlossen sind (ja, ich hatte den code 
angepasst):
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren