El mayor problema es la falta de sincronismo externo para saber cuanto dura cada bit. Para ello debrás conocer la velocidad de transmisión, para conocer cuanto dura cada bit. Sino leerás cualquier cosa.
Al no poseer un sincronismo externo (reloj) que te indique cuando puedes leer el bit entrante (lo recomendable es leer el bit en la mitad de su duración) tendrás que averiguar cuanto dura cada bit para "aproximadamente" cada tanto tiempo leer el bit que te entra.
Puedes leerlo por cualquier pin. Lo configuras como entrada y listo. Te recomiendo cualquiera del puerto B antes que usar puerto A que a veces son analógicas.
Supongamos que al no haber señal recibes 0 volts. Luego llega esa cadena de nueve 1´s . Te quedas en un bucle testeando el pin (btfss PINDATO) si es 0 que siga esperando , cuando sea 1 que comience cada x tiempo (duración del bit) a contar hasta 9 bits. Una vez llegado a los 9 bits comienzas a leer los datos , bit a bit, rotando una variable (RLF VARIABLE) y cuando llegue a 8 (contador) guardarlos en la memoria (dato1, dato2.... dato50) con un contador hasta 50. Y te repito que si cuentas bien (se supone) tendrás los 50 bytes de datos guardados y no te hará falta el bit de stop.
Al menos yo lo encararía así...
Quizás algún forero tenga una mejor idea.