Buenas.
Para enviar un byte de un PIC a otro conectas los dos puertos entre sí y te aconsejo que habilites un bit, del puerto A por ejemplo, para habilitar la escritura.
El código del PIC que envía el dato sería asi:
Codigo:
envia movwf portb
bsf porta,0
call delay
bcf porta,0
return
el código ascii a enviar viene en "w".
La subrrutina de retardo se usa para dar tiempo al PIC receptor a capturar el dato. Su duración dependerá de lo que esté haciendo y cuanto tarde en hacerlo. Aquí te paso un retardo de 255 us
Codigo:
delay clrf contador
dly0 decfsz contador,f
goto dly0
return
En cuanto al PIC que recibe el dato, ejecutará la subrrutina:
Codigo:
recibe btfss porta,0
goto recibe
movf portb,w
movwf dato
call delay
return
Éste espera indefinidamente hasta que se recibe el pulso de escritura por el puerto A (bit 0), Cuando lo recibe, almacena el código en el registro "dato" y espera el mismo tiempo que el emisor para evitar la recepción de un mismo dato varias veces.
Con esto y poco más tienes comunicados los dos PICs. Al habilitar la señal de escritura de deja libre el puerto B de los PICs para hacer cualquier otra cosa con el.