Hola, te contesto desde mi poca experiencia, realmente no se si hay otra manera pero hice algo parecido de esta forma.
Uso un arreglo por cada display donde cada posision esta dividida de la siguiente manera.
Ejemplo Display1 pos 0 = 00010000 donde los primeros cuatro son el display que prende y los untimos cuatro el numero.
Ejemplo Display2 pos 0 = 00100000 donde los primeros cuatro son el display que prende y los untimos cuatro el numero.
Espero se entienda y te sirva.
Saludos.
Pablo
byte CONST Display1[] =
{0b00010000,0b00010001,0b00010010,0b00010011,0b00010100,0b00010101,0b00010110,0b00010111,0b00011000,0b00011001};
byte CONST Display2[] = {0b00100000,0b00100001,0b00100010,0b00100011,0b00100100,0b00100101,0b00100110,0b00100111,0b00101000,0b00101001};
byte CONST Display3[] = {0b01000000,0b01000001,0b01000010,0b01000011,0b01000100,0b01000101,0b01000110,0b01000111,0b01001000,0b01001001};
byte CONST Display4[] = {0b10000000,0b10000001,0b10000010,0b10000011,0b10000100,0b10000101,0b10000110,0b10000111,0b10001000,0b10001001};