Pic/LCD eigene Zeichen anzeigen

Gast #106468
Lesenswert?

Hallo,

mich interessiert nun mal, wie man eigene Zeichen definiert und
anzeigen kann. Belesen habe ich mich schon etwas, aber ganz zum Erfolg
bin ich noch nicht gekommen. Ich will hier als Test nur mal ein wirres
Zeichen definieren, ohne tieferen Sinn. Ich glaube, das einschreiben
des Zeichens im LCD müsste so gehen. Aber wie kann ich das dann
ausgeben??? Sonderzeichen kann ich ja mit ALT "xxxx" ausgeben. Aber
welche Adresse hat dann das eigene Zeichen? Mit ALT 0000 funktioniert
es schonmal nicht. Danke für nen Tip!

Sven
Angehängte Dateien:
Gast #106469
Lesenswert?

Hallo,

Für die Darstellung eigener Zeichen des Anwenders sind die ASCII-Codes
$00 bis $07 reserviert. Unter diesem "Zeichen" erscheint dann das
selbst definierte Zeichen. Man kann Bitmuster für 8 verschiedene
Zeichen bei 5 x 8 Matrix  bzw. 4 verscheidene Zeichen bei 5 x 10 Matrix
definieren. Die Zeichen selbst sind zeilenweise aufgebaut.
Beispiel für 5 x 8 Matrix:
Das erste Zeichen definiert man beispielsweise auf Adresse $00. Als
CGRAM-Adresse gibt man folgendes Bitmuster an: Bits 0..2 bestimmen,
welche der acht Zeilen der Matrix gemeint ist, Bits 3..5 geben an,
unter welcher der DDRAM-Adressen $00..$07 später beim Aufruf das
Zeichen erscheinen soll. Bit 0 = LSB
Als CGRAM-Data bestimmen die Bits 0..4 zeilenweise das spätere Aussehen
des Zeichens. Die Bits 5..7 sind nicht relevant. Wo ein Punkt erscheinen
soll, muß eine 1 stehen.

Gruß
Gast #106470
Lesenswert?

Hi Chris,

aber wie kann ich die Zeichen ausgeben? Im Beispielprogramm was ich
oben angehängt hab lade ich entweder mit
movlw 'a' ein Zeichen in den Akku oder gebe für vom normalen
ASCII-Standart abweichende Zeichen ein, indem ich ALT gedrückt halte
und den Zeichencode eingebe, zBsp ALT 0245 für ein ü (danke Fritz &
crazy horse).Aber mit ALT 0000 funktionert das nicht, ich bekomme das
eigenerstellte Zeichen nicht in das .asm hinein. Sicher nur ne
Kleinigkeit, aber über die stolper ich...

Sven
Gast #106471
Lesenswert?

Hallo,

anstatt zu schreiben
"movlw   'H'             ;zum Prüfen nur "Hallo " ausgeben
call    datenout"

müßte es folgendermaßen funktionieren:

movlw   $00     ; Null als hex-Zahl ins Register schreiben
call    datenout

Also nicht ein Zeichen zuweisen, sondern einfach eine Hex-Zahl zwischen
0 und 7 dem entsprechenden Register/Unterprogramm zuweisen.

Gruß

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren