Hallo,
ich habe das gleiche Problem, LEDs gleichzeitig zu steuern, allerdings nicht 64, sondern 600...1000 Stück !!!
Dazu baue ich mit einem µC (PIC16F877 ??? oder 80C166 !!!) einen 8-Bit / 16-Bit-Bus auf, also 8 / 16 Bit Daten und 8 Bit Adressen (= 256 * 8 bzw. 256 * 16 LEDs).
Dann nehme ich für jeweils 8 / 16 LEDs oder LED-Reihen eine Platine mit:
1 x 74HC686 (8-Bit-Vergleicher für Card-Select),
1 bzw. 2 x 74HC373 (8-Bit-Latch),
1 bzw. 2 x 74HC273 (8-Bit-Latch mit Reset),
1 bzw. 2 x ULN2803A (Treiber).
Mit dem 80C166 habe ich schon so einen Bus aufgebaut, dazu Platinen mit jeweils 64 Ein- und 64 Ausgängen zur konventionellen Steuerung von Modellbahnen, ähnlich einer SPS. Die Software ist bisher nicht fertig geworden.

Der Vergleicher sorgt nach Anlegen der 8-Bit-Adresse für die Auswahl der gewünschten Platine / Latch und der 'auserwählte' 74HC373 übernimmt nach einem kurzen Write-Impuls die 8 / 16 Daten-Bits.
Die 74HC273 haben einen gemeinsamen Reset, damit beim Einschalten alles Low ist und haben einen gemeinsamen Latch zur Übernahme der im 74HC373 befindlichen Bits.
Das ist alles

Quatsch. Ein weiteres Problem wird sein, wo hole ich die ganzen Bit-Muster-Daten her und wo lege ich sie im PIC ab ??? Beim 80C166 ist etwas mehr Platz.
Wie erzeuge ich meine erforderlichen Bit-Muster für die vielen vielen LED's. Es müssen ja nicht immer alle 600...1000 Bits übertragen werden. Wenn z.B. 8 / 16 LEDs eine Zeit lang dunkel oder hell bleiben und am gleichen 74HC273 hängen, muß dieses Byte / Word nicht neu übertragen werden.
Die andere Frage ist, wieviel Probleme gibt es beim seriellen Schieben von bis zu 1000 Bits auf einer Bus-Länge von bis zu 3 m ?
Bei Parallel-Betrieb ist das nicht so problematisch, weil der Datenwechsel im Mikrosekunden-Bereich liegt.
Ja ja, und mit welcher Taktgeschwindigkeit muß ich letztendlich die Bits parallel oder seriell 'transportieren' ?
Also, es fehlt mir noch eine Idee zur Berechnung und Reduzierung der Bits.