Beruflich Dokumente
Kultur Dokumente
DE INGENIERIA
El PIC
16f84
AUTORE
S:
25/11/201
0
INGENIERIA
ELECTRONICA
3T1-
EO
Este Paper esta basado en el PIC 16F84. Fue elaborado para material de la clase de
electrnica digital para uso didctico e instructivo tanto del docente como del
estudiante.
Tabla de
contenidos
PROLOGO ....................................................................................................................
.................................3
ABSTRACT....................................................................................................................
.................................4
INTRODUCCION ............................................................................................................
................................5
QU ES UN MICROCONTROLADOR?
...........................................................................................................5
UN POCO DE HISTORIA
.................................................................................................................................6
DIFERENCIA ENTRE UN MICROCONTROLADOR Y UN MICROPROCESADOR
.................................................7
El PIC 16F84
.....................................................................................................................................
.............7
Capitulo 1 ESPECIFICACIONES DEL DISPOSITIVO
..........................................................................................8
Descripcin de pines
..................................................................................................................................1
1
Arquitectura del PIC
16F84.........................................................................................................................1
2
Memoria de Programa
...............................................................................................................................13
Memoria de
Datos............................................................................................................................
..........15
Capitulo 2 PUERTOS DE ENTRADA Y
SALIDA...............................................................................................18
Confguracin de Puertos de entrada y salida
............................................................................................19
Limite de corriente para los puertos
..........................................................................................................20
Capitulo 3 TEMPORIZADORES DEL
PIC16F84..............................................................................................22
TIMER0 ........................................................................................................................
...............................22
El Prescaler
.....................................................................................................................................
............23
Capitulo 4 OTROS CIRCUITOS DEL MICROCONTROLADOR
.........................................................................27
Osciladores externos
..................................................................................................................................2
7
PIN
MCLR............................................................................................................................
........................28
Conclusin ...................................................................................................................
...............................29
Bibliografa ..................................................................................................................
...............................29
PROLOG
O
El microcontrolador es uno de los logros ms sobresalientes del siglo XX. Hoy existen casi
15,000 millones de microchips de alguna clase en uso. Para la mitad del siglo prximo, es
posible que
el
microcontrolador tpico
tenga
mayor poder
de
cmputo que
las
presentes
en
nuestra vida
diaria,
como
una nave espacial, etc. Una aplicacin tpica podra emplear varios microcontroladores
para controlar pequeas partes del sistema. Estos pequeos controladores podran
comunicarse entre ellos y con un procesador
ABSTRA
CT
A micro controller is, basically, a complete computer, which has a RAM memory, processor
unit, all that you can imagine that there is inside of a computer. This huge electronic was
designed for to realize almost any task after of the programming process.
Basically, the micro controller is conformed by millions and millions of transistors that
together make any task, if the conditions permit it, after that the user make the programming
process for to eject the desire task. At the same way, when you programs your cellphone for
that ring your favorite song or to programs the alarm for an specific time, is also possible that
you program the micro controller, in this example your cellphone is the micro controller,
composed by millions of resistors and transistors, and you are the programer that decide that
the micro controller have that make and when have to make.
The micro controllers
go beyond
where last we
cellphones, videogames console and a lot of applications that be part of our live.
INTRODUCCI
ON
Como observamos anteriormente el insuperable poder de los microcontroladores ha tomado
un rumbo revolucionario en el mundo tecnolgico y cada da lo vemos mas cerca de nuestra
vida de lo que nos imaginamos.
El siguiente documento est basado en el PIC 16F84 del fabricante Microchip Tecnology
Inc., en el cual se abordara todos los temas relacionado a este microcontrolador. Este
paper fue elaborado para material de la clase de electrnica digital para uso didctico e
instructivo tanto del docente como del estudiante.
Mas adelante, hablaremos de la historia del microcontrolador y del surgimiento del
PIC16F84, adems,
del PIC16F84 y
PIC16F84A, y el sin numero de aplicaciones que este micro controlador puede tener.
QU
ES
MICROCONTROLADOR?
UN
Podemos
ms
microcontrolador.
UN POCO DE
HISTORIA
En el ao 1969, un equipo de ingenieros japoneses de la compaa BUSYCOM llegaron a
Estados Unidos con una propuesta de que algunos circuitos integrados para calculadoras
fueran diseados de acuerdo a sus proyectos. Esta propuesta fue enviada a la compaa
INTEL y Marcian Hoff estaba a cargo del proyecto. Desde muchos aos con la experiencia
de trabajas con computadores PDP8, vino a el la idea de sugerir una solucin
fundamentalmente diferente basada en el diseo
japoneses. La
solucin presuma que la operacin del circuito integrado iba a ser determinada por un
programa almacenado en el circuito mismo. Esto significaba que la configuracin seria ms
simple, pero esto requera de mucho ms memoria que los proyectos propuestos por los
ingenieros japoneses. Luego de un tiempo,
encontrar una solucin ms fcil. La idea de Marcian Hoff gano y as naci el primer
microprocesador. Luego la empresa Intel tuvo xito en desarrollar el microcontrolador de
acuerdo al concepto original. En 1971 Intel
obtuvo el derecho de
vender estos circuitos integrados. Antes que Intel comprara la licencia la compaa BUSICOM
no tenia idea alguna del tesoro que esta empresa tenia.
microprocesador
llamado
microprocesador de
4-bits
el
4004
con
una
apareci
velocidad
en
de
el
6000
Este
operaciones
fue
por
el
primer
segundo.
Despus Intel y Texas Instruments se mantuvieron trabajando en un microprocesador de 8bits llamado 8008 que en Abril de 1972 saldra al mercado. Este microprocesador tena
capacidad de 16K de memoria, tenia 45 instrucciones y la velocidad de 300,000 operaciones
por segundo.
Luego otras compaas Americanas como Motorola, Zilog inc. entre otras siguieron la
revolucin de los microprocesadores. En 1976 Zilog anuncio el Z80.
El Z80 fue el
el
DIFERENCIA ENTRE
MICROPROCESADOR
UN
MICROCONTROLADOR
UN
usado, otros componente tales como memorias o transmisin de datos deben ser aadido.
Tambin los microprocesadores se consideran ser poderosas maquinas computadoras, su
punto dbil esta en que no posee comunicacin directa con perifricos. En otras palabras un
microprocesador solamente es el corazn del computador.
Por otra mano, el microcontrolador es diseado para ser todo en uno. No se necesita
aadir otro componente externo ya que los perifricos pueden ser directamente ensamblados
a el. En cualquier otro caso este ahorra tiempo y espacio necesario para el diseo de un
aparato.
El
PIC
16F84
El PIC 16F84 es un microcontrolador con memoria de programa tipo FLASH es decir nunca
pierde su programacin, lo que representa gran facilidad en el desarrollo de prototipos y en
su aprendizaje ya que no se requiere borrarlo con luz ultravioleta sino que permite
reprogramarlo nuevamente sin ser borrado con anterioridad.
Capitulo 1 ESPECIFICACIONES
DISPOSITIVO
DEL
El PIC 16F84 aunque no es uno de los microcontroladores mas recientes de Microchip inc. si
es una herramienta poderosa para la introduccin al aprendizaje en el mundo de
los microcontroladores. Algunas de las principales caractersticas [1] se mencionan a
continuacin:
Repertorio de 35 Instrucciones.
Todas las instrucciones se ejecutan en un solo ciclo excepto las de salto que
necesitan dos.
ALU de 8 bits y registro de trabajo W del que normalmente recibe un operando que
puede ser cualquier registro, memoria, puerto de Entrada/Salida o el propio cdigo
de instruccin.
4 fuentes de interrupciones:
1.
2.
3.
4.
Proteccin de cdigo.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Mxima corriente que puede suministrar una sola salida como fuente o
sumidero, 25 mA.
Rango de alimentacin:
1.
2.
Consumo tpico:
1.
16LF84A:
De 1 a 4 mA en configuracin de oscilador RC y XT (FOSC=2 MHz,
VDD=5,5V).
De 15 a 45 A en configuracin de oscilador LP (FOSC=32kHz, VDD=2V,
WDT deshabilitado).
2.
16F84A:
De 1,8 a 4.5 mA en configuracin de oscilador RC y XT (FOSC=4 MHz,
VDD=5,5V).
De 3 a 10 mA en configuracin de oscilador RC y XT durante la
programacin de la FLASH (FOSC=4MHz, VDD=5,5V).
3.
16F84A-20:
De 10 a 20 mA en configuracin de oscilador HS (FOSC=20 MHz,
VDD=5,5V).
Descripcin de pines
Nombre
N Tipo Descripcin
OSC1/CLKIN
16 I
OSC2/CLKOUT 15 O
Salida del oscilador a cristal. En el modo RC, es una salida con una
frecuencia de OSC1
MCLR
RA0
17 I/O
RA1
18 I/O
RA2
I/O
RA3
I/O
RA4/T0CKI
I/O
RB0/INT
I/O
RB1
I/O
RB2
I/O
RB3
I/O
RB4
10 I/O
RB5
11 I/O
RB6
12 I/O
RB7
13 I/O
Vss
Tierra de referencia
Vdd
14 P
I/P
Alimentacin
Memoria
Programa
de
La memoria de programa est organizada con palabras de 14 bits con un total de 1 K, del
tipo Flash, que durante el funcionamiento es de solo lectura. Slo se ejecutar el cdigo
contenido en esta memoria, pudiendo almacenar en ella una cantidad limitada de datos como
parte de la instruccin RETLW. En una sola palabra se agrupa el cdigo de la instruccin y el
operando o su direccin.
El tipo de memoria utilizada en este microcontrolador, podr ser grabada o borrada
elctricamente a nuestro antojo desde el programador. La memoria tipo Flash tiene la
caracterstica
de
poderse
borrar
en
bloques
completos
no
podrn
borrarse
posiciones concretas o especficas. Este tipo de memoria no es voltil, es decir, no pierde los
datos si se interrumpe la energa.
La memoria para almacenar el programa nos resultar perfecta para realizar pruebas y
experimentos, adems de para la programacin "on-board" o "in-circuit", esto es, nos permite
la programacin del dispositivo o actualizacin del programa sin necesidad de retirarlo del
circuito.
La memoria del programa comienza en la posicin 0000h y termina en la posicin 03FFh.
Esto es 1Kbyte, es decir, 1024 bytes (210).
En la figura tambin se muestra el PC (Contador de Programa o Program Counter). Que
apunta a la direccin de memoria de la instruccin en curso y permite que el programa avance
cuando se incrementa.
es
decir,
un
conjunto
de
se
qued
el
programa
Versin Flash. Se trata de una memoria no voltil, de bajo consumo, que se puede
escribir y borrar. A diferencia de las memorias de tipo ROM, la memoria FLASH es
programable en el circuito. Es ms rpida y de mayor densidad que la EEPROM.
Esta versin es idnea para la enseanza y la Ingeniera de diseo.
Versin OTP. ("One Time Programmable") "Programable una sola vez". Slo se
puede grabar una vez por el usuario sin la posibilidad de borrar lo que se graba. Resulta
mucho ms econmica en la implementacin de prototipos y pequeas series.
Versin SQTP. El fabricante solo graba unas pocas posiciones de cdigo para
labores de identificacin, numero de serie, palabra clave, checksum, etc.
Las memorias FLASH han sustituido a las EEPROM y son muy tiles al permitir que los
microcontroladores que las incorporan puedan ser reprogramados "en circuito", es decir, sin
tener que sacar el circuito integrado de la tarjeta. As, un dispositivo con este tipo de
memoria incorporado al control del motor de un automvil permite que pueda modificarse el
programa durante la rutina de mantenimiento peridico, compensando los desgastes y otros
factores tales como
la
compresin, la
instalacin
de
reprogramacin
del microcontrolador
Memoria
Datos
de
Est organizada en dos pginas o bancos de registro, banco 0 y banco 1. Para cambiar de
pgina se utiliza un bit del registro STATUS (RP0).
Cada banco se divide a su vez en dos
reas:
que
controlan
el
se
por
funciones
microcontrolador.
especiales
Comienza
del
en
la
direccin
00h y termina en la 0Bh, es decir, de la 0 a
la
11.
El rea RGP consta de 68 registros de memoria RAM que sern utilizados para almacenar
datos temporales requeridos por los programas. Comienza en la direccin 0Ch y termina en
la posicin 4Fh (de la 12 a la 79). Esta parte es la memoria de registros de propsito general.
Banco 1:
Este banco tiene las mismas dimensiones que el anterior, pero su uso es menor, ya que no
tiene banco para registros de propsito general. Solamente tiene una seccin de registros
especiales que van de la posicin 80h a la 8Bh ( de la 128 a la 139)
La memoria RAM as como algunos registros especiales son los mismos en los dos bancos
del mapa de memoria del PIC. La anchura de los bytes en la memoria es de 8 bis.
Para direccionar la memoria de datos se emplean dos modos de direccionamiento, el directo
y el indirecto. En el direccionamiento directo, los 7 bits de menos peso del cdigo OP de
la instruccin proporcionan la direccin en la posicin de la pgina, mientras que los bits
RP1 y RP0 de STATUS seleccionan la pgina o banco.
Leyendo o escribiendo el PORTB y luego borrando el bit RBIF. Esto finaliza la condicin
"mismacht" y permite que se borre RBIF.
Una condicin "mismacht" puede producir que el bit RBIF siga a "1". Leyendo el puerto B
puede finalizar la condicin de "mismacht" y permitiendo que el bit RBIF sea puesto a "0".
Adems,
todas
las
lneas
del
Puerto
disponen
de
resistencias
internas
de
polarizacin programables "pull-up" de alto valor. Cada una de las 8 resistencias pueden ser
activadas o
deshabilitadas haciendo uso del bit RBPU del registro especial OPTION. Estas resistencias se
deshabilitan automticamente si una lnea es programada como salida as como durante el
proceso de Power On Reset.
Configuracin
de
entrada y salida
Puertos
de
Cualquier lnea puede funcionar como entrada o como salida. Sin embargo, si acta como
entrada la informacin que se introduce no se memoriza, por lo que la informacin debe
ser mantenida hasta que sea leda. Si la lnea acta como salida, el bit que procede del
bus de datos se guarda en la bscula, con lo que la informacin que ofrece esta patita
permanece invariable hasta que se reescriba este bit.
Los bits de cada puerto se configuran mediante los bits correspondientes de dos registros
especiales de control:
Registro de Datos denominados PORTA PORTB: Se pueden leer o escribir segn que
el puerto correspondiente se utilice como entrada o como salida.
programada como salida mientras que colocando un "1" la lnea queda programada
como entrada. Por ejemplo, si ponemos un 0 en el bit 3 del registro TRISA la patilla
RA3 ser una salida y si ponemos un 1 en el bit 4 del registro TRISB entonces la
patilla RB4 ser una entrada.
Los Puertos A y B (PORTA y PORTB) se corresponden con las posiciones 5 y 6 del rea
de datos.
Cuando se produce un reset, todos los bits de los registros TRIS pasan a tener el valor 1 y
todas las lneas de E/S actan como entrada por evidentes motivos de seguridad para
evitar daos irreparables. Todas las patillas de E/S que no se empleen deben ser llevadas
a +5v, regla de las entradas CMOS, preferiblemente a travs de una resistencia para evitar
que si por error se configurasen como salidas puedan darse problemas si presentan un estado
bajo.
La
siguiente
figura
muestra
la
configuracin
de
pines
para
el
puerto
B,
el
De todas maneras hay que tener en cuenta no superar la disipacin de potencia mxima,
que se calcula como sigue:
Pdis = VDD x (IDD - IOH) + {(VDD-VOH) x IOH} + (VOL x IOL)
VOH suele ser VDD-0,7 v y VOL 0,6 v.
El consumo de corriente (IDD) es principalmente funcin de la tensin de alimentacin y de
la frecuencia. Otros factores, como cambios en E/S, tipo de oscilador, temperatura y otros
tienen influencia en el consumo. La IDD para el PIC16F84A-4 est entre 1,8 a 4.5 mA en
configuracin de oscilador RC y XT (FOSC=4 MHz, VDD=5,5V), con las patillas como
entradas y unidas a positivo. En caso de que se necesiten utilizar perifricos que manejen
mayor cantidad de corriente de la especificada, habr que aplicar un circuito adaptador como
por ejemplo buffers o transistores.
En la siguiente figura vemos una configuracin tpica en la que se utilizan buffers de
corriente, que proporcionan en su salida el mismo nivel lgico que la entrada pero pueden
controlar corrientes
relativamente
elevadas. En este
caso se utiliza el
ULN2803,
un
circuito
integrado
que consiste en 8
buffers de potencia
capaces
de
suministrar en su
salida hasta 1 A,
mucho ms de lo
que es capaz de
soportar un PIC.
TIMER
0
El temporizador/contador TMR0 es un registro de 8 bits, es decir, un particular tipo de
registro cuyo contenido es incrementado con una cadencia regular y programable
directamente por el hardware del PIC. Como es de 8 bits, el mximo de la cuenta est en 255.
El TMR0 tiene las siguientes caractersticas:
Temporizador/Contador de 8 bits.
Divisor de 8 bits programable por software.
Seleccin de reloj interno y externo.
Interrupcin por desbordamiento.
Seleccin del flanco del reloj externo.
Este registro puede usarse para contar eventos externos por medio de un pin de entrada
especial (modo contador) o para contar pulsos internos de reloj de frecuencia constante
(modo temporizador). Adems, en cualquiera de los dos modos, se puede insertar un
prescaler, es decir un divisor de frecuencia programable que puede dividir por 2, 4, 8, 16, 32,
64, 128 o 256. Este divisor puede ser utilizado alternativamente como prescaler o del TMR0 o
como postscaler del Watch Dog Timer, segn se lo programe.
En la prctica, a diferencia de los otros registros, el TMR0 no mantiene inalterado el valor
que tiene memorizado, sino que lo incrementa continuamente.
Si por ejemplo escribimos en l el valor 10, despus de un tiempo igual a cuatro ciclos
mquina, el contenido del registro comienza a ser incrementado a 11, 12, 13 y as
sucesivamente con una cadencia constante y totalmente independiente de la ejecucin del
resto del programa.
Una vez alcanzado el valor 255, el registro TMR0 es puesto a cero
automticamente comenzando entonces a contar desde cero y no desde el valor originalmente
cargado.
La frecuencia de conteo es directamente proporcional a la frecuencia de reloj aplicada al PIC
y puede ser modificada programando adecuadamente algunos bits de configuracin.
El modo temporizador se selecciona colocando a 0 el bit T0CS del registro OPTION. En
este modo, el Timer0 se incrementa con cada ciclo de instruccin (con el divisor desactivado).
El modo contador se selecciona colocando a 1 el bit T0CS del registro OPTION. En este
modo, el contador se incrementar con cada flanco de subida o de bajada del pin
RA4/T0CKI. El flanco se selecciona con el bit T0SE del registro OPTION.
Se generar una interrupcin cuando el registro TMR0 se desborda de FFh a 00h. Este
desbordamiento se indicar el bit T0IF del registro INTCON.
Fosc/4 y T0CKI representan las dos posibles fuentes de seal de reloj, para el contador TMR0.
Fosc/4 es una seal generada internamente por el PIC tomada del circuito de reloj y que es
igual a la frecuencia del oscilador dividida por
cuatro.
T0CKI es una seal generada por un posible circuito externo y aplicada al pin
T0CKI
correspondiente
al
pin
4
del
PIC16F84.
Los bloques T0CS y PSA son dos selectores de seal (multiplexores) en cuya salida se
presenta una de las dos seales de entrada en funcin del valor de los bits T0CS y PSA
del registro OPTION.
El
Prescaler
El Prescaler consiste en un divisor programable de 8 bits a utilizar en el caso de que la
frecuencia de conteo enviada al contador TMR0 sea demasiado elevada para
nuestros propsitos. Se configura a travs de los bits PS0, PS1 y PS2 del registro OPTION.
La frecuencia Fosc/4 es una cuarta parte de la frecuencia de reloj. Utilizando un cristal de 4Mhz
tendremos una Fosc/4 igual a 1 MHz, con lo que la cadencia de conteo que se obtien e
provoca
en TMR0 1 milln de incrementos por segundo (1/1.000.000 seg). =1MHz), que para
muchas aplicaciones podra resultar demasiado elevada.
Con el uso del PRESCALER podemos dividir la frecuencia Fosc/4 configurando
oportunamente los bits PS0, PS1 y PS2 del registro OPTION segn la siguiente tabla:
PS2 PS1
PS0 DIVISOR
500.000
250.000
125.000
16
62.500
32
31.250
64
15.625
128
7.812,5
256
3.906,25
Capitulo
4
OTROS
MICROCONTROLADOR
CIRCUITOS
DEL
Consiste
de
dos
osciladores
externos
Osciladores
externos
El modo LP, XT y HS soportan el uso del oscilador interno para
configurar la frecuencia de trabajo, Esta frecuencia es determinada
por el cristal o por el resonador cermico conectado al pin OSC1 y
OSC2. Dependiendo de las caractersticas de los componentes que
se usan
modos:
Modo LP (Low power) es usado para bajas frecuencias solamente. Este modo es diseado
para manejar frecuencias de 32.768Khz usualmente usado en los relojes de cuarzo. Es fcil
de reconocer por su forma cilndrica plana. Consumo de corriente menor que los otros modos.
Modo XT es usado para frecuencias intermedias arriba de 8MHZ. El consumo de corriente
es intermedio de los tres modos.
Modo HS (High Speed) es usado para altas frecuencias por encima de 8MHZ. El consumo
de corriente es el mayor de los tres modos.
PIN
MCLR
Un cero lgico en el pin MCLR causa un reinicio
inmediato. Se recomienda que sea conectado como
se muestra en la siguiente figura.
Cuando el reset vuelve a su normalidad el
microcontrolador se reinicia automticamente.
Conclusi
n
Esperamos que la finalidad de este paper haya sido cumplido en su totalidad y que
luego de leer este documento podamos estar claro del la poderosa
herramienta electrnica que tenemos al alcance de nuestras manos.
La vida cotidiana esta llena de necesidades de las que como futuros ingenieros
somos responsables de satisfacer con las herramientas que exponemos en este
paper que juega un papel fundamental en el mundo tecnolgico de automatizacin
y domtica para hacer una vida mas fcil y cmoda para bien de la humanidad.
Solamente nos resta poner manos a la obra y sumergirnos dentro de este
inmenso mundo de los microcontroladores y explorar las maravillas tecnolgicas
que son posibles gracias a los microcontroladores.
Bibliograf
a
Verle, Miln. PIC Microcontrollers
Serra, Enric. PIC 16F84A Escola Professional Salesians Joan XXIII.
Curso avanzado de micro controladores PIC