5x7-Dot-Matrix-Ansteuerung mit dem MAX7219 (für PIC-Mikrocontroller, Elektronik)


zurück zu Elektronik, Homepage


3. Ansteuerung des MAX7219

Die Konfiguration des MAX7219 und die Ansteuerung der einzelnen Digits (hier der einzelnen Leuchtdioden der 5x7-Dot-Matrix) erfolgt mit 16 Registern. Diese 16 Register sind nach folgendem Schema aufgebaut:

Tabelle: Registerformat (16-Bit)

Jedes Register besteht aus einer 8-Bit-Adresse (wobei nur die Bits D8 bis D11 von Bedeutung sind) und aus 8-Bit-Daten.

Die Adresse gibt sozusagen an, welches Register angesprochen werden soll. Die folgende Tabelle zeigt die Bedeutung der einzelnen Register.

Tabelle: Registerzuordnung

Register No-Op (Adresse: 00h):
Dieses Register wird benötigt, wenn mehrere MAX7219 kaskadiert (also hintereinander geschaltet) werden. Mehr dazu ab Abschnitt 7 (Kaskadieren mehrerer MAX7219).

Register Digit 0 bis Digit 7 (Adressen: 01h bis 08h):
Ist eine 5x7-Dot-Matrix-Anzeige z.B. nach Bild 3.1. angeschlossen und es soll der Buchstabe A angezeigt werden, so müssen die Register 01h (Digit 0) bis 05h (Digit 4) mit den folgenden Werten geladen werden:

Anmerkungen:

Anschlussbeispiel für eine 5x7-Dot-Matrix-Anzeige am MAX7219

Register Decode Mode (Adresse: 09h):
Für die Ansteuerung einer Dot-Matrix-Anzeige sind die Datenbits (D0 bis D7) dieses Registers mit 0 zu laden (gemäß Tabelle 3.3.)

Register 09h (Decode Mode)

Register Intensity (Adresse: 0Ah):
Dieses Register steuert die Helligkeit der Anzeige softwaremäßig in 16 Stufen. Tabelle 3.4. zeigt welche Datenbits für welche Helligkeitsstufe gesetzt werden müssen.

Register 0Ah (Intensity Mode)

Anmerkung: Die Helligkeit (Intensity) kann auch hardwaremäßig per Widerstand am Eingangspin ISET (Pin 18) eingestellt werden. (z.B. mit einem Fotowiderstand für ein automatische Anpassung an die Umgebungshelligkeit)

Register Scan Limit (Adresse: 0Bh):
Mit diesem Register wird dem MAX7219 mitgeteilt wie viele Spalten die angeschlossene Dot-Matrix-Anzeige besitzt. Diese Angabe ist notwendig, damit der MAX7219 nicht unnötig Daten an die nicht vorhandenen Spalten ausgibt. Tabelle 3.5. zeigt wie die Datenbits je nach Anzahl der vorhanden Spalten (oder Digits bei 7- Segment-Anzeigen) gesetzt werden müssen. Eine falsche Einstellung beeinträchtigt auch die Helligkeit der Anzeige!

Register 0Bh (Scan Limit)

Register Shutdown (Adresse: 0Ch):
Mit diesem Register kann der MAX7219 ausgeschaltet werden. Dass bedeutet natürlich auch dass keine angeschlossenen Segmente leuchten. Dazu muss nur das Bit D0 (im Register 0Ch gelöscht werden. (siehe Tabelle 3.6).

Register 0Ch (Shutdown)

Register Display Test (Adresse: 0Fh):
Mit diesem Register kann ein Selbsttest des MAX7219 erfolgen, d.h. alle Segmente leuchten mit der maximalen Helligkeit. Dazu muss nur das Bit D0 (im Register 0Fh) gesetzt werden. (siehe Tabelle 3.7).

Register 0Fh (Display Test)

Das beschreiben der soeben besprochenen Register erfolgt üblicherweise mit einem Mikrocontroller (siehe Bild 2.1) und benötigt 3 Portpins. Bild 3.2. zeigt das Protokoll und Tabelle 3.8. die einzuhaltenden Zeiten.

Protokoll Zeiten

Wie aus Bild 3.2. ersichtlich ist die Kommunikation mit dem MAX7219 sehr einfach:

Betrachtet man die Zeiten, so erkennt man dass keine Verzögerungsschleifen in der Software notwendig sind. Die Abarbeitungszeit einer Assembleranweisung benötigt im Durchschnitt 1µs bei einem typischen Takt von 4 MHz (Bei einer maximalen Taktfrequenz von 20 MHz benötigt eine Assembleranweisung 250ns, was auch noch viel größer ist, als die Werte in der Tabelle).

nach oben


zurück zu Elektronik, Homepage

Autor: Buchgeher Stefan
Erstellt: 6. April 2006
Letzte Änderung: 24. September 2008