Translate, Traductor

Mostrando entradas con la etiqueta fusibles. Mostrar todas las entradas
Mostrando entradas con la etiqueta fusibles. Mostrar todas las entradas

viernes, 6 de julio de 2012

Secuenciador Variable usando el TMR0 y el AD

Secuenciador de 8 LED's usando el TMR0 y el conversor análogo a digital.
Por medio de un potenciometro conectado a uno de los canales del conversor análogo a digital, podemos variar la velocidad de los LED's conectados al PORTB, el valor en el potenciometro es leído por el AD y después almacenado en el TMR0.

Circuito



Código fuente


   LIST P=16F886

    INCLUDE P16F886.INC
ERRORLEVEL -302

    __CONFIG _CONFIG1, _INTOSCIO & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOREN_ON & _IESO_OFF & _FCMEN_OFF & _LVP_OFF & _DEBUG_OFF
    __CONFIG _CONFIG2, _BOR40V & _WRT_OFF


CBLOCK 0X20
CUENTA, PDel0, VALORAD
ENDC


      ORG 0X00
      GOTO CONFIGURA
     
      ORG 0X04
      GOTO INTERRUPCION
      ORG 0X05

INTERRUPCION DECFSZ CUENTA,F
GOTO SALE
RLF PORTB
MOVLW .5
MOVWF CUENTA
SALE MOVF VALORAD,W
MOVWF TMR0
BCF INTCON,T0IF
RETFIE

RETAD  movlw     .123      ; 1 set number of repetitions
        movwf     PDel0     ; 1 |
PLoop0  clrwdt              ; 1 clear watchdog
        decfsz    PDel0, 1  ; 1 + (1) is the time over?
        goto      PLoop0    ; 2 no, loop
PDelL1  goto PDelL2         ; 2 cycles delay
PDelL2  clrwdt              ; 1 cycle delay
        return              ; 2+2 Done
 
   
CONFIGURA CLRF     PORTB
BANKSEL   OSCCON
      MOVLW B'01101100'
      MOVWF OSCCON
      BANKSEL ADCON1
  MOVLW B'00000000' ; 7 justifica a la izq, 5 Vss ref, 4 Vdd ref
  MOVWF ADCON1
BANKSEL ANSEL
MOVLW B'00000001'
      MOVWF ANSEL
CLRF     ANSELH
BANKSEL TRISB
MOVLW .1
MOVWF TRISA
CLRF     TRISB
CLRF     TRISC
BANKSEL OPTION_REG
MOVLW B'00000111'
MOVWF OPTION_REG
MOVLW B'10100000'
MOVWF INTCON

BANKSEL ADCON0
      MOVLW B'11000001' ;7:6 FCR clock, 5:2 canal, 1 go, 0 AD ON
      MOVWF ADCON0
      BANKSEL PORTB
CLRF PORTA
CLRF PORTC
CLRF TMR0
MOVLW .1
MOVWF PORTB
MOVLW .20
MOVWF CUENTA

CICLO   BSF ADCON0,GO
  CALL RETAD
END_AD BTFSC ADCON0,GO
  GOTO END_AD
  MOVF ADRESH,W
 
  MOVWF VALORAD
GOTO     CICLO

        END


Copyright 2012  edwtron
       
Este DOCUMENTO es un DOCUMENTO LIBRE, usted puede redistribuirlo y/o modificarlo bajo los terminos de la GNU FDL tal y como es publicada por la fundacion de software libre; bajo la version 1.3 de la licencia, o  una version superior.
     Leer la licencia GNU gpl para mas detalles. 

    Permission is granted to copy, distribute and/or modify this document
    under the terms of the GNU Free Documentation License, Version 1.3
    or any later version published by the Free Software Foundation;
    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
    A copy of the license is included in the section entitled "GNU
    Free Documentation License".   



jueves, 14 de junio de 2012

Conversor Analogo Adigital con PIC 16F886

