Vous êtes sur la page 1sur 7

PIC16F87X

Ir a la navegaci�nIr a la b�squeda
Los PIC16F87X forman una subfamilia de microcontroladores PIC (Peripheral Interface
Controller) de gama media de 8 bits, fabricados por Microchip Technology Inc..

Cuentan con memoria de programa de tipo EEPROM Flash mejorada, lo que permite
programarlos f�cilmente usando un dispositivo programador de PIC. Esta
caracter�stica facilita sustancialmente el dise�o de proyectos, minimizando el
tiempo empleado en programar los microcontroladores (�C).

Esta subfamilia consta de los siguientes modelos que var�an de acuerdo a


prestaciones, cantidad de terminales y encapsulados:

PIC16F870
PIC16F871
PIC16F872
PIC16F873A
PIC16F874A
PIC16F876A
PIC16F877A
La "A" final de los modelos PIC16F873A, PIC16F874A, PIC16F876A y PIC16F877A indica
que estos modelos cuentan con m�dulos de comparaci�n anal�gicos.1?

El hecho de que se clasifiquen como microcontroladores (MCU) de 8 bits hace


referencia a la longitud de los datos que manejan las instrucciones, y que se
corresponde con el tama�o del bus de datos y el de los registros de la CPU.

Se trata de versiones mejoradas del caballo de batalla PIC16F84, muy empleado en


proyectos sencillos, de educaci�n y de entrenamiento.

�ndice
1 Caracter�sticas principales
1.1 Detalles seg�n modelo
2 Tipos de encapsulado y n�mero de terminales
3 Estructura interna
4 Circuiter�a externa auxiliar
4.1 La alimentaci�n
4.2 El reloj
4.3 El circuito de reinicio
5 Memoria interna
5.1 Memoria de datos SRAM
6 Registros de funciones especiales (SFR)
6.1 El registro STATUS
7 El registro W
8 Set de instrucciones y sintaxis
8.1 Tabla resumen de instrucciones
9 Registro de configuraci�n
10 El conversor anal�gico-digital
10.1 Controlando el conversor A/D
10.2 Conversi�n Terminada
10.3 Pasos necesarios para la conversi�n A/D
11 Acerca de la programaci�n de los dispositivos
12 Ejemplo sencillo: encender y apagar un LED
12.1 Circuito el�ctrico
12.2 Programa
12.2.1 Ensamblador
12.2.2 Lenguaje m�quina
13 Referencias
14 Bibliograf�a
15 V�ase tambi�n
16 Enlaces externos
Caracter�sticas principales
Las caracter�sticas principales de estos dispositivos son:

CPU de arquitectura RISC (Reduced Instruction Set Computer).1?


Set de 35 instrucciones.1?
Frecuencia de reloj de hasta 20MHz (ciclo de instrucci�n de 200ns).1?
Todas las instrucciones se ejecutan en un �nico ciclo de instrucci�n, excepto las
de salto.1?
Hasta 8K x 14 palabras de Memoria de Programa FLASH (ver tabla a continuaci�n).1?
Hasta 368 x 8 bytes de Memoria de Datos tipo RAM (ver tabla a continuaci�n).1?
Hasta 256 x 8 bytes de Memoria de Datos tipo EEPROM (ver tabla a continuaci�n).1?
Hasta 15 fuentes de Interrupci�n posibles.1?
8 niveles de profundidad en la Pila hardware.1?
Modo de bajo consumo (Sleep).1?
Tipo de oscilador seleccionable (RC, HS, XT, LP y externo).2?
Rango de voltaje de operaci�n desde 2,0V a 5,5V.3?4?5?
Conversor Anal�gico/Digital de 10 bits multicanal.1?
3 Temporizadores.1?
Watchdog Timer o Perro Guardi�n.1?
2 m�dulos de captura/comparaci�n/PWM.1?
Comunicaciones por interfaz USART (Universal Synchronous Asynchronous Receiver
Transmitter).1?
Puerto Paralelo Esclavo de 8 bits (PSP).1?
Puerto Serie S�ncrono (SSP) con SPI e I�C.1?
Detalles seg�n modelo
Modelo
Memoria de programa Flash (palabras de 14 bits)
Memoria de datos SRAM (bytes)
Memoria de datos EEPROM (bytes)
L�neas de E/S
Canales A/D
PWM
MSSP
USART
Comparadores
SPI
I�C Maestro
PIC16F870
2048
128
64
22
5
1
No
No
S�
No
PIC16F871
2048
128
64
33
8
1
No
No
S�
No
PIC16F872
2048
128
64
22
5
1
S�
S�
No
No
PIC16F873A
4096
192
128
22
5
2
S�
S�
S�
S� (2)
PIC16F874A
4096
192
128
33
8
2
S�
S�
S�
S� (2)
PIC16F876A
8192
368
256
22
5
2
S�
S�
S�
S� (2)
PIC16F877A
8192
368
256
33
8
2
S�
S�
S�
S� (2)
Tipos de encapsulado y n�mero de terminales
Microchip Technology Inc. fabrica estos microcontroladores en encapsulados PDIP y
SPDIP, SOIC, SSOP, PLCC, QFP y QFN.

