You are on page 1of 8

Bits de configuración de los microcontroladores PIC - TecMikro http://programarpicenc.com/articulos/bits-de-configuracion-de-los-micr...

Programación de microcontroladores PIC en mikroC PRO


Email: tecmikro@gmail.com Cel. 098 743 8877 Telf. 243 0352 Quito-Ecuador

Buscar

Bits de configuración de los


microcontroladores PIC

A continuación se detalla la configuración básica de los microcontroladores PIC16F84A,


16F628A, 16F88, 16F877A, 16F887, 18F2550 y 18F4550 tal como se realiza en el compilador
mikroC PRO (http://programarpicenc.com/) for PIC. Estas configuraciones garantizan el
funcionamiento correcto cuando se trabaja con los puertos digitales. Como se puede ver, a
medida que se incrementan las prestaciones de los microcontroladores PIC, también se
incrementa el número de bits de configuración, y para su establecimiento correcto es
imprescindible el estudio detallado de la hoja de especificaciones (datasheet). La importancia
de los bits de configuración es vital, pues el proyecto jamás entrará en
funcionamiento si se pasa por alto este requisito. Este artículo tiene el propósito de servir
como guía para aquellas personas que están comenzando sus estudios y prácticas con los
microcontroladores PIC, y no pretende hacer un estudio pormenorizado de cada uno de los bits
de configuración. Si el usuario desea realizar otra configuración para el trabajo con los módulos
internos del PIC, deberá revisar la hoja de especificaciones correspondiente. La configuración
está realizada para que los microcontroladores PIC trabajen con su oscilador interno en caso de
que venga incorporado (se exceptúa el PIC18F2550/4550 que aunque incluye oscilador interno se
ha configurado para el oscilador externo).
Se indica el valor hexadecimal resultante que deben tener las palabras de configuración para que
el usuario pueda verificar sus configuraciones en otros compiladores donde el formato puede ser
diferente. También se añade un ejemplo para el encendido intermitente de un LED. Debe
observarse que la configuración de los puertos de los microcontroladores PIC tiene
que completarse con la programación de uno o varios registros adicionales para
hacer que ciertos pines trabajen como E/S (Entrada/Salida) digital (resaltado en
amarillo) ya que inicialmente esos pines cumplen otras funciones. Adicionalmente se ha puesto
un enlace para la descarga del código de máquina (hex) de cada ejemplo, obtenido con el
compilador mikroC PRO for PIC con la configuración indicada. El lector puede emplear este
código ejecutable para comprobar el funcionamiento del PIC respectivo.

1 de 8 23/02/2016 11:52 p. m.
Bits de configuración de los microcontroladores PIC - TecMikro http://programarpicenc.com/articulos/bits-de-configuracion-de-los-micr...

Bits de Configuración del PIC16F84A (no


incluye oscilador interno)
Oscilador externo 4MHz
CONFIG1: 0x3FF2
--------------------------------------------------------------------------------------
Oscillator: HS
Watchdog Timer: Off
Power Up Timer: On
Code Protect: Off

//EncenderLED.c
void main() {
TRISB1_bit=0; //RB1 como salida.
while(1){ //Lazo infinito (repite continuamente).
RB1_bit=1; //RB1 encendido.
Delay_ms(500); //Pausa de 500ms.
RB1_bit=0; //RB1 apagado.
Delay_ms(500); //Pausa de 500ms.
}
}

Código hex (http://programarpicenc.com/data/uploads/files/EncenderLED-


PIC16F84A.hex)

Bits de Configuración del PIC16F628A


Oscilador interno 4MHz (por defecto)
CONFIG1: 0x2150
--------------------------------------------------------------------------------------
Oscillator: INTOSC: I/O on RA6/OSC2, I/O on RA7/OSC1
Watchdog Timer: Off
Power Up Timer: Enabled
Master Clear Enable: Disabled
Brown Out Detect: Enabled
Low Voltage Program: Disabled
Data EE Read Protect: Disabled
Code Protect: Off

2 de 8 23/02/2016 11:52 p. m.
Bits de configuración de los microcontroladores PIC - TecMikro http://programarpicenc.com/articulos/bits-de-configuracion-de-los-micr...

//EncenderLED.c
void main(){
CMCON=0x07; //Pines RA<3:0> como E/S digital.
PORTA=0x00; //Estado inicial del puerto A (ejemplo).
TRISA=0x00; //Puerto A como salida.
while (1)
{
RA0_bit=1; //Encender LED conectado en RA0.
Delay_ms(500);
RA0_bit=0; //Apagar LED conectado en RA0.
Delay_ms(500);
}
}

Código hex (http://programarpicenc.com/data/uploads/files/EncenderLED-


PIC16F628A.hex)

Bits de Configuración del PIC16F88


Oscilador interno 4MHz
CONFIG1: 0x3F50
CONFIG2: 0x3FFC
--------------------------------------------------------------------------------------
Oscillator: INTRC-OSC2 as RA6
Watchdog Timer: Off
Power Up Timer: Enabled
RA5/MCLR Pin Function Select: RA5
Brown Out Detect: Enabled
Low Voltage Program: Disabled
Data EE Read Protect: Disabled
Flash Program Write: Write Protect Off
Background Debug: Disabled
CCP1 Mux: RB0
Code Protect: Off
Fail-Safe Clock Monitor: Disabled
Internal External Switch Over: Disabled

3 de 8 23/02/2016 11:52 p. m.
Bits de configuración de los microcontroladores PIC - TecMikro http://programarpicenc.com/articulos/bits-de-configuracion-de-los-micr...

//EncenderLED.c
void main(){
OSCCON=0x60; //Oscilador interno a 4MHz (ejemplo).
ANSEL=0x00; //Pines AN<6:0> como E/S digital.
PORTA=0x00; //Estado inicial del puerto A (ejemplo).
TRISA=0x00; //Puerto A como salida.
while (1)
{
RA0_bit=1; //Encender LED conectado en RA0.
Delay_ms(500);
RA0_bit=0; //Apagar LED conectado en RA0.
Delay_ms(500);
}
}

Código hex (http://programarpicenc.com/data/uploads/files/EncenderLED-


PIC16F88.hex)

Bits de Configuración del PIC16F877A (no


incluye oscilador interno)
Oscilador externo 4MHz
CONFIG1: 0x2F42
--------------------------------------------------------------------------------------
Oscillator: HS
Watchdog Timer: Off
Power Up Timer: On
Brown Out Detect: On
Low Voltage Program: Disabled
Data EE Read Protect: Off
Flash Program Write: Write Protect Off
Background Debug: Disabled
Code Protect: Off

//EncenderLED.c
void main(){
ADCON1=0x06; //Pines RA<5:0> y RE<2:0> como E/S digital.
PORTA=0x00; //Estado inicial del puerto A (ejemplo).
TRISA=0x00; //Puerto A como salida.
while (1)
{
RA0_bit=1; //Encender LED conectado en RA0.
Delay_ms(500);
RA0_bit=0; //Apagar LED conectado en RA0.
Delay_ms(500);
}
}

Código hex (http://programarpicenc.com/data/uploads/files/EncenderLED-


PIC16F877A.hex)

4 de 8 23/02/2016 11:52 p. m.
Bits de configuración de los microcontroladores PIC - TecMikro http://programarpicenc.com/articulos/bits-de-configuracion-de-los-micr...

Bits de Configuración del PIC16F887


Oscilador interno 4MHz (por defecto)
CONFIG1: 0x23C4
CONFIG2: 0x0700
--------------------------------------------------------------------------------------
Oscillator: INTOSCIO: I/O on RA6/OSC2 and RA7/OSC1
Watchdog Timer: Disabled
Power Up Timer: Enabled
Master Clear Enable: RE3/MCLR is digital input, MCLR internally tied to VDD
Code Protect: Off
Data EE Read Protect: Disabled
Brown Out Reset Selection: Bor enabled
Internal External Switch Over: Disabled
Monitor Clock Fail-Safe: Disabled
Low Voltage Program: RB3 is digital I/O, HV on MCLR must be used for programming
Background Debug: In-Circuit Debugger disabled, RB6 and RB7 are general purpose I/O pins.
Brown Out Reset Selection Bit: Brown Out Reset set to 4.0V
Flash Program Self Write: Write Protect Off

//EncenderLED.c
void main(){
SCS_bit=1; //Usar el oscilador interno.
ANSEL=0x00; //Pines AN<4:0> como E/S digital.
ANSELH=0x00; //Pines AN<13:8> como E/S digital.
PORTA=0b01111100; //Inicialización del puerto A (ejemplo).
TRISA=0b01111100; //Pines RA7 y RA<1,0> como salidas (ejemplo)

while (1){
RA0_bit=1; //Encender LED conectado en RA0.
Delay_ms(500);
RA0_bit=0; //Apagar LED conectado en RA0.
Delay_ms(500);
}
}
}

