This project is based on interfacing an 11×10 matrix of LED’s, i.e 110 LED’s with a PIC microcontroller which has only 11 pins. These are quite a number of LED’s to be interfaced. The easiest solution is to use charlieplexing multiplexing techniques, but the problem with charlieplexing is that for any two arbitrary LEDs, only one may be lit at a time. However certain combination of LED’s can be lit together but not all the combinations exist. The author doesn’t used charlieplexing but instead scanned every leds one by one and using persistence of vision he lighted up the leds, but also making sure that not all leds are lighted together.
It seems that the author was little confused as to which PIC he has to use. Since one of them can be run at higher frequency, interrupts were easier to program, but the other PIC had twice the ram that the other one. This allows him to double-buffer the screen, providing a rather cool set of APIs to the drawing code. For those interested, the code is available on the project website, however the schematics you have to make it by yourself and is simpler to do.