mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Pic/LCD eigene Zeichen anzeigen


Autor: Sven (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein Gott... wenn ich es lese g natürlich. Hab es, um es bei mir
einheitlich zu machen, als 0x00 eingegeben.
Klappt, vielen Dank!

Sven


PS: Das Forum hier ist echt Spitze ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.