Código hex (http://programarpicenc.com/data/uploads/files/EncenderLED-


PIC16F887.hex)

Bits de Configuración del PIC18F2550-4550


(incluye oscilador interno, configurado para el oscilador externo)
Oscilador externo 8MHz
CONFIG1L: 0x0000
CONFIG1H: 0x000E
CONFIG2L: 0x001F
CONFIG2H: 0x001E
CONFIG3H: 0x0001

5 de 8 23/02/2016 11:52 p. m.
Bits de configuración de los microcontroladores PIC - TecMikro http://programarpicenc.com/articulos/bits-de-configuracion-de-los-micr...

CONFIG4L: 0x0081
CONFIG5L: 0x000F
CONFIG5H: 0x00C0
CONFIG6L: 0x000F
CONFIG6H: 0x00E0
CONFIG7L: 0x000F
CONFIG7H: 0x0040
--------------------------------------------------------------------------------------
96MHz PLL Prescaler: Divide by 2 (8MHz input)
CPU System Clock Postscaler: [OSC1/OSC2 Src:/1][96MHz PLL Src:/2]
Full Speed USB Clock Source Selection: Clock src from 96MHz PLL/2
Oscillator: HS:HS+PLL, USB-HS
Fail-Safe Clock Monitor Enable: Disabled
Internal External Switch Over: Disabled
Power Up Timer: Enabled
Brown Out Detect: Enabled in hardware, SBOREN disabled
Brown Out Voltage: 4.2V
USB Voltage Regulator: Enabled
Watchdog Timer: Disabled-Controlled by SWDTEN bit
Watchdog Postscaler: 1:32768
CCP2 Mux: RC1
PortB A/D Enable: PORTB <4:0> configured as digital I/O on reset
Low Power Timer1 Osc Enable: Disabled
Master Clear Enable: MCLR disabled, RE3 enabled
Stack Overflow Reset: Enabled
(El resto de opciones se deja Disabled)

