Bascom LCD mit ST7920 Controller seriell ansteuern

riesen

Mitglied
10. Sep. 2010
108
1
16
Hallo LCD- und TFT-Freaks

Vor einiger Zeit habe ich hier schon einen Thread zu diesem Display veröfentlicht, da wurde das Display
im 4Bit-Modus angesteuert.
http://www.avr-praxis.de/forum/show...D44780)-mit-Bascom-ansteuern&highlight=st7920

Das in eBay recht günstig angebotene Display wird zwar als Grafikdisplay 128x64 angeboten, ist aber
auch ein Charakter-Display, welches 4x16 Zeichen anzeigt. Die Zeichen sind recht gross, mit Unterlängen.
Über dien Pin PSB kann gewählt werden, ob die Daten im Parallel-Modus oder Seriell-Modus empfangen
werden. Wird dieser Pin auf GND gelegt, können an den Pin's RW (Data) und E (Clock) die Daten seriell
zum Display geschickt werden. Der Pin RS(CS) muss dabei auf High gelegt werden. Beim Betrieb von
mehreren Displays kann das anzusprechende Display so ausgewählt werden.

Im Anhang ist der Code zu finden.

Die Ansteuerung als Grafikdisplay ist meiner Meinung nach recht komplex, man muss immer eine ganze
Pixelreihe von 8Bit anzeigen. Vielleicht hat hier jemand einen zündende Idee... ???

Für Anregungen bin ich jederzeit dankbar.

Viele Grüsse
Thomas

Anhang anzeigen LCD_ST7920_seriell.bas
Anhang anzeigen LCD_ST7920_seriell_declare.bas
Anhang anzeigen LCD_ST7920_seriell_sub.bas
 
Hallo Thomas,

Die Ansteuerung als Grafikdisplay ist meiner Meinung nach recht komplex, man muss immer eine ganze
Pixelreiche von 8Bit anzeigen. Vielleicht hat hier jemand einen zündende Idee... ???

Für Anregungen bin ich jederzeit dankbar.

mit Bascom kann ich dir direkt nicht helfen. Aber für ein ähnliches Display mit ST7565R-G Controller habe ich vor einiger Zeit eine kleine Lib in C geschrieben (siehe hierzu meinen Blog).


Das Grafik-RAM ist so angeordnet, dass man 8 Zeilen je 8 Bit Höhe hat. Es ist also schwierig, hier Zeichen oder allgemein Grafik auszugeben, welche auf mehreren Zeilen liegt.

Ich bin hier so vorgegangen:

(1) Ich bilde das ganze Grafik-RAM im SRAM des AVR ab. Der Mikrocontroller muss also über ausreichend SRAM verfügen, im Beispiel habe ich einen ATmega32A verwendet.

(2) Eine Routine kann auf diesen Speicher pixelweise zugreifen: DrawPixel(x, y). Diese Routine wird von allen anderen Zeichenroutinen (Font ausgeben, Linien, Rechteck, Kreis zeichnen) genutzt.

(3) Eine weitere Routine überträgt mir den gesamten (!) Inhalt des Grafik-RAM in der richtigen Reihenfolge zum Display. (Die Übertragungszeit ist in meinem Fall SPI ausreichend kurz, weniger als 10ms :))


Vielleicht bringt dich dies ja auf neue Ideen.

Dirk :ciao:


 
Hallo Dirk

Sieht sehr schön aus, deine Ansteuerung des Displays. Die Abbildung im internen SRAM des Controllers habe
ich mir auch schon überlegt, an die Realisierung habe ich mich ehrlich gesagt aus einer gewissen "Faulheit"
heraus noch nicht gemacht :) ... für grafische Anzeigen habe ich zum Glück noch ein paar LCD's mit einem
Standard-Controller (KS0108 oder T6963C) ... aber es fuxt mich schon noch, ich werde deinen Blog also
gerne mal konsultieren.

Ich benötige das Display zur Zeit als eine Art Hilfsanzeige anstatt eine COM-Port Ausgabe, wenn ich kurz mal
eine Statusmeldung zeigen will. Mit dem beschriebenen Seriell-Mode benötige ich da auch nur zwei Ports....

Nochmals vielen Dank für deinen Input!

Grüsse
Thomas
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)