Está en la página 1de 7

Microcontrolador PIC16F84

Un microcontrolador es un circuito integrado programable que contiene todos los componentes


necesarios para controlar el funcionamiento de una tarea determinada, como el control de una
lavadora, un teclado de ordenador, una impresora, etc. Para esto, el microcontrolador utiliza muy
pocos componentes asociados. Un sistema con microcontrolador debe disponer de una memoria
donde se almacena el programa que gobierna el funcionamiento del mismo que una vez
programado y configurado, solo sirve para realizar la tarea asignada. La utilización de un
microcontrolador en un circuito reduce notablemente el tamaño y número de componentes y, en
consecuencia, disminuye el número de averías, el volumen y el peso de los equipos, entre otras
ventajas.

Los PIC (Peripheral Interface Controller) son una familia de microcontroladores que ha tenido gran
aceptación y desarrollo en los últimos años gracias a que sus buenas características, bajo precio,
reducido consumo, pequeño tamaño, gran calidad, fiabilidad y abundancia de información, lo
convierten en un microcontrolador muy fácil, cómodo y rápido de utilizar.

El PIC 16F84 esta encapsulado en un DIL de 18 pines. Que debido a sus múltiples aplicaciones y
facilidad de uso es uno de os microcontroladores mas utilizados para la realización de proyectos
sencillos.

El microcontrolador PIC16F84puede trabajar con una frecuencia maxima de 10MHz, aunque las
versiones mas avanzadas pueden llegar asta los 20MHz

Este microcontrolador se alimenta con 5 Vcc aplicados en los pines Vdd (alimentacion/positivo) y
Vss (masa/negativo). O en modo SLEEP con alimentación a 2V

● Rango de alimentación: 2.0 a 6.0 V.

● Consumo típico de 2 mA a 5 V y 4 MHz y de 1µA en modo SLEEP con alimentación a 2V.


Características técnicas:
 Arquitectura de la CPU del tipo Harvard
 Repertorio de 35 Instrucciones.
 Todas las instrucciones se ejecutan en un ciclo excepto las de salto que necesitan dos.
 Velocidad de operación:
o DC 20MHz, para la frecuencia de reloj de entrada
o DC_20ns, para la duración del ciclo.
 Versiones de 4 MHz (PIC16F84-04) y 10 MHz (PIC16F84-10).
 Memoria de programa Flash de 1 K x 14 bits.
 Memoria de datos RAM de 68 bytes.
 Memoria de datos EEPROM de 64 bytes.
 Instrucciones con una longitud de 14bits.
 Los datos tienen una longitud de 8bits (1byte)
 15 registros de funciones especiales.
 Pila con 8 niveles de profundidad.
 Modos de direccionamiento directo, indirecto y relativo.
 4 fuentes de interrupciones (habilitadas o deshabilitadas independientemente por el
software):
o Externamente a través del pin RB0/INT.
o Por desbordamiento del temporizador TMR0.
o Interrupción por cambio de esto de los pines <4:7> del Puerto B.
o Completada (una vez finalizada) la escritura de la memoria EEPROM de datos.
 La memoria Flash de programas admite hasta 1.000 ciclos de borrado y escritura.
 1.000.000 de ciclos de borrado/escritura de la memoria EEPROM.
 Garantiza 40 años de retención de la memoria EEPROM.
 13 pines de E/S con control individual de dirección.
 Alta capacidad de corriente por terminal. Proporciona suficiente corriente para gobernar
un LED:
o Consume 25mA por pin cuando está a nivel bajo.
o Proporciona 20mA por pin cuando está a nivel alto.
 Contador/Temporizador TMR0 de 8 bits con divisor de frecuencia programable.
 Power-on Reset (POR).
 Power-up Timer (PWRT).
 Oscillator Start-up Timer (OST).
 Watchdog Timer (WDT).
 Protección de código de programa mediante la activación de un bit de protección.
 Modo de bajo consumo SLEEP.
 Puede operar bajo 4 modos diferentes de oscilador.
 Programación en serie a través de dos pines.
 Tecnología de baja potencia y alta velocidad CMOS Flash/EEPROM.
 Rango de alimentación: 2.0 a 6.0 V.
 Consumo típico de 2 mA a 5 V y 4 MHz y de 1µA en modo SLEEP con alimentación a 2V.
Modo Power-down (SLEEP): El microcontrolador pasa el modo de bajo consumo (Sleep)
ejecutando la instrucción SLEEP. Para que el consumo sea mínimo, todos los puertos de E/S han
de conectarse a la alimentación o a masa y colocarlos en modo de alta impedancia (entrada). El
dispositivo puede ser despertado de tres formas diferentes:

1. Con un reset externo a través de MCLR


