Asi es al parecer hay una confusion muy grande aqui, una rapidisima explicacion para esto.
Hay archivos bootloader para varios tipos de pics, estos solo funcionan para los pics que tienen comunicaon USART o comunicaion serial para casos sencillos. El archivo bootloades es un programa que alguin muy ingenioso hizo y la neta esta medio complicado explicar el programa, cosa que ni intentare para este caso. Tu tienes un pic 18f452-i/p, como lo dijo el amigo ferny en palabra muy bonitas, Tienes que aprender a leer el DataSheet que te ayudara mucho para programar los pics, sea el que sea. Efectivamente para casi todos los pics (o todos) las patitas de transmisión serial son las 25(tx) y la 26(Rx) Repito, Comunicacion Serial, Esta no es la maera de Cargar un pic (quemar malamente dicho) si tienes el tiempo de leer el datasheet veras que las patitas 40 39 y 38 son PGC PGD y PGM respectivamente que estas son las que sirven para cargar el pic sin usar un bootloader.
Una vez ue hallas conseguido el Bootloader tendras que cargar tu pic por primera vez con algun Cargador Te-20 o jmd programer, el que te guste mas....Para que tu pic funcione bien tendras que redireccionar algunas cosas ya que el bootloader ocupo espacion y cambio algunas cosas dentro del pic, y si no hacemos esto el pic estara como loco, te lo voy a poner tal como debe de ser para que no tengas problemas y lo explico para quien se queira meter mas a fondo. Esto es programandolo en PIC C Compiler (PHW)
#include <18F452.h> //Definimos el tipo de micro
#fuses HS,NOWDT,NOPROTECT,NOLVP //Cristal HS (high speed) no se usa el perro guardian, etc..
#use delay(clock=4000000) //Se usa un cristal de 4MHz (recomiendo 20 MHz)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7) //Usamos el tipo de interfaz rs232 por la cual se transmite por el pin C6 (patita 25 Tx) y se recive por la C7 (patita 26 (Rx) a una velocidad de 9600 baudios
#build (reset=0x200) //Mandamos el reset a la direccion 0x200 por culpa del bootloader que nos ocupo el espacio reservado por el reset originalmente.
#build (interrupt=0X208) //Lo mismo hacemos con las interrupciones.
#ORG 0X0000, 0X01FF //Y ahora el origen se encuentra en 0x012ff o sea "home" cambio
void BOOTLOADER() { //Pequeñisima subrutina para evitar el bootloader cada vez que carguemos el pic por medio de trasmision serial.
#ASM
NOP
#ENDASM
}
Despues de aqui ya va todo lo que tu quieras pero te pongo lo que }es conveniente poner. Espero y me hagas el favor de ller el datasheet para que entiendas el porque esto aunque lo explique.
#byte PORTA= 0XF80
#byte PORTB= 0XF81
#byte PORTC= 0XF82
#byte PORTD= 0XF83
#byte PORTE= 0XF84
Lo que estoy haciendo es dandole nombres a las direcciones de los puertos como PORTA (tu le puedes poner cualquier nombre, pepito, panchito, lo que tu quieras y despues esas direcciones, que si te fijas en el datasheet son las direcciones para cada puerto del microcontrolador. y por facilidad mia yo les puse esos nombres.
Ahora si apartir de aqui depende completamente de ti el programa que vallas a crear.
Espero haber aclarado la duda entre programar un pic por comuinicacion Serial y Programarlo por su forma natural.
Por cierto si el diagrama que pusiste no te funciona me dices para darte uno que funke, aunque creo que si te funcionara. procuara poner leds en la transmisión y recepcion para que veas cundo trasmites y cuando recives. Recurda poner cada patita con cada cual 11 con 25 y 12 con 26 o sea tx c del 232 con tx del pic y rx del 232 con rx del pic.
Nota, Ten mucho muchisimo cuidado con la alimentacion del pic, porque donde lo pongas mal no es muy seguro que sobreviva, Todo esto se alimenta con 5v con un rango de +- .25 V.
Alguna duda.... Pues me dicen. Espero y les sirva una vez mas.