Forum: Mikrocontroller und Digitale Elektronik Serielles LCD mit AVR


von A. Arndt (Gast)


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

von A. Arndt (Gast)


Lesenswert?

Hallo,

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

Gruss
A. Arndt

von Hannes L. (hannes)


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.

...

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
Noch kein Account? Hier anmelden.