Buenas, estoy intentando comunicar 4 pic 16F877a por serial, la idea es el 1° recibe el dato desde la PC lo interpreta y si no es para el lo retransmite al 2°, este lo analiza y si no es para el lo retransmite al 3°, este lo analiza y si no es para el lo retransmite al 4°, el problema que tengo es que luego de pasar por el 1° pic los datos del 2° en adelante aveces llegan y otras no, llegando basura, ya chequee cada codigo individualmente con el pic en una placa de prueba y retransmite los datos correctamente, pero cuando los pongo en cadena no funciona.
Es decir si coloco el 1° pic con cualquiera de los otros anda,

pero si le agrego otro ya no funciona se pierden los datos.

este es el codigo de retransmicion del 1° pic, quisiera saber si esta bien hecho o no
interrup
btfss PIR1,RCIF ;Ha sido interrupción en la recepción ??
retfie ;No, falsa interrupción
bcf PIR1,RCIF ;Si, restaurar el flag de interrupción
call recibeRS232 ; sí, hay
movwf dato_serie ; guarda dato (para uso de cualquier rutina)
goto testeanumero ; llama rutina para testear clave
;***********************************************************************************
; CHEQUEA QUE PIC ES
;***********************************************************************************
testeanumero
movf dato_serie,w ; Guarda el contenido de la tecla pulsada.
xorlw digito_1 ; ¿Es el pic 1?
btfsc STATUS,Z
goto pic_1 ; Sí, se procede a chequear el puerto
movf dato_serie,W ; Recupera el contenido de la tecla pulsada.
xorlw digito_2 ; ¿Es el pic 2?
btfsc STATUS,Z
goto pic_2 ; Sí, se reemvian datos al pic 2
movf dato_serie,W ; Recupera el contenido de la tecla pulsada.
xorlw digito_3 ; ¿Es es el pic 3?
btfsc STATUS,Z
goto pic_2 ; Sí, se reemvian datos al pic 3
movf dato_serie,W ; Recupera el contenido de la tecla pulsada.
xorlw digito_4 ; ¿Es tecla del movimiento hacia la derecha?
btfsc STATUS,Z
goto pic_2 ; Sí, se reemvian datos al pic 4
retfieretransmicion, la cadena que recibe y retransmite es de 4 digitos por ej. 2A0Q
pic_2
movf dato_serie,W ; Recupera el contenido de la tecla pulsada
call enviaRS232 ; Lo retransmite a modo de eco
movf RCREG,W ; Borra el buffer
ler1 btfss PIR1,RCIF ; (5) se fija si hay dato RS232
goto ler1 ; no, no llegó
call recibeRS232 ; sí, hay
movwf dato_serie ; Guarda el contenido de la tecla pulsada.
call enviaRS232 ; Lo retransmite a modo de eco
movf RCREG,W ; Borra el buffer
ler2 btfss PIR1,RCIF ; (5) se fija si hay dato RS232
goto ler2 ; no, no llegó
call recibeRS232 ; sí, hay
movwf dato_serie ; Guarda el contenido de la tecla pulsada.
call enviaRS232 ; Lo retransmite a modo de eco
movf RCREG,W ; Borra el buffer
ler3 btfss PIR1,RCIF ; (5) se fija si hay dato RS232
goto ler3 ; no, no llegó
call recibeRS232 ; sí, hay
movwf dato_serie ; Guarda el contenido de la tecla pulsada.
call enviaRS232 ; Lo retransmite a modo de eco
retfiey lo mismo para el resto de los pic, la velocidad de transmicion es de 9600 8 bits sin paridad.
Gracias