Nunca he hecho algo asi pero se me ocurre que uses un Pic, de mas de 28 pines para que tu puedas multiplexarlos con el pic; algo como 10X9 en filas y columnas y el programa de VB lo adaptes para que tengas el grafico de esos 10X9 y cuando des click sobre el foquito este invierta su estado (si esta apagado se encienda si esta prendido se apague), y que al hacer eso te mande la direccion via serie al PIC por ejemplo (1,2).
En mi caso solo se PBP y en visual basic mandaria el dato; asi por ejemplo para 1,1 intentaria mandar desde la PC 11.
Una vez el dato en el pic primero lo dividiria entre 10 para sacar la fila y para sacar la columna lo dividiria por 10 tambien pero usando el modulo o resto.
entonces quedaria algo asi: en el programa del pic:
Serin RX,T9600,["R"],Direccion
Fila = Direccion/10
Columna = Direccion//10
High Fila
Hiigh Columna
Claro que esto tendra sus errores pero te dara una idea no?
Suerte