De meeste LED-matrixen zijn hier intern zoals dit voorbeeld
opgebouwd:

Voor een 16x16 LED-matrix heeft u dus 16 pinnen voor de rijen en
16 pinnen voor de kolommen. Om te zien hoe uw specifieke matrix is
opgebouwd, moet u de datasheet vinden.
Om iets op het display te schrijven, stelt u de eerste rij in op
AAN, alle andere op UIT en activeert u de cols die u nodig hebt. Na
een vertraging zet je de eerste rij op UIT, de tweede rij op AAN en
activeer je de kolommen die je in de tweede rij wilt zien. Je zult
door alle rijen op deze manier herhalen. Omdat de vertraging vrij
kort zal zijn, zijn je ogen niet snel genoeg om te zien dat de
LED's meestal uit zijn.
Ik zou willen voorstellen om een timerinterrupt op je
microcontroller te gebruiken en door de rijen in de
interruptieroutine te herhalen. Op die manier kunt u de
microcontroller gemakkelijk voor andere dingen gebruiken zonder u
zorgen te maken over timingproblemen.