Arduino programming question: How to multiplex a 16x16 LED matrix array with a Duemilanove?

I have an Arduino Duemilanove and a 16x16 led matrix with no driver IC. 
I think I understand the basic hardware principles of multiplexing an array. It should be theoretically possible as long as I use an external system to controll half of the pins.

So far I have the hardware about half done. I have some chips set up to sweep through the positive end of the rows of LEDs. I've made this by daisy chaining two 4017s together with two AND gates. This gives me a series of pins that light up by turns up to 16 with some skipped steps at 10 and 16. I got the info from here:

THE QUESTION IS: Where do I go from here? I'm trying to learn how to program by doing this project. Can I adapt a persistence of vision program to run a matrix? They seem quite similar.

KenSeymour3 years ago
I am working on a similar project only with an FPGA driving a 5 x 8 matrix.

The approach I am planning on is to have one output per row and one output per column. With a 100 Hz frequency, I only have one row active at a time. If the column circuit is active high, all the inactive rows are also high and the active row is low.

I am currently trying to figure out how to buffer the rows since potentially they will be driving 5 LEDs at a time (in parallel) and the FPGA output is rated at 25 mA.

I may end up with 8 transistors and 8 or 16 resistors.