Los dispositivos PIC16F870, PIC16F872, PIC16F873A y PIC16F876A se fabrican en


encapsulados de 28 pines en formatos PDIP, SOIC, SSOP y QFN, mientras que los
dispositivos PIC16F871, PIC16F874A y PIC16F877A se fabrican en encapsulados de 40
pines para formato PDIP, y en encapsulados de 44 pines para formatos PLCC, QFP y
QFN.

En los encapsulados de 28 pines no est� implementado el Puerto Paralelo Esclavo


(PSP).

Muchas de los pines o terminales de estos dispositivos, como suele ocurrir en la


mayor�a de microcontroladores, tienen m�s de una funci�n (multiplexaci�n),
dependiendo de c�mo se configuren internamente por software.

Los terminales VDD (tensi�n) y VSS (masa) sirven �nicamente para alimentar al
dispositivo.

Estructura interna
Estos microcontroladores tienen la memoria de programa y la memoria de datos
separadas, lo que se conoce como arquitectura Harvard. Esta configuraci�n interna
permite entre otras cosas acceder a las instrucciones de programa y a los datos
simult�neamente a trav�s de buses diferentes, lo que mejora notablemente la
velocidad de proceso de estos dispositivos.

Circuiter�a externa auxiliar


Para que el microcontrolador sea capaz de funcionar en cualquier proyecto, se
necesita al menos la siguiente circuiter�a externa:

La alimentaci�n.
El reloj (oscilador).
Tambi�n, y de manera opcional:

El circuito de reinicio.
La alimentaci�n
Los dispositivos de la familia PIC16F87X admiten un amplio rango de tensiones de
alimentaci�n, que va de 2,0 V a 5,5 V. La tensi�n a la cual se alimenten
determinar� la frecuencia m�xima de trabajo.

La potencia m�xima disipada es de 1 W y se calcula mediante la siguiente f�rmula:

{\displaystyle \,\!P_{disipada}=V_{DD}(I_{DD}-\Sigma I_{OH})+\Sigma [(V_{DD}-


V_{OH})I_{OH}]+\Sigma (V_{OL}I_{OL})} {\displaystyle \,\!P_{disipada}=V_{DD}
(I_{DD}-\Sigma I_{OH})+\Sigma [(V_{DD}-V_{OH})I_{OH}]+\Sigma (V_{OL}I_{OL})}

donde:

{\displaystyle V_{DD}} {\displaystyle V_{DD}} es la tensi�n suministrada por la


fuente de alimentaci�n.
{\displaystyle I_{OH}} {\displaystyle I_{OH}} es la corriente suministrada por las
salidas del PIC en estado alto.
{\displaystyle I_{OL}} {\displaystyle I_{OL}} es la corriente absorbida por las
salidas del PIC en estado bajo.
{\displaystyle V_{OH}} {\displaystyle V_{OH}} es la tensi�n entregada por los
terminales en estado alto.
{\displaystyle V_{OL}} {\displaystyle V_{OL}} es la tensi�n presente en los
terminales en estado bajo.
El reloj
El reloj u oscilador se utiliza para generar la base de tiempo del
microcontrolador. Para la conexi�n del oscilador se emplean los terminales OSC1 y
OSC2 del dispositivo.

Los microcontroladores PIC16F87X emplean por cada ciclo de instrucci�n cuatro


ciclos de reloj. Esto significa que por ejemplo, si el microcontrolador debe
ejecutar un programa de 1000 instrucciones con un reloj de 10 MHz (periodo de reloj
de 100 ns), el tiempo total que emplear� para ejecutar todo el programa (asumiendo
que todas las instrucciones fueran de un ciclo de instrucci�n) ser� de:

{\displaystyle T={1000*4 \over {10*10^{6}}}=400\mu s} {\displaystyle T={1000*4


\over {10*10^{6}}}=400\mu s}

La serie PIC16F87X puede trabajar a una frecuencia de reloj m�xima de 20 MHz. Esto
quiere decir que, a esta frecuencia, el tiempo necesario para ejecutar las
instrucciones de un ciclo de instrucci�n es de 200 ns, y de 400 ns para las de dos
ciclos de instrucci�n (instrucciones de salto).

La se�al de reloj puede generarse mediante una red resistencia-condensador, un


cristal de cuarzo piezoel�ctrico o un resonador cer�mico, aunque empleando
cristales de cuarzo se consiguen frecuencias de oscilaci�n muy exactas, lo cual es
�til para calcular tiempos de ejecuci�n, temporizaciones precisas, etc.

Estos microcontroladores permiten escoger entre cinco tipos distintos de


osciladores:

LP (Low Power): reloj de bajo consumo, estable, con frecuencia de oscilaci�n de


