You are on page 1of 9

Pontificia Universidad Catlica de Chile

Escuela de Ingeniera
Departamento de Ingeniera Elctrica

Manual de Referencia
del Microcontrolador
PIC16F84A

Copyright 2005 Sebastin Montabone, Sergio Navarro.


2001 Microchip Technology Inc.

PIC16F84A

Tabla de Contenidos
1. CARACTERSTICAS GENERALES DEL PIC16F84A............................................................................... 3
2. ORGANIZACIN DE LA MEMORIA DEL PIC16F84A............................................................................ 4
3. REGISTROS ESPECIALES .......................................................................................................................... 5
3.1. REGISTRO STATUS ................................................................................................................................ 5
3.2. REGISTRO OPTION_REG....................................................................................................................... 6
3.3. REGISTRO INTCON ................................................................................................................................ 6
3.4. PUERTOS DE ENTRADA Y SALIDA ............................................................................................................ 7
3.4.1. Configuracin de Puertos: Registros TRISA y TRISB ................................................................... 7
3.4.2. Registros PORTA y PORTB........................................................................................................... 7
4. INSTRUCCIONES MS USADAS .............................................................................................................. 8
4.1. BCF F,B .................................................................................................................................................. 8
4.2. BSF F,B................................................................................................................................................... 8
4.3. BTFSC F,B ............................................................................................................................................. 8
4.4. BTFSS F,B .............................................................................................................................................. 8
4.5. CALL K .................................................................................................................................................. 8
4.6. RETURN ................................................................................................................................................ 8
4.7. RETFIE................................................................................................................................................... 8
4.8. GOTO K.................................................................................................................................................. 8
4.9. MOVLW A ............................................................................................................................................. 8
4.10. MOVWF F ............................................................................................................................................ 8
4.11. ADDLW A............................................................................................................................................ 8
4.12. ADDWF F,D......................................................................................................................................... 9
4.13. SUBLW A............................................................................................................................................. 9
4.14. SUBWF F,D.......................................................................................................................................... 9
4.15. DECFSZ F ............................................................................................................................................ 9
4.16. ADDFSZ F............................................................................................................................................ 9

Copyright 2005 Sebastin Montabone, Sergio Navarro.


2001 Microchip Technology Inc.

Pgina 2

PIC16F84A

1. Caractersticas Generales del PIC16F84A


El microcontrolador PIC16F84A posee 18 pines, de los cuales 13 son usados para
Entrada/Salida. Adems, cuenta con un Timer/Contador interno y 4 fuentes de
interrupcin a la CPU. En la Figura 1 se presenta un diagrama con su apariencia
externa. Cada uno de los pines que lo componen se describen a continuacin.

Figura 1: Diagrama de pines del PIC16F84A.

Pin
RA0, RA1,
RA2, RA3,
RA4/T0CKI
RB0/INT,
RB1, RB2,
RB3, RB4,
RB5, RB6,
RB7
VSS
VDD
_____
MCLR
OSC1/CLKIN
OSC2/CKOUT

Descripcin
Pines correspondientes al Puerto A (PORTA). Pueden ser escritos o ledos (toman
valores 1 0). Cada uno de estos pines debe ser configurado como entrada o salida
mediante el registro TRISA. En particular, el pin RA4/T0CKI puede funcionar como
Entrada/Salida al igual que los otros o como Entrada de un Clock Externo para el
Timer/Contador
Pines correspondientes al Puerto B (PORTB). Pueden ser escritos o ledos (toman
valores 1 0). Cada uno de estos pines debe ser configurado como entrada o salida
mediante el registro TRISB. En particular, el pin RB0/INT puede funcionar como
Entrada/Salida al igual que los otros o como Entrada de Interrupcin Externa.
Tierra del circuito (debe ser conectado a 0 Volts).
Alimentacin positiva del circuito (debe ser conectado a +5 Volts).
Pin de RESET. En estado normal se debe poner en 1 (+5 Volts), y el RESET se activa
conectndolo a 0 Volts.
Entrada del oscilador externo.
Salida del oscilador externo.

Copyright 2005 Sebastin Montabone, Sergio Navarro.


2001 Microchip Technology Inc.

Pgina 3

PIC16F84A

2. Organizacin de la Memoria del PIC16F84A


La memoria del PIC16F84A se divide en dos reas principales: La primera es la de
Registros Especiales, que nos sirven para configurar el dispositivo (entradas y salidas,
interrupciones, timer/contador, etc...) y obtener informacin sobre su estado actual
(resultados de operaciones lgicas, Interrupciones, lectura de entradas y escritura de
salidas, etc...). La segunda es la de Registros de Uso General, que consiste en 68
registros (de 8 bits cada uno), los cuales podemos utilizar para lo que estimemos
necesario. En la Figura 2 podemos ver esta divisin junto con el nombre de los
registros especiales y sus direcciones en hexadecimal.