//EncenderLED.c
void main(){
PORTB=0x00; //Estado inicial del puerto B (ejemplo).
TRISB=0x00; //Puerto B como salida.
while (1){
RB0_bit=1; //Encender LED conectado en RB0.
Delay_ms(500);
RB0_bit=0; //Apagar LED conectado en RB0.
Delay_ms(500);
}
}

Código hex (http://programarpicenc.com/data/uploads/files/EncenderLED-


PIC18F2550-4550.hex) (PIC18F2550)

Anuncios Google

► Microcontroladores Pic
► Pic Programming
► Pic 16f877

Curso presencial de Programación de microcontroladores PIC en

6 de 8 23/02/2016 11:52 p. m.
Bits de configuración de los microcontroladores PIC - TecMikro http://programarpicenc.com/articulos/bits-de-configuracion-de-los-micr...

lenguaje C (mikroC)
Próximamente en nuestras instalaciones en Quito-Ecuador

(http://programarpicenc.com/cursos-presenciales/)
Ver detalles... (http://programarpicenc.com/cursos-presenciales/)

Libro / eBook PDF "Cómo programar microcontroladores PIC"


Guía básica para programar microcontroladores PIC en mikroC PRO. Disponible en edición
impresa y en formato PDF. A la venta para toda América y España.

(http://programarpicenc.com/libro-ebook-de-mikroc-pro-for-pic-en-espanol/)
¡Cómpralo ya! (http://programarpicenc.com/libro-ebook-de-mikroc-pro-for-pic-en-
espanol/)

7 de 8 23/02/2016 11:52 p. m.
Bits de configuración de los microcontroladores PIC - TecMikro http://programarpicenc.com/articulos/bits-de-configuracion-de-los-micr...

TecMikro © 2009-2016 Dirección: Av. 10 de Agosto N34-130 y Atahualpa. Frente a la


parada norte El Florón del Trolebús. Quito-Ecuador

8 de 8 23/02/2016 11:52 p. m.

You might also like