Por favor, ayúdame con los fuses, sólo quiero prender dos leds para probar el pickit 2 v2.61
Porque como a los demás, me funciona en la simulación del proteus, pero al pasarlo al protoboard, no.
Estoy utilizando el PIC16F877A y un cristal externo de 20 MHz.
OK. Esta es la palabra de configuración que debes usar:
_HS_OSC & _WDT_OFF & _LVP_OFF & _PWRTE_ON
_HS_OSC = Oscilador de alta frecuencia. Porque usarás un cristal de 20MHz. (Máximo soportado)
_WDT_OFF = Watchdog Timer, deshabilitado.
_LVP_OFF = Low Voltaje Programming, deshabilitado.
_PWRTE_ON = Power-Up Timer, habilitado. (Recomendado)
Sustituye por ésta, la que se encuentra escrita por defecto en el archivo 16F877A.INC
El fuse BOREN (Brown-out Reset) estará habilitado al no incluirse, pero no afectará sobre el programa.
Ver documento adjunto.
Si lo quieres deshabilitar, debes escribir lo siguiente a continuación del último fuse:
& _BOREN_OFF
El orden de escritura de los fuses no importa y es la letra
& la que los separa.
Verás que no es necesario escribir todos los fuses disponibles para el PIC16F877A.
Por ejemplo: Si incluyéramos _CP_OFF tendríamos el mismo resultado que al no incluirlo, a menos que esté en ON, o sea, en 0 el bit 13 de Configuration Word, dirección 0x2007.
CP = 1 (Code protection off)
CP = 0 (All program memory code-protected)
Te recomiendo leer este documento:
Significado de los fuses
No contiene la explicación de todos porque varían dependiendo el tipo de PIC, pero te servirá para comprender los que tiene el PIC16F877A y otros PIC16.
También puedes leer la hoja de datos del PIC y ahí verás los que tiene disponibles.
En el documento se encuentran en una sección llamada "CONFIGURATION WORD"
El valor para el registro 0x2007 que se obtendrá al compilar con los que vienen por defecto en el archivo "16F877A.INC", es:
3F7D
Con la modificación que incluye los fuses que requieres, el valor debe ser:
3F72