Hola:
Lo primero, usa el programa más secillo, es decir este, y si este te envia al PC lo que has enviado al PIC (echo) pues puedes seguir añadiendo lineas de código, hay que ir de lo particulas a lo genera...
#include <16F876a.h>//PON EL PIC QUE ESTES USANDO
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT
#use delay(clock=4000000)//PON EL CRISTAL QUE ESTES USANDO
#use rs232(baud=9600, xmit=pin_C6, rcv=pin_C7)//PON LAS PATILLAS QUE ESTES USANDO Y LA MISMA VELOCIDAD QUE EN EL COM DEL PC
main() {
char c;
printf("PIC16F876A a la espera" ); // Envío mensaje de "estoy vivo"
while(true) {
c=getc();//Ponemos en el char c lo que recibimos del PC
putc(c); // eco de lo que recibo
}
}
Lo segundo asegurate que pones en el programa el mismo reloj que tienes por hw en el pic.
Luego asegurate que la velocidad que pones en el hyperterminal ( com que utilizas ) es la misma que en el programa del PIC.
Más tarde espero que los leds los hayas puesto en paralelo a las lineas TX y RX y además con sus respectivas resistencias, pues si lo pones en serie está callendo Vumbral en la linea y si no pones las resistencias con los led en la conexión en paralelo entonces la intensidad se irá toda por losl led ya que un led es un diodo por tanto un cable si el led está en ON.
Si haces esto y no funciona tb asegurate de que el com que utilizas es el adecuado y si tampoco es eso pues mejor que pidas un padre nuestro.
P.D: Usa el programa del CCS en vez del hyperterminal es mucho mejor.
Estaré atento a tu respuesta.