Hola de nuevo,
Sobre lo primero de que tu código está programado en C y compilado con CCs, yo trabajo así osea que eso no es ningún problema. Cuando has compilado el código, si miras los ficheros obtenidos, verás que tienes uno con extensión .hex, este es el importante, es el que se graba en el pic.
Si el pic lo tienes en una tarjeta creada por ti, y lo quieres grabar, necesitas tener accesibles unos pines que dependen de cada pic, normalmente son. Vdd que es la alimentación, GND que es la masa, Vpp que es la tensión de borrado de la flash, y luego dos lines para la grabación, en una van los datos y en la otra el reloj, se suelen llamar para el 16F87X (PGD la de datos, PGC la de clock). En estas lineas no debe haber diodos ni condensadores etc.. deben ser lo más directas posibles.
Por último esta lo de la configuración de los bits, te pongo el trozo de código de la configuración que tienes en el 16F874
Fuses: LP,XT,HS,RC,NOWDT,WDT,NOPUT,PUT,PROTECT,PROTECT_5%
Fuses: PROTECT_50%, NOPROTECT, LVP, NOLVP, CPD, NOCPD, WRT, NOWRT, BROWNOUT
Fuses: NOBROWNOUT,DEBUG,NODEBUG
Lo de arriba son los fuses que puedes configurar, esto es si tu programa tiene perro guardian, pues pondrás WDT sino NOWDT.
En el programa principal se pones así.
#fuses XT,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT
En la línea anterior he configurado un cristal XT, sin perro guardian (NOWDT), sin proteger el código (NOPROTECT) etc..
Espero que te sirva de ayuda sino ya sabes a preguntar.
Un saludo Pedro.