mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Serielles LCD mit AVR


Autor: A. Arndt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte gern einen "Controller" für Char-LCD mit Bascom
programmieren, Zielchip 2313.

Dieser AVR soll dann Angaben via serieller Verbindung auf einem LCD
darstellen, hat das schonmal jemand mit BASCOM realisiert ?

Es sollen Daten und Positionsbefehle übertragen, ich habe nur noch
keinen richtigen Ansatz.

Wenn ich dem Host AVR z.B. print "test" schreibe, wird dann eine
klassisches "ENTER" mit gesendet, ich kann ja die Stringlänge nicht
wissen und möchte dem Controller-AVR mitteilen, das war ein Befehl.

Mit dem Interrupt durch Empfang über RxD klappt es schon, ab sonst noch
nix.

Wenn ich z.B. Print "#L1-2" schreibe, muss der Controller-AVR z.B.
durch Shiften den Befehl zerlegen #L heisst Postionsbefehl, erst Zeile
(1) , dann Zeichen (2) usw., auch #CLS soll dann später CLS des LCD
auslösen.

Man könnte auch jetzt immmer "$Hello World" senden, $ =
Darzustellender Text.

Nebenbei kann der Controller auch via PWM den Contrast und Helligkeit
des Backlight und vieles mehr steuern, und das nur mit 4 (3) Leitungen
+5V  GND  TxD (RxD).

Hat jemand Ideen und Anregungen hierzu, bitte keine Sprüche wie "das
gibts schon" ---> Preis , 2313 + Kleinkram 3,00 EUR.

Werde dann auch Platinen herstellen...

Gruss
A. Arndt

Autor: A. Arndt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

gibt es keine Routine, warte bis enter ---> also print-Daten-ende und
dann stelle dar auf LCD.

Gruss
A. Arndt

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Benutze doch den ASCII-Zeichensatz.
Zeichen 0...15 sind tabu, weil es die selbstdefinierten Zeichen sind.
Der andere Teil der "darstellbaren Zeichen" beginnt bei 32 mit dem
Leerzeichen. Die ASCII-Zeichen 16...31 sind also frei und stehen zur
Verfügung. Wenn das nicht reicht, gibt es noch den Block von 128 bis
159.

So kann chr$(16) als "Locate" vereinbart werden, das darauf folgende
Byte gibt die Cursorposition an.
Ein weiterer Code (z.B. 17) könnte das LCD löschen.

Ich habe die Absicht, einen AVR (ASM) mit einem 8x24-LCD (Controller
MS50530) zu verbinden und dieses System wahlweise per RS232, SPI oder
modifiziertes OWI anzusteuern. Da werde ich auf alle Fälle die
Steuerkommandos in den ASCII-Zeichensatz integrieren.
Ich habe mich aber noch nicht entschieden, ob ich das wie oben
beschrieben mache oder ob ich mich an die ESC-P-Druckersteuerung
anlehne.
Auf alle Fälle benötigt so ein System etwas Ringbuffer, der 2313 hat
dafür etwas wenig SRAM. Für ein 2x16-LCD könnte ein (Tiny)2313 aber
reichen.

...

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.