Hallo, kann mir bitte jemand helfen? Ich habe die LCD Schaltung aus dem Tutorial aufgebaut und sie geht auch, nur habe ich ein Problem, wie komm ich in die 2te zeile? Die erste kann ich wunderbar beschreiben aber in die 2te,naja da fängt mein Problem an. PS: Ich verwende AVR-Studio und den 4433. Jochen
Hallo Jochen, wenn Du dir die anliegende pdf-Datei durchliest, wirst du merken,dass Du das LCD richtig initalisieren musst (system-set). Die zweite zeile erreichst du dann, wenn Du z.B. einen passenden set-DD-Ram Befehl an das LCD sendest. Anschliesend gibt das LCD die zeichen ab der Adresse aus, die du vorher über den set-LCD-RAM befehl gesetzt hast. z.B.: MOV A, #127+64+11 ;An Spalte 11 2. Zeile springen (set_LCD_RAM) call LCD_send_b ; " die zweite möglichkeit zum prinzipiellen ausprobieren ist die, dass du, nachdem du das LCD mit dem system-set befehl für ein mehrzeiliges LCD initialisiert hast, einfach einen ganz langen text in das lcd schreibst. Ab dem 65ten Zeichen müsste die zweite Zeile beschrieben werden. mFG Matthias
Hallo Jochen, wenn du LCD-Test.asm aus dem tutorial verwendest, kannst du mal folgendes ausprobieren: Füge vor "loop:" folgendes ein: ldi temp1, #192 ;set LCD Ram Befehl rcall lcd_command ; ans LCD senden ldi temp1, '2' ;Zeichen anzeigen rcall lcd_data Dann müsste eine 2 in der Zweiten Zeile erscheinen Gruß Matthias
Hallo Jochen, der zu sendende LCD Ram Befehl heist natürlich "Set DD-RAM adress", also 1 A6 A5 A4 A3 A2 A1 A0 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 über die Bits A0 bis A6 wird die Stelle angegeben, an die im LCD gesprungen werden soll. Die zweite Zeile geht bei zweizeiligen LCDs oft ab Ram adresse 64 los, daß heist man muß #192 als Befehl an das LCD senden (rcall lcd_command) um an die 2te Spalte der Zweiten Zeile zu gelangen. Bit 7 des Befehls muß eins sein: 127 Die zweite Zeile fängt ab RAM-Stelle 64 an: + 64 Um von der ersten Spalte zur zweiten zu gelangen, muß man eine Stelle weitergehen: + 1 ------------------------------------------------ =192 ==== Matthias
Hallo Jochen, der Fehlerteufel hat zugeschlagen, da 2^7 =128 muß es heißen: Die zweite Zeile geht bei zweizeiligen LCDs oft ab Ram adresse 64 los, daß heist man muß !! #193 !! als Befehl an das LCD senden (rcall lcd_command) um an die 2te Spalte der Zweiten Zeile zu gelangen. Bit 7 des Befehls muß eins sein: !!! 128 !!! Die zweite Zeile fängt ab RAM-Stelle 64 an: + 64 Um von der ersten Spalte zur zweiten zu gelangen, muß man eine Stelle weitergehen: + 1 ------------------------------------------------ !! =193 !!! ==== Matthias
Hallo Matthias Reiter, Erstmal danke für die schnelle Hilfe, jetzt klappt es. Nur konnte ich #193 nicht senden ich musste es dann in Hex "C1" umwandeln und dann War ich in der 2ten Zeile auf position 2 um auf position 1 zu kommen musste ich einfach 192 oder C0 wie du am anfang sagtest an das lcd senden. Nochmals Dankeschön, Jochen Tontch.
Hallo Jochen, danke, dass du eine Rückmeldung gegeben hast, dass es jetzt funktioniert. Ich habe in letzter zeit nur mcs51'er programmiert. Deshalb komme ich mit der Schreibweise vom AVR-Assembler immer durcheinander. Ich glaube es müsste aber auch ohne Umwandlung in Hex gehen. Nur die Raute muß, gelaube ich, weggelassen werden. Das ist mir aus der mcs51'er Schreibweise reingerutscht. Probier doch mal folgendes: ==================================================================== Anstatt #192 einfach nur 192 ==================================================================== Füge vor "loop:" folgendes ein: ldi temp1, 192 ;set LCD Ram Befehl rcall lcd_command ; ans LCD senden ldi temp1, '0' ;Zeichen anzeigen rcall lcd_data Ich bilde mir ein, das es so funktionieren müsste. Möglicherweise funktioniert sogar das: ldi temp1, 128+63+8 ;set LCD Ram Befehl ;Zweite Zeile und 8te Spalte ; 1-2-3-4-5-6-7-8 wenn man mit 1 ; zu zählen anfängt rcall lcd_command ; ans LCD senden ldi temp1, '8' ;Zeichen anzeigen rcall lcd_data Tschüß Matthias
hallo, hatte das selbe problem jetzt: ldi temp1, 192 ;set LCD Ram Befehl rcall lcd_command ; ans LCD senden ldi temp1, 'x' ;Zeichen anzeigen rcall lcd_data Funktioniert! Danke auch.
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.