DOGMxxx LCD Routinen

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Routinen für DOGMxxx LC-Displays

Für eins meiner Projekte benötigte ich Routinen zur Ansteuerung der DOGMxxx-Displays von Electronic Assembly, die es unter anderem bei Reichelt käuflich zu erwerben gibt. Da es bei meiner Recherche im Forum noch nichts dergleichen gab, hab ich mir kurzerhand eigene Routinen erstellt, die ich hier gerne zur Verfügung stellen möchte.

Die DOGMxxx-Display-Serie

Hier einige Features dieser Displays:

  • erhältlich als 1x8, 2x16 oder 3x16 Zeichen-Versionen
  • Hintergrundfarben blau, gelb/grün, schwarz und weiß
  • Beleuchtung (weiß, gelb/grün, blau, rot, amber, RGB-vollfarbig) ist separat zum Display und kann (fast) beliebig kombiniert werden
  • Controller: ST7036 von Sitronix, Befehlssatz ähnlich (!) HD44780
  • direkt in Platine einlötbar


Display.jpg

(hier im Bild ein DOGM162-Display, montiert zusammen mit einem IR-Sensor TSOP1736 auf der Frontplatine meines HiFi-Vorverstärkers)

Da der Befehlssatz eben nur ähnlich, aber nicht identisch ist mit dem HD44780-Controller, bestand für mich der Bedarf nach eigenen Routinen, um diese Displays schnell und unkompliziert anzusteuern.

Eigenschaften meiner Routinen (derzeit nur für DOGM162 2x16-Displays)

Meine Routinen lehnen sich vom Aufbau her an die LCD-Library von Peter Fleury an, jedoch hab ich sie etwas vereinfacht und eingeschränkt.

  • geschrieben und getestet für DOGM162-Display (2x16 Zeilen)
  • Ansteuerung des Displays über parallele 4 Bit-Schnittstelle
  • Anschluss des LCDs an Controller beliebig konfigurierbar (beliebige Ports und Pins für jedes Signal !)
  • Integrierte Abfrage des Busyflags spart unnötige Wartezeit durch zu große Delays

Sourcecode

Hier die Routinen inkl. main.c mit Beispiel zur Anwendung: Download dogm.zip

Nachtrag eines Users. Ich hatte in der while(busy) Schleife die delay Zeit auf 0.4 stellen müssen damit das Display richtig funktioniert.

ToDo

  • Kompatibilität mit anderen Displays (DOGM081, DOGM163)
  • Routine für Kontrasteinstellung (derzeit fest in dogm_init)
  • Unterstützung für Anzeige des Cursors
  • ???



Routinen für DogM132 Grafikdisplay

Dogm132.jpgDogm132 2.jpg

Eigenschaften

  • 132x32 Pixel
  • 3.3V
  • verschiedenfarbige Hintergrundbeleuchtungen
  • Datenblatt: [1]

Treiber

Hier der von mir geschriebene Treiber in C: Datei:Dogm132.zip

  • dogm_init(void); //Initialisiert das Display
  • dogm_reset(void); //Resetet das Display (wird von Init benötigt)
  • dogm_cls(void); //Löschen des Displayinhaltes
  • dogm_flush(void); //Schiebt den AVR-internen Bildspeicher ins Display
  • dogm_backlight(uint8_t f); //Ein Wert zwischen 0 und 255, der die Hintergrundbeleuchtung steuert (PWM)
  • dogm_updaterate(uint8_t f); //Setzt die Framerate
  • dogm_setpixel(uint8_t x, uint8_t y, uint8_t f); //Zeichnet ein Pixel (f=0 Pixel löschen, f=1 Pixel setzen, f=2 Pixel invertieren)
  • dogm_rect(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, uint8_t f); //Zeichnet ein Rechteck
  • dogm_box(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, uint8_t f); //Zeichnet eine ausgefülltes Rechteck (zB. für eine Bargraphanzeige)
  • dogm_line(double x1, double y1, double x2, double y2, uint8_t f); //Zeichnet eine Linie



Weitere Projekte