No veo el problema en usar el 16F877, tienes una UART, la conectas al PC con un MAX232, y arreando.
En cuanto al registro de desplazamiento mejor usar uno que tenga Latches, para evitar los parpadeos, por ejemplo el 74HC595.
Si el micro no puede atender ambas tareas con soltura, tendrás que usar uno más potente, algún PIC18, PIC24, PIC32.