Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
actual
radica
en
que
existen
muchas
ms
herramientas,
al
brindar
facilidades
que
nunca
antes
dispositivos
Pgina 1
Pgina 2
Captulo I
1.0
Introduccin
Qu es un Microcontrolador?
Un microcontrolador es un circuito integrado que posee muchas semejanzas con un microprocesador pero se
diferencia de este principalmente en su funcionalidad. Un microprocesador necesita perifricos externos, como
memoria, dispositivos de entrada/salida, buffers, etc. para interactuar con el exterior, por ello se puede decir con
mucho acierto que el microprocesador es el corazn del computador. En el caso del microcontrolador, este es
diseado con todos los perifricos incorporados, es decir que se comporta como un mini-computador, aunque con
menor capacidad de procesamiento, lo cual no impide que se constituya en la solucin ideal para mltiples
proyectos en los cuales el ahorro de espacio, componentes, y tiempo de diseo son fundamentales
Fig. 1.1 Esquema tpico de un microcontrolador con sus elementos bsicos y lneas de conexin interna
Pgina 3
1.1
El Microcontrolador PIC16F84A
El PIC16F84A forma parte del grupo de la familia PIC16C(F)XXX de bajo costo, alto rendimiento, CMOS de 8 bit
entre otras cosas.
Todos los PICs emplean una avanzada arquitectura RISC (Reduced Instruction Set Computer). En el PIC16F84A se
ha reforzado una serie de caractersticas: tiene ocho niveles de pila y posee mltiples fuentes de interrupcin
internas y externas. Las instrucciones y los buses de datos separados permiten palabras de instruccin ancha de
14 bits para ejecutarse en un solo ciclo, salvo las instrucciones de salto que requieren dos.
La familia PIC16C(F)XXX tiene rasgos especiales para reducir componentes externos, reduciendo de este modo
costos, consumo de energa y reforzando la fiabilidad del sistema.
1.2
1.3
Familias
Existen diferentes tipos de Microcontroladores PIC, con el fin de que el diseador pueda escoger el que mejor
satisfaga las necesidades del proyecto que desea realizar. Estas son:
1.3.1
Gama Enana: PIC12C(F)XXX de 8 pines, se alimenta con un voltaje DC entre 2,5 V y 5,5 V, El formato
de sus instrucciones es de 12 bits y su set de instrucciones es de 33 o 35. La frecuencia del oscilador llega
a los 20MHz.
1.3.2
Gama Baja: PIC16C5X de 14, 18 y 28 pines, con instrucciones de 12 bits. Estos PIC, pueden
alimentarse a partir de una tensin de 2,5V, lo que los hace ideales para funcionar con bateras. Disponen
de un set de 33 instrucciones, no admiten ningn tipo de interrupcin y la PILA solo dispone de 2 niveles.
1.3.3
Gama Media PIC16C(F)XXX de 18 hasta 68 pines, Es una gama muy variada y completa, donde se
encuentra el PIC mas usado que es el PIC16F84A. Esta gama posee instrucciones de 14 bits, con un set
de 35 instrucciones. Dispone de interrupciones y una pila de 8 niveles que permiten el anidamiento de
subrutinas.
En esta gama se pueden encontrar las sig. caractersticas:
Comparador analgico (16C432, 16F628*).
Modulacin de anchura de impulsos (16F7X).
Conversor ADC de 8 bits (PIC16F676).
Memoria de programa Flash(16FXXX) y EEPROM(PIC16CXXX) .
Driver LCD (PIC16C92X).
Mdulos de puerto serial, I2C, SPI (PIC16F76).
Mdulo LIN (PIC16C43X).
Mdulo USB (PIC16C735)
Sensor interno de temperatura(PIC14000).
*Los PIC nombrados entre parntesis deben tomarse como ejemplos de microcontroladores que poseen las caractersticas nombradas. No
significa que sean los nicos con dichas caractersticas.
1.3.4
1.4
Es un microcontrolador de 18 pines, de 8 bits con tecnologa CMOS. La razn porque se ha elegido este tipo de
microcontrolador como base para el aprendizaje se debe fundamentalmente al tipo de memoria de programa que
posee. En el caso del PIC16F84A se trata de una memoria FLASH-EEPROM de 1K palabras de 14 bits cada una y 64
bytes de EEPROM como memoria de datos auxiliar y opcional.
La memoria FLASH es elctricamente grabable/borrable, es decir, para insertar en el PIC un nuevo programa
simplemente se sobreescribe la memoria como si se estuviera programando por primera vez. Esta caracterstica
supone una gran ventaja con la mayora de los microcontroladores, que tienen como memoria de programa
Pgina 4
reescribible una tipo EPROM. Estas se graban elctricamente, pero para cargar un nuevo programa hay que
borrarlas sometiendolas durante cierto tiempo a rayos UV, lo que implica necesariamente sacar del zcalo el
circuito integrado, colocarlo en un borrador de EPROM y esperar un tiempo suficiente para borrar el
microcontrolador.
1.4.1
1.4.2
: 1K x 14 FLASH
: 68 Bytes
M. DE DATOS EEPROM
: 64 Bytes
PILA (STACK)
: De 8 niveles
INTERRUPCIONES
: 4 tipos diferentes
SET DE INSTRUCCIONES
: 35
ENCAPSULADO
: 18 PINES
FRECUENCIA DE TRABAJO
: 20 Mhz (mxima)
TEMPORIZADORES
: TMR0 y WDT
: 13 (5 Puerto A y 8 Puerto B)
: 25 mA
: 25 mA
: De 2V(PIC16LF84) a 6V DC
: De 12 a 14V DC
Vss
OSC1 / CLKIN
OSC2 / CLKOUT
Pin por el cual se aplica la entrada del circuito oscilador externo que proporciona la
frecuencia de trabajo al Microcontrolador.
Pin auxiliar o de salida del circuito oscilador.
MCLR# / Vpp
Este pin se activa con un cero (0) lgico, cada vez que se necesite reinicializar o resetear
al Microcontrolador. Este Pin tambin se usa durante la grabacin de la memoria de
programa para introducir por ella la tensin, Vpp (voltaje pico a pico de grabacin), que
esta comprendida entre 12 y 14V DC.
RA0 - RA4
Son los 5 Pines de E/S digitales correspondientes al Puerto A. El Pin RA4 es de colector
abierto lo que significa que cuando es utilizado como salida se debe conectar una
resistencia a Vcc (5V DC). El pin 3 adems de ser el bit mas significativo del Puerto A,
multiplexa otra funcin expresada por T0CKI. En este caso sirve para recibir una
frecuencia externa para alimentar al temporizador interno TMR0.
RB0 - RB7
Estos 8 pines corresponden a los 8 bits de E/S digitales del Puerto B. El Bit RB0
multiplexa otra funcin, que es la de servir como entrada a una peticin externa de
interrupcin, por eso se le denomina RB0/INT.
Pgina 5
SFR
SFR
03FFh
1.4.3.1
MEMORIA DE PROGRAMA
El microcontrolador PIC16F84A , admite un mapa de memoria de programa capaz de contener 8.192 instrucciones
de 14 bits cada una. Para direccionar 8 K posiciones se necesitan 13 bits, que es la longitud del Contador de
Programa (PC) en este microcontrolador. Sin embargo, el PIC16F84A slo tiene implementadas 1K posiciones, por
lo que ignora los 3 bits de ms peso del PC.
La direccin 0000h esta reservada para el vector de RESET y la 0004h para el VECTOR DE INTERRUPCIN. Adems
Pgina 6
1.4.3.2
MEMORIA DE DATOS
Area de RAM esttica o SRAM: Es aquella donde residen los registros de funciones especiales (SFR) y los
registros de propsito general (GPR). El primero(SFR) tiene 24 registros de 1 Byte cada uno (12 por banco),
la mayora repetidos en ambos bancos. Dos de dichos registros no son operativos: el de la posicin 0h y el 7h.
Los dems registros corresponden al rea general y son 68 (0Ch 4Fh).
Area EEPROM de 64 bytes:Los PIC16F84A tienen una memoria EEPROM de datos de 64 bytes (0h - 3fh),
donde se pueden almacenar datos y variables que interesa que no se pierdan cuando se desconecta la
alimentacin al sistema. Soporta 10.000.000 de ciclos de escritura / borrado y es capaz de guardar la
informacin durante ms de 40 aos. Este bloque de memoria no se encuentra mapeado en ningn
banco, el acceso a esas posiciones (lectura y escritura) se consigue a travs de cuatro registros SFR de la
memoria de datos (RAM).
1.4.3.3
STACK (PILA)
El PIC16F84A tiene una pila de 8 niveles, o en otras palabras, un grupo de 8 posiciones de memoria de 13 bits de
longitud cuya funcin es mantener el valor del contador de programa luego de que ocurra un salto en el programa
hacia otra parte del mismo como ser una subrutina para que una vez finalizada esta el PIC pueda recordar desde
que punto se llam a esta subrutina y continuar normalmente.
Si resulta que la subrutina llama a su vez a otra, ocurre la misma situacin y la nueva posicin que es abandonada
debe guardarse en la PILA, empujando (PUSH) a la posicin original. De esta forma se pueden tener hasta 8
subrutinas anidadas en este microcontrolador.
Pgina 7
1.5
Caractersticas Resumidas
Caractersticas RISC
El alto rendimiento del PIC16F84A puede atribuirse a las siguientes caractersticas de la arquitectura:
Arquitectura Harvard.
1.5.4
Qu es la Arquitectura Harvard?
CPU
Memoria
(Programa &
DATOS)
Memoria
Memoria
CPU
(Programa )
Aumenta el rendimiento
(DATOS )
14
Pgina 8
1.6
Las instrucciones de salto ( CALL, GOTO, etc.) se ejecutan en 2 ciclos (400ns @ 20Mhz)
1.6.4
Direccionamiento Indirecto
BANCO 1 (RAM)
00h
INDF
04h
FSR
Loop
movlw
20h
movwf
FSR
clrf
INDF
incf
FSR
btfss
FSR,7
goto
Loop
----------
Pgina 9
1.7
Perifricos
1.7.3
RESET
Los PIC16F84A tienen cinco causas que provocan el RESET del sistema. Dicho RESET consiste en cargar al PC
(PROGRAM COUNTER) con la posicin del Vector de RESET(direccin 0000h) y poner el estado de los bits de los
registros SFR con los valores DEFAULT.
TMR0 (Timer 0)
- LP:
- RC:
Oscilador RC ( DC a 4 Mhz )
- HS:
La opcin RC es sumamente econmica y se utiliza para aplicaciones insensibles al tiempo pues la frecuencia
obtenida no es muy estable.
La opcin LP reduce el consumo
Oscilador a Cristal
Fig. 1.6 Conexin del oscilador externo a cristal y tabla de valores nominales C1/C2 por rango de frecuencia
Curso Bsico de Microcontroladores PIC16F84A
Pgina 10
Oscilador RC
Tabla 1ssdgfsdf
1.7.6
Es un temporizador opcional que se configura en la palabra de configuracin del PIC al programar el dispositivo. Su
funcin es de mantener al PIC en RESET 72mS fijos desde que se energiza el PIC para asegurar que la
alimentacin (VDD) este totalmente estabilizada cuando el microcontrolador empiece a funcionar normalmente.
1.7.7
Circuitos osciladores basados en cristales o resonadores cermicos requieren un cierto tiempo despus del
encendido para que se establezca la oscilacin. El OST es un oscilador en el chip el cual temporiza el arranque, y
mantiene al dispositivo en una condicin de RESET por 1024 ciclos de reloj despus que finalice el tiempo del
PWRT. Si el PWRT no se habilita, el OST correr desde que se tenga un 1 en el pin MCLR.
Cuando VDD crece muy lentamente, es posible que los retardos del PWRT(si est habilitado) y del OST finalicen
antes de que VDD haya alcanzado su valor final. En estos casos se utiliza una red RC externa conectada al pin
MCLR para prolongar el RESET del PIC.
Pgina 11
escalador.
Puede funcionar en modo SLEEP (bajo consumo).
Es opcional y se setea en la palabra de configuracin del micro (ver ms adelante).
Despertar
El chip puede ser despertado por:
-
bit 13-4
bit 3
bit 2
bit 1-0
Pgina 12