2. Debido al Watchdog Timer
3. Por medio de una iterrupción de RB0/INT, cambio en el puerto RB (RB7:RB4) o que se ha
completado una operación de escritura en la memoria EEPROM.

Puertos de entrada/salida: Están constituidos por líneas digitales de entrada/salida


(bidireccionales) que trabajan entre 0 y 5 V.

 El puerto A con 5 líneas, pines RA0 a RA4.


 El puerto B con 8 líneas, pines RB0 a RB7.
 Cada línea puede ser configurada como entrada o salida, según se programe.
 Las líneas pueden llegar a niveles TTL cuando la tensión de alimentación en Vdd es de 5V.
 25mA cuando el pin está a nivel bajo. Pero las 5 líneas del puerto A no pueden exceder de
80mA, ni la suma de las 8 líneas del puerto B puede exceder de 150mA.
 20mA cuando el pin está a nivel alto. Pero las 5 líneas del puerto A no pueden exceder de
50mA, ni la suma de las 8 líneas del puerto B puede exceder de 100mA.
Oscilador/reloj: Todo microcontrolador necesita un circuito que le indique la velocidad de
trabajo. Este genera una onda cuadrada de alta frecuencia que se utiliza para como señal para
sincronizar todas las operaciones del sistema.

En el PIC16F84 los pines OSC1/CLKIN y OSC2/CLKOUT son las lineas utilizadas para este fin.
Permitiendo 5 tipos de osciladores para definir la frecuencia de funcionamiento:

 XT. Cristal de cuarzo.


 RC. Oscilador con resistencia y condensador.
 HS. Cristal de alta velocidad.
 LP. Cristal para baja frecuencia y bajo consumo de potencia.
 Externa. Cuando se aplica una señal de reloj externa.

Reset: en un microcontrolador provoca la reiniciazion de su funcionamiento (un comienzo


desde cero). El pin de reset en los PIC se denomina MCLR (Master clear) y produce un reset
cuando se le aplica un nivel logico bajo.

El PIC16F84 tambien permite el llamado Power-On Reset (POR), que proporciona un reset al
microcontrolador al momento de conectar la fuente de alimentacion. Disponiendo de un
temporizador dominado Reset PWRT (Power-Up Timer), que proporciona un retardo de 72ms
desde el momento de conexión a la alimentación, garantizando que el Vcc alcance un nivel
aceptable de tension para que arranque correctamente el sistema.

Para utilizar este tipo de reset, hay que conectar el pin MCLR al dispositivo de la alimentación.
Ademas hay que programarlo así durante el proceso de grabación (permitiendo evitar usar las
redes RC externas de otros microcontroladores).

 Reset durante el funcionamiento normal al activar MCLR.


 Reset durante el modo de reposo SLEEP al activar MCLR.
 Reset al sobrepasar el contador del "Perro Guardian".
 Detección de fallo en la alimentación (Brown-Out). Esta es una condición donde la
alimentación del dispositivo Vdd toma un valor inferior del mínimo, pero sin llegar a cero
y luego se recupera. El microcontrolador entra en reset en ese momento (es necesario
añadir una circuitería externa de reset por descenso de la alimentación).

Power-Up timer (PWRT): El temporizador Power-Up Timer (PWRT) proporciona un retardo fijo
de 72 ms durante el encendido, con el fin de mantener el dispositivo en reset hasta que se
estabiliza la tensión. Opera mediante un oscilador RC interno. El chip se mantiene en reset
mientras PWRT esté activo. Este temporizador puede activarse o desactivarse durante la
grabación del microcontrolador mediante el bit PWRTE.

Oscilador Start-Up Timer (OST): Proporciona un retardo de 1024 ciclos de reloj de OSC1
después de la finalización del retardo de PWRT. Esto asegura que el cristal de cuarzo o el
resonador ha arrancado y se ha estabilizado. Este temporizador sólo actúa si se usan los modos
XT, LP y HS y sólo en el POR o en Wake-Up en modo SLEEP.

Power-On Reset: (POR) Se genera un impulso en el chip cuando la tensión de alimentación está
por debajo de los 1.2 V siempre y cuando la entrada MCLR esté conectada a la alimentación.

Reset on Brown-out: Esta condición ocurre cuando la tensión de alimentación disminuye por
debajo de 0.7 V. sin llegar a 0 y a continuación se recupera. En este caso, el microcontrolador ha
de ser reseteado de forma externa.
El PIC16F84 tiene 4 posibles fuentes de interrupciones:
 Interrupciones externas a través de RB0/INT
 Interrupción por desbordamiento del TMR0
 Interrupción por cambio de estado de RB7:RB4
 Cuando se completa la escritura de un dato en la EEPROM

El registro de control de interrupciones graba los bits señalizadores de cada interrupción y


contiene además un bit habilitador de las interrupciones de forma general e individualizada.