Figura 2: Organizacin de la memoria del PIC16F84A.

Copyright 2005 Sebastin Montabone, Sergio Navarro.


2001 Microchip Technology Inc.

Pgina 4

PIC16F84A
Adems de la divisin previamente mencionada, se puede apreciar que los registros
se encuentran separados en dos grupos, BANK0 y BANK1 (Bancos). Para acceder a los
distintos registros se debe seleccionar previamente el Banco correspondiente. Para
hacer esto, utilizaremos el registro STATUS que se detalla a continuacin.

3. Registros Especiales
Todos los registros que usaremos poseen 8 bits. En general, ocuparemos la siguiente
convencin al referirnos a los bits de los registros:

Bit 7

Bit 6

Bit 5

Bit 4

Bit 3

Bit 2

Bit 1

Bit 0

3.1. Registro STATUS


Este registro contiene los bits necesarios para el cambio de banco, y otros que nos
entregan informacin sobre el estado del microcontrolador. Se puede acceder a este
registro desde el Banco 1 y desde el Banco2 indistintamente. A continuacin se muestra
un cuadro resumen de estos bits.
Bits 7 y 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0

No se usan. Mantenerlos en 0.
Bank Select.
1 : Selecciona BANK1.
0 : Selecciona BANK0.
Time-out bit.
No es de uso frecuente. Para obtener informacin sobre ste, consultar el
Datasheet.
Power-down bit.
No es de uso frecuente. Para obtener informacin sobre ste, consultar el
Datasheet.
Zero-bit.
1 : La ltima operacin dio como resultado un cero.
0 : La ltima operacin no dio como resultado un cero.
DC. Digit Carry Borrow.
No es de uso frecuente. Para obtener informacin sobre ste, consultar el
Datasheet.
C. Carry Borrow Bit.
1 : Hubo un carry desde el bit ms significativo.
0 : No hubo un carry desde el bit ms significativo.

Copyright 2005 Sebastin Montabone, Sergio Navarro.


2001 Microchip Technology Inc.

Pgina 5

PIC16F84A
3.2. Registro OPTION_REG
A grandes rasgos, este registro contiene los bits necesarios para configurar el
Timer/Contador (Timer0). Se accede a este registro desde el Banco 1. A continuacin
se muestra un cuadro resumen de estos bits.
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3

Bits 2, 1 y
0

PORTB Pull-up Enable.


No es de uso frecuente. Para obtener informacin sobre ste, consultar el
Datasheet.
INTEDG. Interrupt Edge Select Bit.
No es de uso frecuente. Para obtener informacin sobre ste, consultar el
Datasheet.
T0CS. Timer0 Source Clock Select. Mantener en 0 para uso normal.
T0SE. Timer0 Source Edge Select.
No es de uso frecuente. Para obtener informacin sobre ste, consultar el
Datasheet.
PSA. Prescaler Assignment
1 : El prescaler se asigna al WatchDog Timer. En este caso el Timer0
queda con escala 1:1 (incrementndose a 1 MHz).
0 : El prescaler se asigna al Timer0.
PS2-PS1-PS0. Prescaler Rate Select Bits. Ver la tabla en la pgina 9 del
Datasheet.

3.3. Registro INTCON


Este registro contiene los bits necesarios para configurar las interrupciones, y para
obtener informacin acerca de stas. Se puede acceder a este registro desde ambos
bancos. A continuacin se muestra un cuadro resumen de estos bits.
Bit 7
Bit 6
Bit 5

GIE. Global Interrupt Enable.


1 : Habilita todas las interrupciones seleccionadas en los bits 6, 5, 4 y 3.
0 : Deshabilita todas las interrupciones.
EEIE. EE Write Complete Interrupt.
No es de uso frecuente. Para obtener informacin sobre ste, consultar el
Datasheet.
T0IE. Timer0 Overflow Interrupt.
Ocurre cuando el Timer0 pasa de 255 a 0
1 : Habilita la interrupcin de Timer0.
0 : Deshabilita la interrupcin de Timer0.

Copyright 2005 Sebastin Montabone, Sergio Navarro.


2001 Microchip Technology Inc.

Pgina 6

PIC16F84A

Bit 4
Bit 3

Bit 2

Bit 1

Bit 0

INTE. RB0/INT External Interrupt.