En una entrada anterior usamos el conversor análogo a digital del microcontrolador PIC 12f675 ( http://xorwf.blogspot.com/2012/06/conversor-analogo-digital-con-pic.html ), esta es para usar el conversor del microcontrolador PIC 16F886.
El programa mide el voltaje entregado por el potenciometro, si es menor a un voltio, activa el pin RC0 y desactiva el pin RC7, si es mayor a un voltio activa el RC7 y desactiva el RC0.


Circuito



En el caso de querer trabajar con algún sensor análogo, como una fotoresistencia, un fotodiodo(infrarojo), entre otros, simplemente cambiamos el potenciometro por el sensor que elegimos y cambiamos el valor de la comparación, que para este caso es .51 (decimal) que equivale a un voltio medido por el AD.


QR para el celular


Código fuente


LIST P=16F886

    INCLUDE P16F886.INC
ERRORLEVEL -302

    __CONFIG _CONFIG1, _INTOSCIO & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOREN_ON & _IESO_OFF & _FCMEN_OFF & _LVP_OFF & _DEBUG_OFF
    __CONFIG _CONFIG2, _BOR40V & _WRT_OFF

CBLOCK 0X20
PDel0, VALORAD
ENDC


      ORG 00
      GOTO CONFIGURA
   
RETAD  movlw     .123      ; 1 set number of repetitions
        movwf     PDel0     ; 1 |
PLoop0  clrwdt              ; 1 clear watchdog
        decfsz    PDel0, 1  ; 1 + (1) is the time over?
        goto      PLoop0    ; 2 no, loop
PDelL1  goto PDelL2         ; 2 cycles delay
PDelL2  clrwdt              ; 1 cycle delay
        return              ; 2+2 Done
   
   
CONFIGURA CLRF     PORTB
BANKSEL OSCCON
      MOVLW B'01101100'
      MOVWF OSCCON
BANKSEL ADCON1
MOVLW B'00000000' ; 7 justifica a la izq, 5 Vss ref, 4 Vdd ref
MOVWF ADCON1
BANKSEL TRISA
      MOVLW B'00000001'
      MOVWF TRISA
      MOVLW B'00000000'
      MOVWF TRISB
      MOVLW B'00000000'
      MOVWF TRISC
BANKSEL ANSEL
MOVLW B'00000001'
      MOVWF ANSEL
CLRF     ANSELH
      BANKSEL ADCON0
      MOVLW B'11000001' ;7:6 FCR clock, 5:2 canal, 1 go, 0 AD ON
      MOVWF ADCON0
      CLRF PORTC
       

INICIO   BSF ADCON0,GO
CALL RETAD
END_AD BTFSC ADCON0,GO
GOTO END_AD
MOVF ADRESH,W
MOVWF VALORAD

MOVLW .51 ;Pregunto si el valor medido por el AD es menor a 1 V
SUBWF VALORAD,W
BTFSS STATUS,C
GOTO MENOR
GOTO MAYOR

       

MAYOR BCF PORTC,0
BSF PORTC,7
GOTO INICIO


MENOR BCF PORTC,7
BSF PORTC,0  
        GOTO     INICIO
        END


Copyright 2012  edwtron
       
Este DOCUMENTO es un DOCUMENTO LIBRE, usted puede redistribuirlo y/o modificarlo bajo los terminos de la GNU FDL tal y como es publicada por la fundacion de software libre; bajo la version 1.3 de la licencia, o  una version superior.
     Leer la licencia GNU gpl para mas detalles. 

    Permission is granted to copy, distribute and/or modify this document
    under the terms of the GNU Free Documentation License, Version 1.3
    or any later version published by the Free Software Foundation;
    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
    A copy of the license is included in the section entitled "GNU
    Free Documentation License".  


sábado, 2 de junio de 2012

Contador de 0 a 9999 con pulsador

Cada vez que se pulse se incrementa una unidad y se muestra en los displays

Circuito esquematico


Código fuente




    LIST P=16F886
    INCLUDE P16F886.INC
    ERRORLEVEL -302
 ; hay que cacharrear
    __CONFIG _CONFIG1, _INTOSCIO & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOR_ON & _IESO_OFF & _FCMEN_OFF & _LVP_OFF & _DEBUG_OFF
    __CONFIG _CONFIG2, _BOR40V & _WRT_OFF
 
    CBLOCK    0X20
    PDel0, PDel1, DECENAS, UNIDADES, CENTENAS, UMIL
    ENDC



ORG 00
GOTO CONFIGURA
; hay que cacharrear
;-------------------------------------------------------------
; Code generated by PDEL  ver 1.0  on 10/13/2010 at 10:24:44 PM
; Description: Waits 10000 cycles
;-------------------------------------------------------------
RET_10MS  movlw     .8        ; 1 set number of repetitions (B)
        movwf     PDel0     ; 1 |
PLoop1  movlw     .249      ; 1 set number of repetitions (A)
        movwf     PDel1     ; 1 |
PLoop2  clrwdt              ; 1 clear watchdog
        clrwdt              ; 1 cycle delay
        decfsz    PDel1, 1  ; 1 + (1) is the time over? (A)
        goto      PLoop2    ; 2 no, loop
        decfsz    PDel0,  1 ; 1 + (1) is the time over? (B)
        goto      PLoop1    ; 2 no, loop
PDelL1  goto PDelL2         ; 2 cycles delay
PDelL2  clrwdt              ; 1 cycle delay
        return              ; 2+2 Done
     
TABLA ADDWF PCL,F
RETLW B'00111111'
RETLW B'00000110'
RETLW B'01011011'
RETLW B'01001111'
RETLW B'01100110'
RETLW B'01101101'
RETLW B'01111100'
RETLW B'00000111'
RETLW B'01111111'
RETLW B'01101111'

MOSTRAR CLRF PORTC
MOVF UNIDADES,W ;cargo el valor de las unidades
CALL TABLA
BSF PORTC,5 ;activo el display unidad
MOVWF PORTB
CALL RET_10MS
BCF PORTC,5
MOVF DECENAS,W
CALL TABLA
BSF PORTC,4
MOVWF PORTB
CALL RET_10MS
BCF PORTC,4
MOVF CENTENAS,W
CALL TABLA
BSF PORTC,3
MOVWF PORTB
CALL RET_10MS
BCF PORTC,3
MOVF UMIL,W
CALL TABLA
MOVWF PORTB
BSF PORTC,2
CALL RET_10MS
BCF PORTC,2

RETURN

VER CALL MOSTRAR
CALL MOSTRAR
CALL MOSTRAR
CALL MOSTRAR
CALL MOSTRAR
CALL MOSTRAR
CALL MOSTRAR
CALL MOSTRAR
CALL MOSTRAR
CALL MOSTRAR
CALL MOSTRAR
CALL MOSTRAR
CALL MOSTRAR ;LOGRO UN RETARDO DE 160ms
RETURN

CONFIGURA     NOP
BANKSEL    ANSEL    ;paso al banco 3
CLRF    ANSEL
CLRF    ANSELH
BANKSEL TRISB
MOVLW    B'01101100'
MOVWF    OSCCON
MOVLW    B'00000011'
MOVWF    TRISA
MOVLW    B'00000000'
MOVWF    TRISB
MOVLW    B'00000000'
MOVWF    TRISC
BANKSEL    PORTB    ;paso al banco 0
; hay que cacharrear
CLRF    PORTB
CLRF    UMIL
CLRF    CENTENAS
CLRF    DECENAS
CLRF    UNIDADES

INICIO CALL MOSTRAR
BTFSS PORTA,0
GOTO INICIO

; hay que cacharrear
CALL VER

INCF UNIDADES,F
MOVLW .10
XORWF UNIDADES,W
BTFSS STATUS,Z
GOTO INICIO


CLRF UNIDADES
INCF DECENAS,F
MOVLW .10
XORWF DECENAS,W
BTFSS STATUS,Z
GOTO INICIO

CLRF DECENAS
INCF CENTENAS,F
MOVLW .10
XORWF CENTENAS,W
BTFSS STATUS,Z
GOTO INICIO

CLRF CENTENAS
INCF UMIL,F
MOVLW .10
XORWF UMIL,W
BTFSS STATUS,Z
GOTO INICIO
CLRF UMIL
GOTO INICIO


END


Copyright 2012  edwtron
       
Este DOCUMENTO es un DOCUMENTO LIBRE, usted puede redistribuirlo y/o modificarlo bajo los terminos de la GNU FDL tal y como es publicada por la fundacion de software libre; bajo la version 1.3 de la licencia, o  una version superior.
     Leer la licencia GNU gpl para mas detalles. 

    Permission is granted to copy, distribute and/or modify this document
    under the terms of the GNU Free Documentation License, Version 1.3
    or any later version published by the Free Software Foundation;
    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
    A copy of the license is included in the section entitled "GNU
    Free Documentation License".

martes, 29 de mayo de 2012

Contador de 0 a 99 con pulsadores

El contador es de 0 a 99 usando la tecnica de la multiplexion, tiene un pulsador para la cuenta ascendente y otro para la cuenta descendente.

IMPORTANTE      recomiendo comparar este codigo con el que no tiene pulsadores.

Video de la implementacion


el circuito esquematico


y el codigo fuente

    LIST P=16F886
    INCLUDE P16F886.INC
    ERRORLEVEL -302
    
    __CONFIG _CONFIG1, _INTOSCIO & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOR_ON & _IESO_OFF & _FCMEN_OFF & _LVP_OFF & _DEBUG_OFF
    __CONFIG _CONFIG2, _BOR40V & _WRT_OFF
    
    CBLOCK    0X20
    PDel0, PDel1, DECENAS, UNIDADES
    ENDC
    


    ORG    00
    GOTO    CONFIGURA


RET_10MS  movlw     .8        ; 1 set number of repetitions (B)
        movwf     PDel0     ; 1 |
PLoop1  movlw     .249      ; 1 set number of repetitions (A)
        movwf     PDel1     ; 1 |
PLoop2  clrwdt              ; 1 clear watchdog
        clrwdt              ; 1 cycle delay
        decfsz    PDel1, 1  ; 1 + (1) is the time over? (A)
        goto      PLoop2    ; 2 no, loop
        decfsz    PDel0,  1 ; 1 + (1) is the time over? (B)
        goto      PLoop1    ; 2 no, loop
PDelL1  goto PDelL2         ; 2 cycles delay
PDelL2  clrwdt              ; 1 cycle delay
        return              ; 2+2 Done

        
TABLA    ADDWF    PCL,F
    RETLW    B'00111111'
    RETLW    B'00000110'
    RETLW    B'01011011'
    RETLW    B'01001111'
    RETLW    B'01100110'
    RETLW    B'01101101'
    RETLW    B'01111100'
    RETLW    B'00000111'
    RETLW    B'01111111'
    RETLW    B'01101111'
    
MOSTRAR    MOVF    UNIDADES,W    ;cargo el valor de las unidades
    CALL    TABLA
    BSF    PORTC,5    ;activo el display unidad
    BCF    PORTC,4    ;desactivo el display decena
    MOVWF    PORTB
    CALL    RET_10MS
    MOVF    DECENAS,W    ;cargo el valor de las decenas
    CALL    TABLA
    BCF    PORTC,5    ;desactivo el display unidad
    BSF    PORTC,4    ;activo el display decena
    MOVWF    PORTB
    CALL    RET_10MS
    RETURN
    
VER    CALL    MOSTRAR
    CALL    MOSTRAR
    CALL    MOSTRAR
    CALL    MOSTRAR
    CALL    MOSTRAR
    CALL    MOSTRAR
    CALL    MOSTRAR
    CALL    MOSTRAR    ;LOGRO UN RETARDO DE 160ms
    RETURN
    
CONFIGURA     NOP
BANKSEL    ANSEL    ;paso al banco 3
CLRF    ANSEL
CLRF    ANSELH
BANKSEL TRISB
MOVLW    B'01101100'
MOVWF    OSCCON
MOVLW    B'00000011'
MOVWF    TRISA
MOVLW    B'00000000'
MOVWF    TRISB
MOVLW    B'00000000'
MOVWF    TRISC
BANKSEL    PORTB    ;paso al banco 0
CLRF    PORTB
CLRF    DECENAS
CLRF    UNIDADES

INICIO   CALL MOSTRAR
BTFSC PORTA,0
GOTO UP
BTFSC PORTA,1
GOTO DOWN
GOTO INICIO 



UP CALL     VER    
INCF     UNIDADES,F
MOVLW     .10
XORWF     UNIDADES,W
BTFSC     STATUS,Z
GOTO     INC_DECENAS
CALL     MOSTRAR
GOTO     INICIO
    
INC_DECENAS     CLRF     UNIDADES
    INCF     DECENAS,F
    MOVLW     .10
    XORWF     DECENAS,W
    BTFSC     STATUS,Z
    CLRF     DECENAS
    CALL     MOSTRAR
    GOTO     INICIO
   
DOWN CALL     VER    
DECF     UNIDADES,F
MOVLW     .255
XORWF     UNIDADES,W
BTFSC     STATUS,Z
GOTO     DEC_DECENAS
CALL MOSTRAR
GOTO     INICIO
    
DEC_DECENAS     MOVLW .9
MOVWF UNIDADES
    DECF     DECENAS,F
    MOVLW     .255
    XORWF     DECENAS,W
    BTFSS     STATUS,Z
    GOTO INICIO
    MOVLW .9
    MOVWF DECENAS
    CALL MOSTRAR
    GOTO     INICIO
        
    END



Copyright 2012 edwtron
       
Este DOCUMENTO es un DOCUMENTO LIBRE, usted puede redistribuirlo y/o modificarlo bajo los terminos de la GNU FDL tal y como es publicada por la fundacion de software libre; bajo la version 1.3 de la licencia, o  una version superior.
     Leer la licencia GNU gpl para mas detalles. 

    Permission is granted to copy, distribute and/or modify this document
    under the terms of the GNU Free Documentation License, Version 1.3
    or any later version published by the Free Software Foundation;
    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
    A copy of the license is included in the section entitled "GNU
    Free Documentation License".

miércoles, 13 de octubre de 2010

plantilla para pic de 8 pines el P12F629

Plantilla para un PIC que solo tiene 8 pines de los cuales podemos usar 6 pines, entre las diferencias con los pics que estamos acostumbrados a manejar es que el puerto es llamado GPIO y el para entradas o salidas digitales es el TRISIO. Como tiene comparadores, hay que configurar sl CMCON para que los pines finciones como digitales. Solo tiene dos bancos de memoria, es un PIC relativamente muy facil de usar.


LIST P=12F629
INCLUDE P12F629.INC
ERRORLEVEL -302
__CONFIG _CPD_OFF & _CP_OFF & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
CBLOCK 0X20
;espacio para la declaracion de variables
ENDC
ORG 00
GOTO CONFIGURA

;espacio para las subrrutinas

CONFIGURA NOP
CLRF GPIO
MOVLW B'00000111' ; 07H Configuro GP1, GP2, GP3 como pines 
MOVWF CMCON ; digitales
BANKSEL OSCCAL ;para calibrar el oscilador interno
CALL 3FFH ; Obtengo el valor de calibracion del oscilador
MOVWF OSCCAL
CLRF TRISIO
BANKSEL GPIO
;Programa principal
CICLO



GOTO CICLO
END

Plantilla para programar con el 16f883

Esta es una plantilla para trabajar con el PIC 16F883 (y toda su familia), tiene diferencias con los viejos P16F873A (y su familia) en los bits de configuración, y que ya los pines digitales y análogos no se configuran en el ADCON1, ya se configuran en el ANSEL (para el porta) y ANSELH (para el portb), y se diferencia del P16F88 en que el ANSEL esta en el banco 1 de memoria, mientras que en el P16F883 están en el banco 3 de memoria.
Hay que tener en cuenta que tienes mas diferencias, como que el P16F883 tiene oscilador interno, entre otras,  pero como siempre digo, "Hay que leer el manual".

LIST P=16F883
INCLUDE P16F883.INC
ERRORLEVEL -302

__CONFIG _CONFIG1, _DEBUG_OFF & _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC
__CONFIG _CONFIG2, _WRT_OFF

CBLOCK 0X20

ENDC



ORG 00
GOTO CONFIGURA

;LUGAR PARA SUBRRUTINAS

CONFIGURA NOP
BANKSEL ANSEL ;paso al banco 3
CLRF ANSEL ;Configura el porta como digital
CLRF ANSELH ;Configura el portb como digital
BANKSEL TRISB ;paso al banco 1
CLRF ANSEL
MOVLW 0X00
MOVWF TRISA
MOVLW 0X00
MOVWF TRISB
 MOVLW 0X00
 MOVWF TRISC
BANKSEL PORTB ;paso al banco 0

;PROGRAMA PRINCIPAL
CICLO


GOTO CICLO


END

viernes, 13 de agosto de 2010

Fusibles de configuracion "Bit's de configuracion" de los PIC's

Los bit's de configuracion o mas comunmente llamados "fusibles" permiten confugurar ciertas funciones en los microcontroladores PIC, como el tipo de cristal para el oscilador, permiten proteger el codigo en el micro, entre muchas funciones. La cantidad de funciones que se pueden configurar con los fusibles dependen del microcontrolador, si tenemos en el 16F84A  4 funciones, en el 16F88 son alrededor de 13 funciones.

Bueno y para que sirven?
Como lo dije antes son para configurar algunas funciones del micro, como el tipo de oscilador, la proteccion de codigo, habilitar el perro guardian ( por que si no este los muerde), habilitar el reset maestro, habilitar un reset inicial, habilitar reset por bajo voltage en la fuente, y otros que como les dije depende del micro usado.

Ahhh y cuando se usan??
En el momento en que se quiere programar el micro se le deben configurar los fusibles ( esto es usando un software como el WINPIC800,  me parece necesario agradecer a los creadores de este software quienes nos permiten descargarlo y usarlo sin ningun problema, www.winpic800.com,  GRACIAS!!!!!!) y si estamos usando alguno de los programadores de MICROCHIP como el pickit2 o el pickit3 debemos escribir la configuracion de estos fusibles en la cabecera de nuestro fuente antes de compilar.

Como se que fusibles usa  mi pequeño monstruo?
Como siempre digo "pues en el manual del micro", jeje suena obvio, y los podes obtener del fichero que incluimos en la cabecera del fuente,  el  P16F88.INC por ejemplo, que se encuentra en la carpeta "MPASM suite" que esta dentro de la carpeta "microchip" donde instalamos el MPLAB, ojo que el nombre del fichero depende del micro.

De los ficheros antes mencionados obtube lo siguiente:

Para el 16F84A


_CP_ON                       EQU     H'000F'
_CP_OFF                      EQU     H'3FFF'
_PWRTE_ON                    EQU     H'3FF7'
_PWRTE_OFF                   EQU     H'3FFF'
_WDT_ON                      EQU     H'3FFF'
_WDT_OFF                     EQU     H'3FFB'
_LP_OSC                      EQU     H'3FFC'
_XT_OSC                      EQU     H'3FFD'
_HS_OSC                      EQU     H'3FFE'
_RC_OSC                      EQU     H'3FFF'

de donde se arma nuestra palabra de configuracion anteponiendo la directiva  "__CONFIG"

__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF &  _XT_OSC

Que es lo que debemos poner en la cabecera del fuente.

Aqui va la del 16F88


_CONFIG1               EQU     H'2007'
_CONFIG2                EQU     H'2008'

;Configuration Byte 1 Options
_CP_ALL                               EQU     H'1FFF'
_CP_OFF                              EQU     H'3FFF'
_CCP1_RB0                              EQU     H'3FFF'
_CCP1_RB3                              EQU     H'2FFF'
_DEBUG_OFF                              EQU     H'3FFF'
_DEBUG_ON                               EQU     H'37FF'
_WRT_PROTECT_OFF               EQU     H'3FFF' ;No program memory write protection
_WRT_PROTECT_256               EQU     H'3DFF' ;First 256 program memory protected
_WRT_PROTECT_2048            EQU     H'3BFF' ;First 2048 program memory protected
_WRT_PROTECT_ALL             EQU     H'39FF' ;All of program memory protected
_CPD_ON                               EQU     H'3EFF'
_CPD_OFF                               EQU     H'3FFF'
_LVP_ON                              EQU     H'3FFF'
_LVP_OFF                              EQU     H'3F7F'
_BODEN_ON                               EQU     H'3FFF'
_BODEN_OFF                              EQU     H'3FBF'
_MCLR_ON                              EQU     H'3FFF'
_MCLR_OFF                              EQU     H'3FDF'
_PWRTE_OFF                              EQU     H'3FFF'
_PWRTE_ON                               EQU     H'3FF7'
_WDT_ON                              EQU     H'3FFF'
_WDT_OFF                              EQU     H'3FFB'
_EXTRC_CLKOUT                 EQU     H'3FFF'
_EXTRC_IO               EQU     H'3FFE'
_INTRC_CLKOUT               EQU     H'3FFD'
_INTRC_IO                              EQU     H'3FFC'
_EXTCLK                               EQU     H'3FEF'
_HS_OSC                              EQU     H'3FEE'
_XT_OSC                                EQU     H'3FED'
_LP_OSC                               EQU     H'3FEC'

;Configuration Byte 2 Options
_IESO_ON                               EQU     H'3FFF'
_IESO_OFF                               EQU     H'3FFD'
_FCMEN_ON                               EQU     H'3FFF'
_FCMEN_OFF                              EQU     H'3FFE'



y la palabra seria algo como esto:

__CONFIG    _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_ON & _MCLR_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC

;Program Configuration Register 2
__CONFIG    _CONFIG2, _IESO_OFF & _FCMEN_OFF


Si necesitan de otro micro la pueden consultar el el fichero del micro como les comente antes, ahhh  bueno pues!!!!  me pueden escribir yo se las pongo aqui.