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.