Para mayor flexibilidad sugeriría utilizar un PIC16F84A o uno de los nuevos de 18 pines. El puerto B puede ser utilizado para activar los LEDS. Recuerda ponerles resistencias a cada led de entre 150 ohms hasta unos 470 ohms dependiéndo de la intensidad que desees, a menor resistencia mayor intensidad. El puerto A lo puedes utilizar como entradas para seleccionar el mensaje y como interruptor de encendido para iniciar el desplegado del mensaje.
Para realizar el desplegado de cualquier mensaje que quieras tienes que realizar el mapa de bits de todo el mensaje. Piensa que cada letra esté representada por una matríz de p/e 7X5 bits y que utilizarás un espacio vacío como separador entre caracteres y varios espacios vacíos como separador entre palabras. Puedes utilizar papel cuadriculado para realizar el mapa de bits del mensaje que quieres. Para cada letra el punto más bajo es B<0> y el más alto es B<6>.
Por ejemplo para escribir [HO LA] tendrías una secuencia:
1. Para la H : 7FH, 08H, 08H, 08H, 7FH
2. Para el espacio de separación entre caracteres: 0H
3. Para la O : 7FH, 41H, 41H, 41H, 7FH
4. Para el espacio de separación entre palabras : 0H, 0H, 0H
5. Para la L : 7FH, 01H, 01H, 01H, 01H
6. Para el espacio de separación entre caracteres: 0H
7. Para la A : 7FH, 48H, 48H, 48H, 7FH
Por supuesto si las letras aparecen demasiado juntas en los espacios puedes poner más códigos 0H.
Lo que el programa hace es ir desplegando uno a uno los códigos de toda la secuencia de la frase que quieras por un tiempo determinado por el valor de un contador o timer.
Una vez que ha terminado de desplegar toda la frase puedes dar un tiempo muerto apagando todo para separar las frases o reiniciar inmediatamente la secuencia.
En mi caso se me hace más fácil programar en ensamblador además de que te da el código más compacto pero sin importar el lenguaje la secuencia de desplegado es igual.
Suerte.