Mitgabe von Werten für Variablen möglich?

Ich bin kein Experte für Wortuhren und beziehe mich auf meinen Beitrag zu einem vergleichbaren Thema.

const uint8_t Es[]        = {0, 1};
const uint8_t Ist[]       = {3, 4, 5};
...
const uint8_t Acht[]      = {77, 78, 79, 80};
...
const uint8_t Halb[]      = {44, 45, 46, 47};

Die Zahlen sind die Nummern der Pixel eines LED-Streifen, das brauchst Du anders.

struct Lage
{
  byte zeile;
  uint16_t bits;
};
Lage Es        = {0, 0b1100000000000000};
Lage Ist       = {1, 0b0011100000000000};
...
Lage Acht      = {3, 0b0000001111000000};
...
Lage Halb      = {1, 0b0000000111100000};

Der Funktion SwitchLED kann man die ganze Struktur übergeben:

SwitchLED(Es);

Die Funktion nimmt die Struktur entgegen:

void SwitchLED(const Lage lage)
{
  Serial.print( lage.zeile );
  Serial.print( '\t' );
  Serial.print( lage.bits, HEX );
}

Nur mal so als ungetestete Idee. Geht das in die Richtung Deiner Fragestrellung?

Wie MAX7219 und Deine Uhr zusammenfinden sollen, erschließt sich mir leider nicht.