Problems with Arduino replacing IO-Warrior in LED-Matrix

OK, I have looked at your circuit and your code. You have all the anode drivers essentially in parallel as far as the data stream goes, and the data ripples through to the chain of cathode drivers. You are multiplexing by anode drivers, consistent with using common anode 7-segment displays. I was for a moment puzzled that you were shifting five bytes of data in your last example but that clearly applies to sending cathode data to five matrices, followed by the anode select.

OK, that seems to make sense so far; I can't spot the problem. I gather you have by now, removed any reference to OE in the "loop" code, and that there is no extra delay function at the end of the loop that you have not illustrated. I can't see the point in using "delayMicroseconds()"; I would at least use "delay(10) " at each step for testing purposes.

In fact, to start with, I would try this stripped code:

const int LATCH     = 10;          //Latch/Strobe
const int OE        = 12;          //OE (Output Enable)
const int DOUT      = 11;          //Data
const int CLK       = 9;           //Clock

void setup()
{
  pinMode(CLK,OUTPUT);
  pinMode(LATCH,OUTPUT);
  pinMode(DOUT, OUTPUT);
  pinMode(OE, OUTPUT);
  digitalWrite(OE, LOW);
  digitalWrite(CLK, LOW);

// Practical loop skeleton:

  shiftOut(DOUT, CLK, MSBFIRST, B00000000); 
  shiftOut(DOUT, CLK, MSBFIRST, B00000000); 
  shiftOut(DOUT, CLK, MSBFIRST, B00000000); 
  shiftOut(DOUT, CLK, MSBFIRST, B01011011); 
  shiftOut(DOUT, CLK, MSBFIRST, B00000010); 
  digitalWrite(LATCH,HIGH);
  digitalWrite(CLK, LOW);           // timing trick
  digitalWrite(LATCH, LOW);
  delay(10)
}
void loop()
{

}

If this lights up some LEDs nicely, I suggest you replicate this structure into your original code.