mejorar ? podrias usar el SPI, obviamente perderias tu pin de salida.
Pero tu CS (SS) como le llame microchip seria tu serie/paralelo, siempre y cuando se pueda mantener en bajo o alto todo el tiempo de lectura
Tu SDI la entrada
SCLK el reloj.
SDO lo perdes por que no estarias escribiendo nada. ( es decir 0x00 escribirias ) o lo conectas a la entrada del ultimo cd4014
Y solo escribirias 3 ciclos ( 3 por que hay 3 cd4014 en el diagrama ) de 8 bits, asi el reloj funciona para esos bits. Y los vas recibiendo en byte por byte.
Manejado por hardware, interrupcion cuando llegue cada byte ( nada de delays ). Y utilizarias 4 pines (1mas). Seleccionas los baudios para recibir al ritmo que desees sin tener que agregar esos delays.
En basic no se como pero es una idea.