MAX7219 - Übersicht
Der Baustein MAX7219 von der Firma MAXIM ist ein Treiberbaustein für 7-Segment-LED-Anzeigen. Alle nötigen Steueraufgaben sind bereits integriert.
Die Daten für die Anzeige müssen nur noch vom Microcontroller bereitgestellt werden. Dies erfolgt über 3 Datenleitungen. Als Anzeigen kommen
7-Segment-LED's mit gemeinsamer Kathode zum Einsatz. Auch eine Kombination aus LED-Anzeigen und einzelnen LED's ist möglich. Die einzelnen LED's können z..B. eine Balkenanzeige darstellen.
PICmicro und MAX7219
Für den PICmicro von Microchip habe ich eine kleine Sammlung von nützlichen Routinen erstellt. Diese können sehr einfach an die verschiedenen PIC-Typen angepasst werden.
Diese Sammlung beinhaltet 2 Dateien:
MAX7219.INC = Definition der verschiedenen Konstanten für den MAX7219-Baustein
MAX7219.ASM = Verschiedene Routinen zum Ansteuern des MAX7219-Bausteins
Zusätzlich sind einige Anwendungsbeispiele vorhanden.
Diese Programmsammlung wurde mit der Entwicklungsumgebung MPLAB von Microchip erstellt.
Download
Anpassung an einen PIC und die MAX7219-Initialisierung
Je nach PIC-Typ müssen in der MAX7219.INC-Datei einige Änderungen durchgeführt werden.
; ; Portbelegung ; MAX7219_DIN_Tris = TRISB MAX7219_DIN_Port = PORTB MAX7219_DIN = 0 MAX7219_LOAD_Tris = TRISB MAX7219_LOAD_Port = PORTB MAX7219_LOAD = 1 MAX7219_CLK_Tris = TRISB MAX7219_CLK_Port = PORTB MAX7219_CLK = 2 ; ; MAX7219 Init-Werte ; MAX7219_Init_DecodeMode = MAX7219_DecodeMode_CodeB_Digit7 MAX7219_Init_Intensity = MAX7219_Intensity_09 MAX7219_Init_ScanLimit = MAX7219_ScanLimit_01234567 MAX7219_Init_Shutdown = MAX7219_Shutdown_NormalOperation MAX7219_Init_DisplayTest = MAX7219_DisplayTest_NormalMode ; ; Variablen ; cblock 0x30 MAX7219_Register, MAX7219_Value, MAX7219_SendRegister, MAX7219_Temp endc
Beschreibung der Routinen in der MAX7219.ASM
Routine | Beschreibung |
---|---|
MAX7219_Init | Initialisierung der PIC-Ports und des MAX7219 |
MAX7219_Send | Der Inhalt der Variablen MAX7219_Register und MAX7219_Value werden zum MAX7219 gesendet |
MAX7219_SetDecodeMode | Der Inhalt vom W-Register wird zum MAX7219-DecodeMode-Register gesendet |
MAX7219_SetIntensity | Der Inhalt vom W-Register wird zum MAX7219-Intensity-Register gesendet |
MAX7219_SetScanLimit | Der Inhalt vom W-Register wird zum MAX7219-ScanLimit-Register gesendet |
MAX7219_Display_ON | Der MAX7219 wird in den Normal-Modus geschaltet |
MAX7219_Display_OFF | Der MAX7219 wird in den ShutDown-Modus geschaltet |
MAX7219_SetShutdown | Der Inhalt vom W-Register wird zum MAX7219-ShutDown-Register gesendet |
MAX7219_SetDisplayTest | Der Inhalt vom W-Register wird zum MAX7219-DisplayTest-Register gesendet |
MAX7219_Clear | Der Anzeigebereich im MAX7219 wird mit 0 aufgefüllt |
MAX7219_Fill | Der Anzeigebereich im MAX7219 wird mit W-Register aufgefüllt |
MAX7219_GetHexLEDCode | Der Inhalt vom W-Register wird in den MAX7219-LEDCode übersetzt |
MAX7219_SendHexByte | Der Inhalt vom W-Register wird in MAX7219_Register und MAX7219_Register-1 in Hex angezeigt |
MAX7219_SendHexHNibble | Der H-Teil vom W-Register wird in MAX7219_Register in Hex angezeigt |
MAX7219_SendHexLNibble | Der L-Teil vom W-Register wird in MAX7219_Register in Hex angezeigt |
MAX7219_SendByte | Der Inhalt vom W-Register wird in MAX7219_Register und MAX7219_Register-1 angezeigt |
MAX7219_SendHNibble | Der H-Teil vom W-Register wird in MAX7219_Register angezeigt |
MAX7219_SendLNibble | Der L-Teil vom W-Register wird in MAX7219_Register angezeigt |
Demo 1
LED7: Zeigt nacheinander alle 16 Werte von CodeB. Zusätzlich blinkt der Dezimalpunkt.
LED6..LED2: Zeigen eine Animation.
LED1..LED0: 2-stelliger Zähler. Der Zählerstand wird in Hex angezeigt.
Demo 2
LED7: Zeigt nacheinander alle 16 Werte von CodeB. Zusätzlich blinkt der Dezimalpunkt.
LED6..LED3: Zeigen eine Animation.
LED2..LED1: 2-stellige Hex-Anzeige des Potiwertes.
Balken-LED's: Zeigen den Potiwert an.