Te mando este ejemplo en el que se usa el usart de el pic , pues el problema de usar la recepcion seral por software , si bien es mas facil es menos contundente en cambio recepcion serial por hardware es la mejor.
'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2002 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 13/12/2002 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
CMCON=7
TRISA=%00001111
TRISB=%00000010
RECEPTOR VAR PORTB.1
TRANSMISOR VAR PORTB.2
PULSADOR1 VAR PORTA.0
PULSADOR2 VAR PORTA.1
PULSADOR3 VAR PORTA.2
PULSADOR4 VAR PORTA.3
LED1 VAR PORTB.4
LED2 VAR PORTB.5
LED3 VAR PORTB.6
LED4 VAR PORTB.7
DATO_REC VAR BYTE
SPBRG = 25 ' Set baud rate to 2400
RCSTA = %10010000 ' Enable serial port and continuous receive
TXSTA = %00100000 ' Enable transmit and asynchronous mode
LED1=0
LED2=0
LED3=0
LED4=0
INICIO:
IF PULSADOR1=0 THEN
PAUSE 30
IF PULSADOR1=0 THEN
WHILE PULSADOR1=0 :WEND
HSerout ["1"]
ENDIF
ENDIF
IF PULSADOR2=0 THEN
PAUSE 30
IF PULSADOR2=0 THEN
WHILE PULSADOR2=0 :WEND
HSerout ["2"]
ENDIF
ENDIF
IF PULSADOR3=0 THEN
PAUSE 30
IF PULSADOR3=0 THEN
WHILE PULSADOR3=0 :WEND
HSerout ["3"]
ENDIF
ENDIF
IF PULSADOR4=0 THEN
PAUSE 30
IF PULSADOR4=0 THEN
WHILE PULSADOR4=0 :WEND
HSerout ["4"]
ENDIF
ENDIF
If PIR1.5 = 1 Then ' If receive flag then...
DATO_REC= RCREG ' ...get received character to B1
IF DATO_REC="1" THEN
LED1=1
PAUSE 1000
LED1=0
DATO_REC=0
GOTO INICIO
ENDIF
IF DATO_REC="2" THEN
LED2=1
PAUSE 1000
LED2=0
DATO_REC=0
GOTO INICIO
ENDIF
IF DATO_REC="3" THEN
LED3=1
PAUSE 1000
LED3=0
DATO_REC=0
GOTO INICIO
ENDIF
IF DATO_REC="4" THEN
LED4=1
PAUSE 1000
LED4=0
DATO_REC=0
GOTO INICIO
ENDIF
ENDIF
GOTO INICIO
en la simulacion con el pic 16f628a para cualquier pic se usa el mismo programa , comunicacion a 2400bd
cuando se presiona cualquier pulsador se refleja pro un segundo en el pic vecino

si no entiendes te recomiendo leas el datasheet de el pic y las configuraciones que no entiendas las consultas