Texte auf LCD

Gast #70286
Hallo,

ich möchte gern Texte auf dem LCD Display darstellen!
Habe folgenden Code abgeschrieben doch leider ist nur die obere Zeile
zu sehen wenn man Sie einstellt, oder gar nichts wenn man die anderen
Texte ansteuert. Vielleicht hat jemand einen Tip oder ein Programm mit
dem es funktioniert.

Vielen Dank im vorraus!!!

Gruß

Jürgen


MEN1:  .db "Hallo Welt !!!!!"    ;MR=0 !!
MEN2:  .db "Menue 21C  Taste"
MEN3:  .db "Licht1    Licht2"

ldi temp3,1               ;Wählt 2. Text aus
rcall lcd_init     ;Display initialisieren
rcall lcd_clear    ;Display löschen
rcall M_TEXT            ;Schreibt 1. Text auf LCD

ldi temp3,2              ;Wählt 3. Text aus
rcall lcd_init     ;Display initialisieren
rcall lcd_clear    ;Display löschen
rcall M_TEXT            ;Schreibt 1. Text auf LCD



M_TEXT:        ; call ldi MR,0 <- first M_Text
set          ; T = 0 > write data to LCD
ldi ZH,high(MEN1<<1)
ldi ZL,low(MEN1<<1)
ldi temp4,(ROW)  ; ROW # of signs in ROW
mov temp2,temp3
tst temp2
breq M2        ; first Menue ?

M1:
adiw ZL,1
dec temp2
brne M1
ldi temp4,(ROW)
dec temp2
brne M1
ldi temp4,(ROW)

M2:          ; now printout all signs
lpm
Gast
Auweh, von Assembler bekomme ich Kopfweh!
lcd_init braucht man nur einmal machen. Ich verwende gestohlene LCD
Routinen, dabei ist mir aufgefallen, dass lcd_clear den Cursor nicht an
die erste Stelle setzt, also solltest du das berücksichtigen. Stelle
ev. das Display so um, dass es einen automatisch in die nächste Zeile
geht, du musst dem Display auch sagen, dass es 2 Zeilen hat (hab ich
bei mir in lcd.h eingestellt).
Gast
Tja, das Problem mit dem Kopfweh habe ich bei C... g
Eine LCD.H gibts nicht bei Assembler. Man muß die Programmierung des
LCD komplett von Hand machen, hat aber den Vorteil, daß man hinterher
wirklich weiß, wie das Display exakt angesteuert wird.
@Jürgen: Ein paar Infos brauchts aber schon noch, manche Displays
lassen sich nur mit dem Setzen des Adresspointers auf die zweite Zeile
setzen. Hierzu im Datenblatt des LCD nachschauen.
Gast
Abschreiben ??
Kopieren langt doch eigentlich.. Geht auch schneller

Fehler:
Vor dem schreiben einer Zeile muss der Cursor neu gesetzt werden.
Die Zeilen haben bei einem 16x2
N I C H T ! einen Abstand von 16 Zeichen
D.H. weitere Zeichen werden ins nicht sichtbare RAM geschrieben


clt;
ldi To_LCD_R,LCD_POS1
rcall LCD_WRITE         ;
#####################################################
Aufruf SUB LCD_WRITE -> Setzt Cursor auf Zeile 1 Feld
#####################################################
ldi MR,0                ;Wählt 1. Text aus
rcall M_TEXT            ;Schreibt 1. Text auf LCD

usw....


Phagsae
Gast
Hi,

so wie dein lcd_init und lcd_clear aufruf aussieht, gehe ich einfach
mal davon aus. Das Du eine fertige Routine hier aus dem Forum benutzt.
Demnach müsstest du ja auch lcd_data zur ausgabe eines zeichens haben.
und lcd_command für die ausgabe eines befehls...

warum setzt du den cursor nicht direkt auf die 2. Zeile ?

ldi temp1, 0xC0
rcall lcd_command

mit andern worten setze Cursor auf Position Hex 40.

Gruß Dennis
Gast
Hallo,

vielen Dank erst einmal für Eure Antworten. Ist immer toll wenn man
nicht mehr weiter weiß das Forum fragen kann!! Super Einrichtung!
Nunden eigentlich geht es mir gar nicht um die 2 Zeile das habe ich
schon in einem anderen Programm hin bekommen. Ich kann den 2 oder 3
Text nicht an Pos 1 bekommen jetzt erscheint dann gar nichts. Wie
schreibt Ihr so Rotinen?

Vielen Dank im vorraus

Gruß

Jürgen

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.