Hi, Ich bin gerad dabei ein LCD (4x20Zeichen) anzusteuern.. Habe es nach
der Anleitung hier von mikrocontroller.net aufgebaut. Einziger
Unterschied: mega8515, 8 MHz und PortA.. nungut.. das wesentliche werden
wohl die 8Mhz sein.
Funktionen tut es auch alles soweit, jedoch zeigt mein display anstatt
"test" überwiegend "d" in fast allen 4 zeilen an. Woran kann das liegen?
Pausenzeiten habe ich so angepasst (Bitte einmal rüberschauen -> bin
noch sehr jungfräulich in der materie ;) )
lcd_enable:
sbi PORTA, 5 ; Enable high
nop ; 3 Taktzyklen warten
nop
nop
nop ;ANGEPASST
nop ;ANGEPASST
nop ;ANGEPASST
cbi PORTA, 5 ;
ret ;
; Pause nach jeder ÿbertragung
delay50us: ;
ldi temp1, $84 ;ANGEPASST
delay50us_:dec temp1
brne delay50us_
ret ;
; Längere Pause für manche Befehle
delay5ms: ; 5ms Pause
ldi temp1, $42 ; ANGEPASST
WGLOOP0: ldi temp2, $c9
WGLOOP1: dec temp2
brne WGLOOP1
dec temp1
brne WGLOOP0
ret ;
Ich wär euch wirklich sehr dankbar für irgendwelche tipps..
Wenn ich mir die Hex-Werte ansehe: t = $74 e = $65 s = $73 t = $74 und dann überwiegend d = $64 bedenke, kommt mir der Verdacht, dass die Datenbits 0 und 4 immer als Null rüberkommen... Und im 4Bit-Modus reicht dafür schon eine einzige Leitung (D4 am LCD). Dann wird nämlich t = $74 zu $64 = d e = $65 zu $64 = d s = $73 zu $62 = b t = $74 zu $64 = d und heraus kommt überwiegend "d". Aber hab ich dieselbe Frage vor nicht mal zwei Wochen nicht schon einmal fast genauso beantwortet...? Beitrag "falsche Zeichen auf LCD" Gruß Johannes
Ein LCD braucht genügend Wartezeit zwischen den Schreibzyklen (>40µs), sonst kommt nur Müll ´raus. Außerdem dürfen die Verbindungsleitungen zum Display nicht zu lang sein, sonst gibt es HF-Einstreuungen. Das Display sollte am Spannungsanschluß einen Keramik-C von 100nF angeschlossen haben.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.