1 : Habilita la interrupcin de RB0/INT.
0 : Deshabilita la interrupcin de RB0/INT.
RBIE. RB Port Change Interrupt.
1 : Habilita la interrupcin de cambio de valor de pines 4 al 7 de PORTB.
0 : Deshabilita la interrupcin de cambio de valor de pines 4 al 7 de
PORTB.
T0IF. Timer0 Overflow Interrupt Flag.
Indicador de ocurrencia de interrupcin del Timer0.
Se debe borrar por software.
1 : Ocurri una interrupcin de Timer0.
0 : No ha ocurrido una interrupcin de Timer0.
INTF. RB0/INT External Interrupt Flag.
Indicador de ocurrencia de interrupcin del pin RB0.
Se debe borrar por software.
1 : Ocurri una interrupcin de RB0/INT.
0 : No ha ocurrido una interrupcin de RB0/INT.
RBIF. RB Port Change Interrupt Flag.
Indicador de ocurrencia de interrupcin de los pines de RB4 a RB7.
Se produce por el cambio de estado de cualquiera de estos pines, sin
importar si estn en 1 o 0.
Se debe borrar por software.
1 : Al menos un pin entre RB4, RB5, RB6 y RB7 cambi de valor.
0 : No ha ocurrido una interrupcin de PORTB Change.

3.4. Puertos de Entrada y Salida


3.4.1. Configuracin de Puertos: Registros TRISA y TRISB

Para poder utilizar los puertos PORTA y PORTB, se deben especificar los pines
que se utilizarn como entradas y salidas. Para ello debemos acceder a los registros
TRISA y TRISB, que se encuentran en el Banco 1. Se debe escribir un 0 para las
salidas y un 1 para las entradas en las posiciones respectivas de cada uno.
3.4.2. Registros PORTA y PORTB

Los registros PORTA y PORTB se encuentran en el Banco 0. El Puerto A posee 5


pines (RA0 RA4), los cuales pueden ser escritos o ledos segn corresponda (si es
entrada se lee, si es salida se escribe). El Puerto B posee 8 pines (RB0 RB7), los
cuales pueden ser ledos o escritos segn corresponda.

Copyright 2005 Sebastin Montabone, Sergio Navarro.


2001 Microchip Technology Inc.

Pgina 7

PIC16F84A

4. Instrucciones ms usadas
A continuacin se presentan las instrucciones ms frecuentemente usadas en los
programas. Se recomienda revisar el datasheet si se requieren ms instrucciones o se
desean ver ms detalles.
4.1. BCF F,B
Escribe un 0 en el bit B del registro F.
4.2. BSF F,B
Escribe un 1 en el bit B del registro F.
4.3. BTFSC F,B
Lee el bit B del registro F. Si B est en 0, se salta la siguiente lnea de cdigo.
Si B est en 1, no hace nada extra y contina ejecutando la siguiente lnea.
4.4. BTFSS F,B
Lee el bit B del registro F. Si B est en 1, se salta la siguiente lnea de cdigo.
Si B est en 0, no hace nada extra y contina ejecutando la siguiente lnea.
4.5. CALL K
Llama a una subrutina(etiqueta) con el nombre K. (requiere un RETURN al final de
la subrutina).
4.6. RETURN
Retorna desde una subrutina.
4.7. RETFIE
Retorna desde una interrupcin.
4.8. GOTO K
El programa salta a la etiqueta con el nombre K. No se debe poner RETURN en este
caso.
4.9. MOVLW A
Se carga el registro W(Working Register) con el contenido del literal A (un nmero
escrito en cualquier formato, ya sea decimal, hexadecimal o binario)
4.10. MOVWF F
Copia el contenido del registro W al registro F
4.11. ADDLW A
Sumar W con un nmero A. El resultado queda en W.

Copyright 2005 Sebastin Montabone, Sergio Navarro.


2001 Microchip Technology Inc.

Pgina 8

PIC16F84A
4.12. ADDWF F,D
Sumar W con F.
Esta instruccin suma el contenido de un registro especfico F al contenido del
registro W donde F puede ser un registro cualquiera con un determinado valor. Si D =
1, el resultado se graba en F, si es 0, se graba en W
4.13. SUBLW A
Resta W de A.
Resta el contenido del registro W de un literal A, el resultado queda en W.
4.14. SUBWF F,D
Resta W de F.
Resta el contenido del registro W del registro F. Si D = 1, el resultado se graba en F,
si es 0, se graba en W
4.15. DECFSZ F
Decrementa el registro F en 1, salta la siguiente lnea si el resultado de eso es cero.
4.16. INCFSZ F
Aumenta el registro F en 1, salta la siguiente lnea si el resultado de eso es cero.
(overflow).

Copyright 2005 Sebastin Montabone, Sergio Navarro.


2001 Microchip Technology Inc.

Pgina 9

You might also like