hasta 200 kHz.
XT (Xtal, Crystal): estable, frecuencia de oscilaci�n de hasta 4 MHz.
HS (High Speed): estable, frecuencia de oscilaci�n de hasta 20 MHz.
RC (Resistor/Condensador): frecuencia de oscilaci�n dependiente de resistencia,
condensador, voltaje de alimentaci�n y temperatura de trabajo. Es el tipo m�s
econ�mico, pero tambi�n el m�s inestable.
Externo: cuando la se�al de reloj es externa, generada por otro circuito.
Los modos LP, XT y HS suponen la conexi�n de un cristal de cuarzo o resonador
cer�mico entre las patitas OSC1/CLKIN y OSC2/CLKOUT del dispositivo, mientras que
el modo RC y Externo solo ocupan la patita OSC1/CLKIN.

El circuito de reinicio
El terminal MCLR (Master Clear) debe estar a valor l�gico alto para que el
dispositivo funcione normalmente, esto es, sin irse a reinicio. Con un valor l�gico
bajo el dispositivo se reinicia, comenzando la ejecuci�n desde el principio del
programa que tenga cargado en memoria.

Lo m�s pr�ctico, para facilitar el hecho de poder realizar un reinicio manual, es


utilizar un pulsador (pulsador de reinicio), similar al que se puede encontrar en
la mayor�a de ordenadores. El fabricante recomienda que se intercale una
resistencia de 50 a 100 ohmios entre el pulsador y la patita MCLR, para evitar
posibles corrientes inducidas de m�s de 80 mA que podr�an bloquear el dispositivo
cuando este se lleva a masa (reinicio).3?

Debido a que el pulsador no produce una respuesta instant�nea, producto de los


rebotes de �ste (transitorio), se generan una serie de pulsos hasta quedar
estabilizado en su estado permanente. Para evitar esto se puede usar un condensador
instalado en paralelo con la entrada MCLR (filtro pasa bajo).

Tambi�n resulta muy efectivo el uso de un filtro pasa alto para hacer la se�al de
reinicio independiente del tiempo en que se presiona el pulsador. Inmediatamente
despu�s de pulsar el pulsador el �C se reinicia, sin tener en cuenta cu�nto tiempo
se mantiene presionado dicho pulsador.

Estas t�cnicas de reinicio son muy efectivas, pero no son las �nicas. Existe
infinidad de circuitos y posibilidades para provocar el reinicio externo en los
microcontroladores, adecu�ndose cada soluci�n a la necesidad o al criterio de
dise�o del circuito y su funci�n espec�fica.

Memoria interna
Existen tres bloques bien diferenciados de memoria. Estos son:

Memoria de programa EEPROM Flash: es el lugar f�sico donde se guarda el programa de


usuario. Es de tipo no vol�til.
Memoria de datos SRAM: es el lugar f�sico donde se guardan datos. Es de tipo
vol�til.
Memoria de datos EEPROM: es el lugar f�sico donde se guardan datos. Es de tipo no
vol�til.
Memoria de datos SRAM
Esta memoria es de tipo vol�til, lo que significa que no conserva su contenido
despu�s de un apagado de alimentaci�n.

En esta memoria se encuentran los registros de funciones especiales (SFR) y los


registros de prop�sito general (GPR), y est� particionada en cuatro bancos (0, 1, 2
y 3), seleccionables independientemente. El banco 0 es el banco seleccionado por
defecto cuando se alimenta al microcontrolador.

Registros de funciones especiales (SFR)


Todos los microcontroladores cuentan con registros internos que permiten controlar
y supervisar las funciones y recursos disponibles del dispositivo.

Los registros de los microcontroladores PIC se encuentran en un espacio especial de


la memoria de datos, el SFR (Special Function Registers). En los dispositivos
PIC16F87X estos registros son de 8 bits, la mayor�a de lectura y escritura. Se
puede acceder a dichos bits de manera individual, o bien a todo el registro a la
vez.

Determinados pares de registros tienen funciones especiales para las cuales se


pueden considerar unidos en un �nico registro de 16 bits, aunque f�sicamente siguen
estando separados.

El registro STATUS
El registro de estado (STATUS) es uno de los m�s importantes y empleados en el
microcontrolador.

Proporciona informaci�n acerca del resultado de operaciones aritm�ticas,


operaciones l�gicas y causa de reinicios, adem�s de permitir la selecci�n del banco
de memoria de datos.

El registro W
El registro de trabajo W (Working Register) es un registro relevante especial de 8
bits que participa en la mayor�a de instrucciones. A diferencia de los SFR, se
encuentra dentro de la misma CPU, y puede ser accedido tanto para lectura como para
escritura..

Set de instrucciones y sintaxis


Los PIC16F87X son microcontroladores RISC. Esto se refleja en que tienen un
repertorio reducido de 35 instrucciones ortogonales (pr�cticamente todas las
instrucciones pueden utilizar cualquier operando), �stas son r�pidas y todas tienen
una longitud fija de 14 bits.
Las instrucciones se pueden clasificar en:

Instrucciones de carga.
Instrucciones de bits.
Instrucciones aritm�ticas.
Instrucciones l�gicas.
Instrucciones de salto.
Instrucciones de manejo de subrutinas.
Instrucciones especiales.

Vous aimerez peut-être aussi