Hallo, ich hab jetzt nach langem probieren endlich mein Displaytech 162 am laufen. Hab allerdings zwei Probleme die mich etwas stutzig machen. Ich kann nur kleine Buchstaben ausgeben, sobald ich einen Großen schreiben will schreibt er nur ein Leerzeichen. Hab schon probiert die Register binär zu füttern, aber auch da übernimmt er nur Kleinbuchstaben und keine Großen. Habt ihr einen Tipp wodran das liegen könnte? Angehangen ist das Datenblatt Eine Frage hätt ich noch: Gibt es irgendwo ein Tutorial oder so etwas, das beschreibt wie man in die 2. Zeile wechselt? Hab dadrüber leider nichts gefunden. Hab allerdings auch den Eindruck als ob das Display die 2. Zeile nicht initialisiert hat, da wenn ich den Kontrast ganz hoch schiebe nur die obere Zeile schwarz wird. Könnte dieses Fehlerbild auch auf einen defekt hindeuten? gruß Marcus
Also ich tippe mal darauf, dass die 2.Zeile nicht initialisiert ist. Falls du das Display im 8-bit mode betreibst (Info fehlt, genau wie der Code), bekommst du laut deinem Datenblatt den Cursor folgendermaßen in die 2.Zeile. --> siehe SET DD RAM ADDRESS Datenregister = 0xC0; gefolgt von einer fallenden Flanke am E Pin (Timing einhalten!) Und such dir mal das Datenblatt vom HD44780 raus, da erhälst du ein paar mehr Infos. Gruß
Du musst beim Initialisieren im SET FUNCTION ABSCHNITT DAS DB3 = 1 setzen um in den zweizeiligen Modus zu wechseln!!!! Probiers mal und sag bescheid wennst noch probs hast!!!
SET FUNCTION L L L L H DL N F X X Das N muss für einen zweizeilen - Betrieb auf HIGH gesetzt werden.
Initialisiert hab ich bis jetzt so: ldi temp1, 0b00110000 out PORTD, temp1 rcall lcd_enable ;init fs ldi temp1, 0b00110000 out PORTD, temp1 rcall lcd_enable ;init fs ldi temp1, 0b00110000 out PORTD, temp1 rcall lcd_enable ;init fs ldi temp1, 0b00111000 out PORTD, temp1 rcall lcd_enable ;function set ldi temp1, 0b00001000 out PORTD, temp1 rcall lcd_enable ;aus ldi temp1, 0b00000001 out PORTD, temp1 rcall lcd_enable ;clear ldi temp1, 0b00000110 out PORTD, temp1 rcall lcd_enable ;entry mode set ich betreibs im 8bit modus eigentlich sollte das doch stimmen oder? wieso übernimmt er das nicht? und habt ihr ne idee wieso das display nur kleine buchstaben schreibt? buchstaben übergeb ich ihm mit: ldi mp, 'h' rcall lcd_data lcd_data: sbi PORTC, 4 rcall delay5ms rcall delay5ms out PORTD, mp rcall delay5ms rcall delay5ms ;ausgeben rcall lcd_enable rcall delay5ms ;Enable-Routine aufrufen rcall delay5ms cbi PORTC, 4 ret Mag sein das paar Pausen überflüssig sind, war um auf Nummer sicher zu gehen weil es anfangs nicht funktioniert hatte. Aber wieso schreibt er nix großes? gruß
Ach ich hab alles richtig gemacht. Hab grade mal alle Leitungen durchgemessen, da war ein winziger Lötzinnspritzer zwischen 2 Leiterbahnen. Aber jetzt gehts :) Das wird auch der Grund gewesen sein wieso meine 4-Bit Ansteuerung am Anfang nicht funktioniert hat... Achja kleine Ursache große Wirkung Trotzdem danke an alle die mir geantwortet 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.