You could use 8 outputs to drive the smd leds. Have a table of bytes to write as the 'effect' you want. Then, sit in a loop doing this

counter = 0
loop:
counter = counter+1
if counter > tablesize then counter = 0

read byte from table[counter]
write byte to the port
pause for as long as you want

goto loop

This should get you started.

Jerson