Watchdog Timer (WDT): Se utiliza para evitar ‘colgados’ del chip durante su
funcionamiento debido a la ejecución, por ejemplo, de bucles infinitos. Genera un reset si
después de un periodo de tiempo programable no se ha ‘limpiado’ su registro. El tiempo puede
variar desde los 18 ms hasta los 2,3 segundos. Si el dispositivo se encuentra en modo SLEEP, su
efecto es el de ‘despertarlo’ y continuar ejecutando la siguiente instrucción.

Arquitectura interna del PIC16F84


 Memoria de programa tipo ROM Flash de 1k x 14bits
 Memoria de datos dividida en 2 áreas:
o Area RAM contituida por 22 registros de propósito específico (SFR) Y 68 de
propósito general.
o Area EEPROM de datos formada por 64 registros de 8 bits.
 ALU de 8 bits y registro de trabajo W, del que normalmete recibe un operando que puede
ser cualquier registro, memoria, puerto de I/O o el propio código de instrucción.
 Dos puertos para la comunicación con el mundo exterior: Puerto A de 5 bits <RA4:RA0> y
Puerto B de 8 bits <RB7:RB0>
 Contador de programa de 13 bits, lo que en teoria permitiria direccionar 4k de palabras
de memoria, aunque el PIC16F84 sólo disponde de 1k de memoria implementada.
Dentro del PIC16F84 Se distinguen 3 bloques de memoria.

 Memoria de programa: Esta diseñado para que se almacenen todas las


instrucciones del programa de control (debe estar grabado de forma permanente).
La información contenida en estas memorias debe ser grabada previamente mediante un
equipo fisico denominado programador o grabador.
Es un tipo de memoria de programa no volátil denominada ROM Flash, que permite una
grabación muy sencilla, rápida y cómoda (una gran facilidad en el desarrollo de diseños).
Tiene una capacidad de 1k (1024 posiciones) y esta organizada en palabras de 14 bits.
o Comienza en la posición 000h (posición inicial de reset).
o Llega asta la pocisión 3FFh.
o Admite unas 1000grabaciones.
o El fabricante garantiza que la información permanece inalterable durante varias
docenas de años.

 Memoria de datos RAM: Se almacenan las variables y datos que se manejan en un


programa. Esta memoria es de lectura y escritura. Es del tipo volátil.
Esta dividida en dos partes:
o Registro de Funciones especiales SFR (Special Function Registers): Son los
primeros registros y cada uno de ellos cumple un propósito especial en el control
del microcontrolador.
o Registro de Propósito General GPR (General Purpose Registers): Son
registros de uso general que se pueden usar para guardar los datos temporales
del programa que se esté ejecutando. Para el PIC16F84 tiene 68 posiciones.

La memoria cuenta con dos bancos de memoria, Banco 0 y Banco 1:


 Los registros del SFR:
o Están agrupados entre las dirrecciones 00h a 0Bh del banco 0.
o Tambien estan agrupados entre las dirreciones 80h a 8Bh para el banco 1
o Algunos registros estan duplicados en la misma direccion ambos bancos,
para simplificar su acceso (se ubicaria en las direcciones 03h y 83h).
 El banco de registro del GPR:
o Esta formado por 68 posiciones de memoria.
o Direcciones desde la 0Ch asta la 4Fh.
o Los registros del banco 1 se mapean sobre el banco 0 (cuando se apunta
un registro de proposito general del banco del Banco 1, realmente se
accede al mismo registro del banco 0)
 Para seleccionar el banco a acceder hay que configurar el bit 5 (RP0) del registro
STATUS. Con RP0 = 0 se accede al Banco 0 y con RP0 = 1 se accede al banco 1. El
Banco 0 es seleccionada automaticamente después de un reset.
 Las zonas de memoria 50h-7Fh y D0h-FFh no son empledas y en caso de lectura
devuelven 0.

 Memoria EEPROM de datos: Es una pequeña área de memoria de datos de


lectura y escritura no volátil, gracias a esta un corte de suministro de la alimentación no
ocaciona la pérdida de la información. Que estara disponble al reiniciarce el programa.
Enlaces o pdf utilizados
Referencias
Palaios Municio , E., Remiro Domínguez, F., & López Pérez, L. (2004). Microcontrolador PIC16F84.
Desarrollo de proyectos . (Alfaomega Grupo Editor, Ed.) México: Alfaomega Ra-Ma.
Recuperado el 3 de Abril de 2020

LINK: https://0201.nccdn.net/4_2/000/000/07d/95b/Microcontrolador-PIC16F84---
PALACIOS--REMIRO--L--PEZ.pdf

PDF aparte: http://ele-mariamoliner.dyndns.org/~fperal/catalogos/PIC16F84es.pdf