Vous êtes sur la page 1sur 30

Introduccin a los Microcontroladores

1.1 Diferencias bsicas con los microprocesadores




Para poder marcar las diferencias bsicas entre un microprocesador y un microcontrolador
es necesario primero definir a ambos.

Microprocesador: Es un dispositivo digital consistente de un bus de datos, uno de direcciones
y uno de control. Es capaz de tomar informacin en forma de seales
digitales, de procesar esta informacin y de entregarla procesada en forma
de seales digitales.

Microcontrolador: Es un circuito integrado el cual incluye una CPU (Unidad Central de
Proceso), una memoria no voltil para contener el programa (ROM,
PROM, EPROM EEPROM), Una memoria de lectura y escritura para
guardar los datos (RAM que es voltil), Interfaces de entrada y salida,
recursos auxiliares (circuitos de reloj, temporizadores, convertidores
analgico digital, proteccin ante fallas en la alimentacin, entre otras
facilidades).


Como se puede discernir de las definiciones, un microprocesador es un circuito integrado que
contiene una Unidad Central de Proceso, a la cual tambin se le puede llamar como
procesador. Mientras que un microcontrolador es un circuito integrado programable que
contiene todos los componentes de una computadora comn.


Otra diferencia a resaltar es que un microprocesador es un sistema abierto con el cual se
puede construir una computadora con las caractersticas que se desee, adaptndole los
elementos necesarios. Mientras que un microcontrolador es un sistema cerrado que contiene
una computadora completa, pero de prestaciones limitadas que no se puede modificar.


1.2 Usos y aplicaciones


Ya una vez que se ha familiarizado con las definiciones y que se pueden distinguir los
elementos generales de que consta cada uno, es ms fcil reconocer en que elementos de la
vida comn son empleados.

Por ejemplo, un microprocesador bsicamente va a ser encontrado como el cerebro de
cualquier computadora personal. Mientras que un microcontrolador va a ser encontrado en
casi todos los elementos perifricos tales como: impresoras, teclados, ratn, MODEM, etc.

1
Pero un microcontrolador tambin puede ser encontrado en electrodomsticos como:
lavadoras y hornos de microondas. aparatos electrnicos como: Televisores, video
caseteras, cmaras de video, mini componentes musicales, DVDs, telfonos, etc.

Tambin dentro de edificios como: sistemas de supervisin, alarmas, en ascensores,
calefaccin, aire acondicionado, etc. Y dentro de los automviles, en el sistema de ignicin, el
sistema de frenado (ABS), alarmas, en el tablero, etc.


Cada vez existen ms productos que incorporan un microcontrolador con el fin de
aumentar sustancialmente sus prestaciones, reducir su tamao y coste, mejorar su fiabilidad y
disminuir el consumo.

Y as se podran ir citando ms ejemplos, lo que es verdad es que la nica limitante va a
ser la creatividad del usuario para darles un buen uso.


Existe una gran diversidad de microcontroladores. Quiz la clasificacin ms importante sea
entre microcontroladores de 4, 8, 16 32 bits. Aunque las presentaciones de los
microcontroladores de 16 y 32 bits son superiores a los de 4 y 8 bits, la realidad es que los
microcontroladores de 8 bits dominan el mercado y los de 4 bits se resisten a desaparecer. La
razn de esta tendencia es que los microcontroladores de 4 y 8 bits son apropiados para la
gran mayora de las aplicaciones, lo que hace absurdo emplear micros ms potentes y
consecuentemente ms caros. Uno de los sectores que ms tira del mercado del
microcontrolador es el mercado automovilstico, como ya se ha marcado anteriormente. De
hecho, algunas de las familias de microcontroladores actuales se desarrollaron pensando en
este sector, siendo modificadas posteriormente para adaptarse a sistemas ms genricos. El
mercado del automvil es adems uno de los ms exigentes: los componentes electrnicos
deben operar bajo condiciones extremas de vibraciones, choques, ruido, etc. y seguir siendo
fiables.

En cuanto a las tcnicas de fabricacin, cabe decir que prcticamente la totalidad de los
microcontroladores que actualmente se fabrican, se basan en la tecnologa CMOS
(Complementary Metal Oxide Semiconductor). Esta tecnologa supera a las anteriores por su
bajo consumo e inmunidad al ruido.

La distribucin de las ventas segn su aplicacin es la siguiente:

Una tercera parte se absorbe en las aplicaciones relacionadas con las computadoras y los
perifricos.

La cuarta parte se utiliza en las aplicaciones de consumo (electrodomsticos, juegos,
TVs, video, etc.)

El 16% de las ventas mundiales se destin al rea de las comunicaciones.

Otro 16% fue empleado en aplicaciones industriales.
El resto de los microcontroladores vendidos en el mundo, aproximadamente un
2
10% fueron adquiridos por las industrias automotrices.

Tambin los modernos microcontroladores de 32 bits van afianzando sus posiciones en el
mercado, siendo las reas de ms inters el procesamiento de imgenes, las comunicaciones, las
aplicaciones militares, los procesos industriales y el control de dispositivos de almacenamiento
masivo de datos.

A la hora de escoger el microcontrolador a emplear en un diseo concreto hay que tener
en cuenta una multitud de factores, como la documentacin y herramientas de desarrollo
disponibles y su precio, la cantidad de fabricantes que lo producen y por supuesto las
caractersticas del microcontrolador (tipo de memoria de programa, nmero de temporizadores,
interrupciones, etc.).

Costo. Como es lgico, los fabricantes de microcontroladores compiten duramente para vender
sus productos. Y no les va demasiado mal ya que sin hacer demasiado ruido venden 10 veces ms
microcontroladores que microprocesadores. Para que se tenga una idea, para el fabricante que usa
el microcontrolador en su producto una diferencia de precio en el microcontrolador de algunos
pesos es importante (el consumidor deber pagar adems el coste del empaquetado, el de los
otros componentes, el diseo del hardware y el desarrollo del software). Si el fabricante desea
reducir costes debe tener en cuenta las herramientas de apoyo con que va a contar: emuladores,
simuladores, ensambladores, compiladores, etc.

Aplicacin. Antes de seleccionar un microcontrolador es imprescindible analizarlos requisitos de
la aplicacin:

Procesamiento de datos: puede ser necesario que el microcontrolador realice clculos crticos
en un tiempo limitado. En ese caso debemos asegurarnos de seleccionar un dispositivo
suficientemente rpido para ello. Por otro lado, habr que tener en cuenta la precisin de los datos
a manejar: si no es suficiente con un microcontrolador de 8 bits, puede ser necesario acudir a
microcontroladores de 16 32 bits, o incluso a hardware de coma flotante. Una alternativa ms
barata y quiz suficiente es usar libreras para manejar los datos de alta precisin.

Entrada Salida: para determinar las necesidades de Entrada/Salida del sistema es conveniente
dibujar un diagrama de bloques del mismo, de tal forma que sea sencillo identificar la cantidad y
tipo de seales a controlar. Una vez realizado este anlisis puede ser necesario aadir perifricos
hardware externos o cambiar a otro microcontrolador ms adecuado a ese sistema.

Consumo: algunos productos que incorporan microcontroladores estn alimentados con bateras
y su funcionamiento puede ser tan vital como activar una alarma antirrobo. Lo ms conveniente
en un caso como ste puede ser que el microcontrolador est en estado de bajo consumo pero que
despierte ante la activacin de una seal (una interrupcin) y ejecute el programa adecuado para
procesarla.

Memoria: para detectar las necesidades de memoria de nuestra aplicacin debemos separarla en
memoria voltil (RAM), memoria no voltil (ROM, EPROM, etc.) y memoria no voltil
modificable (EEPROM). Este ltimo tipo de memoria puede ser til para incluir informacin
especfica de la aplicacin como un nmero de serie o parmetros de calibracin.

3
En cuanto a la cantidad de memoria necesaria puede ser imprescindible realizar una versin
preliminar, aunque sea en pseudo-cdigo, de la aplicacin y a partir de ella hacer una estimacin
de cunta memoria voltil y no voltil es necesaria y si es conveniente disponer de memoria no
voltil modificable.

Ancho de palabra: el criterio de diseo debe ser seleccionar el microcontrolador de menor
ancho de palabra que satisfaga los requerimientos de la aplicacin. Usar un microcontrolador de 4
bits supondr una reduccin en los costes importante, mientras que uno de 8 bits puede ser el ms
adecuado si el ancho de los datos es de un byte. Los microcontroladores de 16 y 32 bits, debido a
su elevado coste, deben reservarse para aplicaciones que requieran sus altas prestaciones
(Entrada/Salida potente o espacio de direccionamiento muy elevado).

Diseo de la placa: la seleccin de un microcontrolador concreto condicionar el diseo de la
placa de circuitos. Debe tenerse en cuenta que quiz usar un microcontrolador barato encarezca el
resto de componentes del diseo.


1.3 Tecnologas actuales


Los microcontroladores ms populares se encuentran, sin duda, entre las mejores
elecciones son:

8048 (Intel). Es el padre de los microcontroladores actuales, el primero de todos. Su precio,
disponibilidad y herramientas de desarrollo hacen que todava sea muy popular.

8051 (Intel y otros). Es sin duda el microcontrolador ms popular. Fcil de programar, pero
potente. Est bien documentado y posee cientos de variantes e incontables herramientas de
desarrollo.

80186, 80188 y 80386 EX (Intel). Versiones en microcontrolador de los populares
microprocesadores 8086 y 8088. Su principal ventaja es que permiten aprovechar las
herramientas de desarrollo para PC.

68HC11 (Motorola y Toshiba). Es un microcontrolador de 8 bits potente y popular con gran
cantidad de variantes.

683xx (Motorola). Surgido a partir de la popular familia 68k, a la que se incorporan algunos
perifricos. Son microcontroladores de altsimas prestaciones.

PIC (MicroChip). Familia de microcontroladores que gana popularidad da a da. Fueron los
primeros microcontroladores RISC. Es preciso resaltar en este punto que existen innumerables
familias de microcontroladores, cada una de las cuales posee un gran nmero de variantes.
El procesador es el elemento ms importante del microcontrolador y determina sus
principales caractersticas, tanto a nivel hardware como software. Se encarga de direccionar la
memoria de instrucciones, recibir el cdigo de la instruccin en curso, su decodificacin y la
ejecucin de la operacin que implica la instruccin, as como la bsqueda de los operandos y el
almacenamiento del resultado. Existen tres orientaciones en cuanto a la arquitectura y
funcionalidad de los procesadores actuales.
4
CISC: (Complex Instruction Set Computer). Un gran nmero de procesadores usados en
los microcontroladores estn basados en la filosofa CISC (Computadoras de Juego de
Instrucciones Complejas). Disponen de ms de 80 instrucciones mquina en su repertorio,
algunas de las cuales son muy sofisticadas y potentes, requiriendo muchos ciclos para su
ejecucin. Una ventaja de los procesadores CISC es que ofrecen al programador instrucciones
complejas que actan como macros.

RISC: (Reduced Instruction Set Computer). Tanto la industria de los computadores
comerciales como la de los microcontroladores estn tendiendo hacia la filosofa RISC
(Computadoras de Juego de Instrucciones Reducidas). En estos procesadores el repertorio de
instrucciones mquina es muy reducido y las instrucciones son simples y, generalmente, se
ejecutan en un ciclo. La sencillez y rapidez de las instrucciones permiten optimizar el hardware y
el software del procesador.

SISC: (Specific Instruction Set Computer). En los microcontroladores destinados a
aplicaciones muy concretas, el juego de instrucciones, adems de ser reducido, es especfico, esto
quiere decir, que las instrucciones se adaptan a las necesidades de la aplicacin prevista. Esta
filosofa se ha bautizado con el nombre de SISC (Computadoras de Juego de Instrucciones
Especficas).




























5
Microcontroladores de la familia MICROCHIP

La primera de las muchas preguntas que se deben estar haciendo, debe ser el por qu
debo de invertir m tiempo y esfuerzo en aprender a manejar los microcontroladores
MICROCHIP?

La respuesta sera definitivamente difcil de contestar en una forma tajante. Buscando a
cerca de este dispositivo encontr las siguientes caractersticas:

Es sencillo en su manejo.
Hay excelente informacin a cerca del dispositivo.
Precio accesible.
Cuenta con una buena velocidad, consumo, tamao, alimentacin, conjunto de
instrucciones reducido.
Herramientas de desarrollo poco complicadas de manejar.
Disponibilidad inmediata.
Compatibilidad en el software en todos los modelos de la misma gama.
Bajo consumo y gama amplia de voltajes.
Existe variedad de software libre.
Hay una variedad de PICS acorde al problema a resolver.

Y en definitiva dicho conjunto de caractersticas han llevado a la compaa MICROCHIP a
ocupar el segundo lugar en las ventas, compitiendo con Intel y Motorola.


Elementos que componen la familia MICROCHIP


La gama enana: PIC12C(F)XXX de 8 patitas


Se trata de un grupo de PIC de reciente aparicin. Su principal caracterstica es su
reducido tamao, al disponer todos sus componentes de 8 patitas. Se alimentan con un voltaje de
corriente continua comprendido entre 2,5 V y 5,5 V, y consumen menos de 2 mA cuando trabajan
a 5 V y 4 MHz. El formato de sus instrucciones puede ser de 12 o de 14 bits y su repertorio es de
33 o 35 instrucciones, respectivamente. En la Figura 2.1 se muestra el diagrama de conexionado
de uno de estos PIC.


Fig. 2.1: Diagrama de conexiones de los PIC12C5XX de la gama enana.
6

En la familia PIC12C5XX, son microcontroladores que operan bajo la tecnologa CMOS,
son de precio bajo.

Usan la tecnologa tipo Harvard y un procesador segmentado

, con lo cual se consigue


que el ciclo de ejecucin de una instruccin sea de un microsegundo cuando opera a una
frecuencia de 4MHz.

En la Tabla 2.1 se presentan las principales caractersticas de los modelos de esta
subfamilia, que el fabricante tiene la intencin de potenciar en un futuro prximo. Los modelos
12C5xx pertenecen a la gama baja, siendo el tamao de las instrucciones de 12 bits; mientras que
los 12C6xx son de la gama media y sus instrucciones tienen 14 bits. Los modelos 12F6xx poseen
memoria Flash para el programa y EEPROM para los datos.


Tabla 2.1. Caractersticas de los modelos PIC12C(F)XXX de la gama enana.

Nota: TMR0 ndica interrupcin por desborde y WDT el perro guardin.


Gama baja o bsica: PIC16C5X con instrucciones de 12 bits

Se trata de una serie de PIC de recursos limitados, pero con una de la mejores relaciones
costo/prestaciones. Sus versiones estn encapsuladas con 18 y 28 patitas y pueden alimentarse a
partir de una tensin de 2,5 V, lo que les hace ideales en las aplicaciones que funcionan con pilas
teniendo en cuenta su bajo consumo (menos de 2 mA a 5 V y 4 MHz). Tienen un repertorio de 33
instrucciones cuyo formato consta de 12 bits. No admiten ningn tipo de interrupcin y la Pila
slo dispone de dos niveles. En la Figura 2.2 se muestra el diagrama de conexionado de uno de
estos PIC.


Fig. 2.2: Diagrama de patitas de los PIC de la gama baja que responden a la nomenclatura

Se aplica la tcnica de segmentacin (pipe-line) en la ejecucin de las instrucciones. La segmentacin permite al


procesador realizar al mismo tiempo la ejecucin de una instruccin y la bsqueda del cdigo de la siguiente. De esta
forma se puede ejecutar cada instruccin en un ciclo (un ciclo de instruccin equivale a cuatro ciclos de reloj). Las
instrucciones de salto ocupan dos ciclos al no conocer la direccin de la siguiente instruccin hasta que no se haya
completado la de bifurcacin.
7
PIC16C54/56.

Al igual que todos los miembros de la familia PIC16/17, los componentes de la gama baja se
caracterizan por poseer los siguientes recursos: (en la Tabla 2.2 se presentan las principales
caractersticas de los modelos de esta familia).

1. Sistema POR (Power On Reset). Todos los PIC tienen la facultad de generar una
autoreinicializacin o autoreset al conectarles la alimentacin.

2. Perro guardin (Watchdog o WDT). Existe un temporizador que produce un reset
automticamente si no es recargado antes que pase un tiempo prefijado. As se evita que el
sistema quede colgado dado en esa situacin el programa no recarga dicho temporizador y se
genera un reset.

3. Cdigo de proteccin. Cuando se procede a realizar la grabacin del programa, puede
protegerse para evitar su lectura. Tambin disponen los PIC de posiciones reservadas para
registrar nmeros de serie, cdigos de identificacin, prueba, etc.


Tabla 2.2. Caractersticas de los modelos PIC16C(R)5X de la gama baja

4. Lneas de E/S de alta corriente. Las lneas de E/S de los PIC pueden proporcionar o absorber
una corriente de salida comprendida entre 20 y 25 mA, capaz de excitar directamente ciertos
perifricos.

5. Modo de reposo (Bajo consumo o sleep). Ejecutando una instruccin (SLEEP), la CPU y el
oscilador principal se detienen y se reduce notablemente el consumo. Para terminar el comentario
introductorio sobre los componentes de la gama baja conviene nombrar dos restricciones
importantes:

La pila o stack slo dispone de dos niveles lo que supone no poder
encadenar ms de dos subrutinas.

Los microcontroladores de la gama baja no admiten interrupciones.
8
Gama media. PIC16CXXX con instrucciones de 14 bits


Es la gama ms variada y completa de los PIC. Abarca modelos con encapsulado desde 18
patitas hasta 68, cubriendo varias opciones que integran abundantes perifricos. Dentro de esta
gama se halla el PIC16X84 y sus variantes. En la Figura 2.3 se muestra el diagrama de
conexionado de uno de estos PIC.


Fig. 2.3. Diagrama del PIC16C74, uno de los modelos de la gama media.


En esta gama sus componentes aaden nuevas prestaciones a las que posean los de la
gama baja, hacindoles ms adecuados en las aplicaciones complejas. Admiten interrupciones,
poseen comparadores de magnitudes analgicas, convertidores A/D, puertos serie y diversos
temporizadores.

El repertorio de instrucciones es de 35, de 14 bits cada una y compatible con el de la gama
baja. Sus distintos modelos contienen todos los recursos que se precisan en las aplicaciones de los
microcontroladores de 8 bits. Tambin dispone de interrupciones y una Pila de 8 niveles que
permite el anidamiento de subrutinas.

La gama media se clasifica en:

Gama media estndar (PIC16C55X).
Gama media comparador analgico (PIC16C62X/64X/66X).
Gama media con modulo de captura (CPP), modulacin de ancho de pulso (PWM) y
puerto serie (PIC16CX).
Gama media con CAD de 8 bits (PIC16C7X).
Gama media con CAD de precisin (PIC14000).
Gama media con memoria Flash y EEPROM (PIC16F87X y PIC16X8X).
Gama media con driver LCD (PIC16C92X).

En la Tabla 2.3 se presentan las principales caractersticas de los modelos de esta familia.
9

Tabla 2.3. Caractersticas relevantes de los modelos PIC16X8X de la gama media.


Cabe destacar que se tiene tambin el PIC14C000, que soporta el diseo de controladores
inteligentes para cargadores de bateras, pilas pequeas, fuentes de alimentacin ininterrumpidas.
Admiten cualquier tecnologa de bateras como LiIon, NiMH, NiCd, Pb y Zn.


Gama alta: PIC17CXXX con instrucciones de 16 bits.


Se alcanzan las 58 instrucciones de 16 bits en el repertorio y sus modelos disponen de un
sistema de gestin de interrupciones vectorizadas muy potente. Tambin incluyen variados
controladores de perifricos, puertas de comunicacin serie y paralelo con elementos externos, un
multiplicador hardware de gran velocidad y mayores capacidades de memoria, que alcanza los 8k
palabras en la memoria de instrucciones y 454 bytes en la memoria de datos.

Quizs la caracterstica ms destacable de los componentes de esta gama es su
arquitectura abierta, que consiste en la posibilidad de ampliacin del microcontrolador con
elementos externos. Para este fin, las patitas sacan al exterior las lneas de los buses de datos,
direcciones y control, a las que se conectan memorias o controladores de perifricos. Esta
facultad obliga a estos componentes a tener un elevado nmero de patitas comprendido entre 40 y
44. Esta filosofa de construccin del sistema es la que se empleaba en los microprocesadores y
no suele ser una prctica habitual cuando se emplean microcontroladores. En la tabla 2.4 se
muestran las caractersticas ms relevantes de los modelos de esta gama, que slo se utilizan en
aplicaciones muy especiales con grandes requerimientos.


Tabla 2.4. Caractersticas ms destacadas de los modelos PIC17CXXX de la gama alta.

Nota: C: Indica que la memoria de instrucciones es EEROM.
F: Indica que la memoria de instrucciones es tipo Flash.
CR: Indica que la memoria de instrucciones es ROM y se graba en fbrica.

10
PICS de gama mejorada, PIC18C(F)XXX con instrucciones de 16 bits


Son aplicados en la industria de los automviles, comunicaciones y control industrial. Sus
modelos proveen una alta velocidad (40 Mhz).

Tienen un espacio de direccionamiento de memoria de progama que permite alcanzar los
2MB y 4KB para la memoria de datos.

Tecnologa flash para la memoria de cdigo.

Conjunto de 77 instrucciones de 16 bits cada una.

Orientacin a la programacin en lenguaje C con la incorporacin de compiladores.

Y nuevas herramientas para la emulacin.


Inicialmente aparecieron cuatro modelos (PIC18C242/252/442/452) con 28 a 40 pines, que
tenan hasta 16KB de memoria de programa y hasta 1.536 bytes de RAM. Pueden funcionar a
40Mhz, con 16 causas de interrupcin, 4 temporizadores, dos mdulos CCP, convertidores A/D
de 5 u 8 canales y comunicacin serie y paralelo.


2.1 PIC 16F84A


El microcontrolador PIC16F84A de la marca Microchip es del tipo de 8 bits con
EEPROM tipo flash reforzado encapsulado de 18 patas. El elevado rendimiento de este
microprocesador de diseo avanzado permite realizar una gran cantidad de funciones y
prestaciones como veremos a continuacin.

Caractersticas del PIC

Esta familia de microcontroladores PIC se destaca por las siguientes prestaciones
especiales:

Slo se necesitan 35 instrucciones de una sola palabra para usarlo.
Todas las instrucciones son de un solo ciclo con excepcin de las ramificaciones del
programa que son de dos ciclos.
La velocidad de funcionamiento es de DC a 20MHz en la entrada del clock y de DC a
200ns en el ciclo de instrucciones.
La memoria del programa tiene capacidad para 1024 palabras.
La memoria RAM de datos es de 80 bytes.
La memoria de datos EEPROM es de 64 bytes.
Las palabras de instrucciones tienen una extensin de 14 bits.
Los bytes de datos tienen una extensin de 8 bits.
Posee 15 registros de hardware de funciones especiales.
11
Tiene una Pila de hardware de ocho niveles.
Procesa modos de acceso directo, indirecto y relativo.
Tiene cuatro fuentes de interrupciones:

Caractersticas Perifricas

13 patas I/O con control individual de direccin.
Fuente de alta corriente para excitacin directa de LEDs:
25 mA mximo de sink ( nodo) por pata
25 mA mximo de source (ctodo) por pata.
Temporizador/contador de 8 bits TMR0 con preescaler (divisor de frecuencia)
programable de 8 bits.

Caractersticas Especiales del Microcontrolador

Memoria de programa de 1000 ciclos de escritura/borrado de flash reforzado.
Memoria de datos EEPROM de 1.000.000 de ciclos de borrado/escritura tpica.
Retencin de datos de EEPROM de >40 aos.
Programacin en serie dentro del circuito (ICSP = In Circuit Serial Programming)
mediante dos patas.
Power-on Reset (POR), Power-up Timer (PWRT), Oscillator Start-up Timer (OST).
Watchdog Timer (WDT) con su propio oscilador RC incorporado en el chip para un
funcionamiento confiable.
Proteccin de cdigos.
Modo SLEEP para economizar consumo.
Opciones seleccin de oscilador.
Tecnologa CMOS con Flash reforzado y EEPROM. Lo cual implica contar con
tecnologa de baja potencia y alta velocidad.
Diseo esttico completo.
Rango amplio de tensiones de funcionamiento: Comercial: 2,0 Volt a 5.5 V. y industrial:
2.0 Volt a 5.5 V.
Consumo muy bajo: 2mA tpico a 5 Volts, 4MHz y 15mA tpico a 2 Volts, a 32kHz


Fig. 2.4: Ubicacin de los pines del PIC16F84A

12
Patas 1, 2, 3 17 y 18 - RA0-RA4/TOCK1 : Es el PORT A. Corresponden a 5 lneas
bidireccionales de E/S. Es capaz de entregar niveles TTL cuando la tensin de alimentacin
aplicada en VDD es de 5V 5%. El pin RA4, si se programa como salida es de colector abierto.
Como entrada puede programarse en funcionamiento normal o como entrada del
contador/temporizador TMR0.

Pata 4 - MCLR / Vpp: Es una pata de mltiples aplicaciones, es la entrada de Reset si est a nivel
bajo y tambin es la habilitacin de la tensin de programacin cuando se est programando el
dispositivo. Cuando su tensin es la de VDD el PIC funciona normalmente.

Patas 5 y 14 - VSS y VDD: Son respectivamente las patas de tierra y alimentacin. La tensin de
alimentacin de un PIC est comprendida entre 2V y 6V aunque se recomienda no sobrepasar los
5,5V. Dependiendo de la letra que posea al final el PIC ser la tensin admisible. Los modelos
que contienen las letras C, F o CR admiten tensiones de alimentacin comprendidas entre 4V y
4,5V como mnimo hasta 5,5V a 6V como mximo. Los modelos que contienen las letras LC, LF
o LCR admiten desde 2V a 6V.

Patas 6, 7, 8, 9, 10, 11, 12, 13 - RB0-RB7: Es el PORT B. Corresponden a ocho lneas
bidireccionales de E/S. Pueden manejar niveles TTL cuando la tensin de alimentacin aplicada
en VDD es de 5V 5%. RB0 puede programarse adems como entrada de interrupciones
externas INT. Los pines RB4 a RB7 pueden programarse para responder a interrupciones por
cambio de estado. Las patas RB6 y RB7 corresponden a las lneas de entrada de reloj y entrada de
datos respectivamente, cuando est en modo programacin del integrado.

Patas 15 y 16 - OSC1/CLKIN y OSC2/CLKOUT: Corresponden a los pines de la entrada externa
de reloj y salida de oscilador a cristal respectivamente. Los distintos elementos de la familia
16X84X, dependiendo de la nomenclatura que utilizan tienen distintas caractersticas de
frecuencia mxima de funcionamiento, tipo de oscilador utilizado para generar frecuencias de
reloj y margen de la tensin de alimentacin.

Los microcontroladores PIC, permiten cuatro tipos de osciladores externos para aplicarles la
frecuencia de funcionamiento. Durante el proceso de grabacin, antes de introducir el programa
en memoria, debe indicarse el tipo de oscilador empleado en los bits FOSC1 y FOSC2 de la
Palabra de Configuracin. Los tipos de osciladores que pueden utilizar los PIC16X54/84 son:

Oscilador de cristal o resonador de alta velocidad "HS"(High Speed
Crystal/Resonator): Es un oscilador con una frecuencia comprendida entre 4MHz y
20MHz.

Oscilador o resonador cermico "XT" (Crystal/Resonator): Es un oscilador
estndar que permite una frecuencia de clock mxima de 4MHz.

Oscilador a cristal o resonador cermico de baja potencia "LP" (Low Power
Crystal): Se trata de un oscilador de bajo consumo construido con un cristal de
cuarzo un resonador diseado para trabajar con frecuencias comprendidas entre
30kHz y 200kHz.

13
Oscilador RC (resistencia capacitor): Tambin es posible construir un oscilador
mediante la colocacin de una resistencia y un capacitor externo. Se trata de un
oscilador de bajo costo.


Fig. 2.5: Diagrama a bloques del PIC16F84

Arquitectura del PIC

El procesador es segmentado tipo pipe-line. Lo que significa que aplica la tcnica de
segmentacin que permite al procesador realizar simultneamente la ejecucin de una
instruccin y la bsqueda del cdigo de la siguiente instruccin. Esto permite que se
pueda ejecutar una instruccin en un ciclo. (Cada ciclo de instruccin son cuatro ciclos de
reloj).

El procesador es de tipo RISC. Slo se utilizan 35 instrucciones para su manejo.

Poseen una arquitectura tipo Harvard. Por tanto tienen un BUS de comunicacin
independiente para la memoria de datos y la memoria de programa.

Son de arquitectura ortogonal basada en banco de registros. Esto significa que
cualquier instruccin puede utilizar cualquier elemento de la arquitectura como fuente o
destino. Todos los elementos del sistema (temporizadores, puertos in/out, posiciones de
memoria, etc.), estn implementados fsicamente como registros.






14
Caractersticas tcnicas del PIC16F84


El PIC16F84, es un circuito integrado programable de 8 bits, el cual est clasificado con
un microcontrolador de gama media, que tiene las siguientes prestaciones:

Slo se necesitan 35 instrucciones para ser programado.
Todas las instrucciones son de un solo ciclo con excepcin de las ramificaciones del
programa que son de dos ciclos.
La velocidad de funcionamiento es de DC a 20MHz en la entrada del clock.
La memoria del programa tiene capacidad para 1024 palabras.
Las palabras de instrucciones tienen una extensin de 14 bits.
La memoria RAM de datos es de 80 bytes.
La memoria de datos EEPROM es de 64 bytes.
Los datos tienen una extensin de 8 bits.
Posee 15 registros de hardware de funciones especiales.
Tiene una Pila de hardware de ocho niveles.
Procesa modos de acceso directo, indirecto y relativo.
Tiene cuatro fuentes de interrupciones.

Caractersticas Perifricas


13 patas I/O con control individual de direccin.
Fuente de alta corriente para excitacin directa de LEDs.
Temporizador/contador de 8 bits TMR0 con ajuste de escala (divisor de frecuencia)
programable de 8 bits.

Caractersticas Especiales del Microcontrolador

Memoria de programa de 1000 ciclos de escritura/borrado de flash reforzado.
Programacin en serie dentro del circuito (ICSP = In Circuit Serial Programming),
mediante dos patas.
Power-on Reset (POR), Power-up Timer (PWRT), Oscillator Start-up Timer (OST).
Watchdog Timer (WDT) con su propio oscilador RC incorporado en el chip para un
funcionamiento confiable.
Proteccin de cdigos.
Modo SEP, para economizar consumo.
Opciones seleccin de oscilador, (4 en total).
Tecnologa CMOS con Flash reforzado. Lo cual implica contar con tecnologa de baja
potencia y alta velocidad.
Diseo esttico completo.
Rango amplio de tensiones de funcionamiento: Comercial: 2.0 V a 5.5 V. y industrial: 2.0
Volt a 6.0 V.
Consumo muy bajo: 2mA tpico a 5 V y operando a 4MHz.



15
Distribucin y propsito de los pines del PIC16F84A



Figura 1. Distribucin de los pines del PIC16F84A

Patas 1, 2, 3 17 y 18 - RA0-RA4/TOCK1: Integran el Puerto A. Corresponden a 5 lneas
bidireccionales de E/S. Es capaz de entregar niveles TTL cuando la tensin de alimentacin
aplicada en V
DD
es de 5V - 5%. El pin RA4, si se programa como salida es de colector abierto.
Como entrada puede programarse en funcionamiento normal o como entrada del
contador/temporizador TMR0.

Pata 4 - MCLR / Vpp: Es un pin de mltiples aplicaciones, es la entrada del Reset, si est a nivel
bajo y tambin es la habilitacin de la tensin de programacin cuando se est programando el
dispositivo. Cuando su tensin es la de V
DD
el PIC funciona normalmente.

Patas 5 y 14 - V
SS
y V
DD
: Son respectivamente los pines de tierra y alimentacin. La tensin de
alimentacin de un PIC est comprendida entre 2.5V y 6V aunque se recomienda no sobrepasar
los 5,5V. Dependiendo de la letra que posea al final el PIC ser la tensin admisible. Los
modelos que contienen las letras C, F o CR admiten tensiones de alimentacin comprendidas
entre 4V y 4,5V como mnimo hasta 5,5V a 6V como mximo. Los modelos que contienen las
letras LC, LF o LCR admiten desde 2V a 6V.

Patas 6, 7, 8, 9, 10, 11, 12, 13 - RB0-RB7: Integran el PORT B. Corresponden a ocho lneas
bidireccionales de E/S. Pueden manejar niveles TTL cuando la tensin de alimentacin aplicada
en V
DD
es de 5V 5%. RB0 puede programarse adems como entrada de interrupciones externas
INT. Los pines RB4 a RB7 pueden programarse para responder a interrupciones por cambio de
estado. Las patas RB6 y RB7 corresponden a las lneas de entrada de reloj y entrada de datos
respectivamente, cuando est en modo programacin del circuito integrado.

Patas 15 y 16 - OSC1/CLKIN y OSC2/CLKOUT: Corresponden a los pines de la entrada externa
de reloj y salida de oscilador a cristal respectivamente. Los distintos elementos de la familia
16X84X, dependiendo de la nomenclatura que utilizan tienen distintas caractersticas de
frecuencia mxima de funcionamiento, tipo de oscilador utilizado para generar frecuencias de
reloj y margen de la tensin de alimentacin.


16
Los tipos de osciladores que pueden utilizar los PIC16X84 son:

Oscilador de cristal o resonador de alta velocidad HS, (High Speed
Crystal/Resonator): Es un oscilador con una frecuencia comprendida entre 4MHz y
20MHz.

Oscilador o resonador cermico XT, (Crystal/Resonator): Es un oscilador estndar
que permite una frecuencia del reloj mxima de 4MHz.

Oscilador a cristal o resonador cermico de baja potencia LP, (Low Power
Crystal): Se trata de un oscilador de bajo consumo construido con un cristal de cuarzo
un resonador diseado para trabajar con frecuencias comprendidas entre 30kHz y
200kHz.

Oscilador RC (resistencia capacitor): Tambin es posible construir un oscilador
mediante la colocacin de una resistencia y un capacitor externo. Se trata de un
oscilador de bajo costo y baja frecuencia.

Diagrama a bloque del PIC16F84A


Figura 2: Diagrama a bloques del PIC16F84A

Caractersticas del procesador del PIC16F84

El procesador es segmentado tipo pipe-line. Lo que significa que aplica la tcnica de
segmentacin que permite al procesador realizar simultneamente la ejecucin de una
instruccin y la bsqueda del cdigo de la siguiente instruccin. Esto permite que se
pueda ejecutar una instruccin en un ciclo. (Cada ciclo de instruccin son cuatro ciclos de
reloj).

17
El procesador es de tipo RISC. Slo se utilizan 35 instrucciones para su manejo.

Poseen una arquitectura tipo Harvard. Por tanto tienen un BUS de comunicacin
independiente para la memoria de datos y la memoria de programa.

Son de arquitectura ortogonal basada en banco de registros. Esto significa que
cualquier instruccin puede utilizar cualquier elemento de la arquitectura como fuente o
destino. Todos los elementos del sistema (temporizadores, puertos in/out, posiciones de
memoria, etc.), estn implementados fsicamente como registros.


Organizacin de la memoria

En el PIC16F84A existen dos bloques de memoria. Estos son la memoria del programa y
la memoria de datos. Cada bloque posee su propio bus, de tal forma que el acceso a cada uno
puede producirse durante el mismo ciclo del oscilador.



Memoria de Programas: El PIC16FXX
posee un contador de programas de 13 bits
capaz de direccionar un espacio de memoria
de programas de 8k x 14 bits. Para el
PIC16F84A, los primeros 1k x 14bits
(0000h-03FFh) estn fsicamente
implementados.


Memoria de datos: La memoria de datos
est repartida en dos reas. La primera es el
rea de Registros de Funciones Especiales
(SFR, Special Function Registers), mientras
que la segunda es el rea de Registro de
Propsitos Generales (GPR, General
Purpose Functions). Ver figura 3.


Los registros SFR controlan el
funcionamiento del dispositivo. El rea de
GPR es apilado para permitir ms que 116
bytes de RAM de uso general, para manejar
valores variables.

Figura 3: Mapa de Memoria RAM de Datos.


18
Instrucciones


Una instruccin es un comando parte de un programa que se le aplica a un procesador
para que lo interprete y ejecute su cumplimiento.

Las instrucciones para el PIC16F84 constan de 14 bits, los cuales son divididos en
diferentes campos de bits, donde, cada uno referencia a operandos o elementos que maneja la
instruccin en la operacin.

a) Campo del cdigo operativo. Definen la operacin de la instruccin.
b) Campo de los operandos fuente (f) y destino (d). Definen los registros que actan
como operandos en la instruccin.
c) Campo de operando inmediato o literal (k). Contiene el valor de un operando
inmediato.
d) Campo de referencia a un bit. Suele ser de 3 bits que indica la posicin de un bit
dentro de un registro de 8 bits. (b).
e) Campo de direccin de salto. Los bits de este campo contienen la direccin de la
siguiente instruccin a ejecutar.

Acorde con el tipo de operacin que desarrollan el repertorio de instrucciones se clasifican en
5 grupos.

1. Operaciones orientadas a manejar registros de tamao de un byte.
2. Operaciones orientadas a manejar bits.
3. Operaciones que manejan valores inmediatos.
4. Operaciones incondicionales de control del flujo de programa.
5. Operaciones de salto condicional.


Operaciones orientadas a manejar registros de tamao de un byte


Esta dividido en 3 campos.

1. Campo del cdigo operativo de 6 bits.
2. Campo que define el operando destino (d) de 1 bit. [ ] 1 , 0 d .
3. Campo de la direccin del operando fuente (f) de 7 bits. 0 . 127 f

Su sintaxis es: Mnemnico f,d.

, el registro destino es w. 0 = d
1 = d , el registro destino es f.

Ejemplo 1:

Hallar el formato de la instruccin incf f,d que utiliza como operando fuente el registro
que ocupa la direccin 0x07 de la memoria de datos y como registro destino el mismo.
19
20
Campo del cdigo operativo: 001010
Campo del destino: 1
Campo del operando fuente: 0000111

El formato queda: incf 0x07,1: 00101010000111

Ejemplo 2:

Realizar la operacin lgica AND entre el registro de trabajo (w) y el operando fuente,
el registro que ocupa la direccin 0x3C, de la memoria de datos. Se desea que el resultado
permanezca en el registro de trabajo.

Sintaxis: ANDWF 0x3C,0
Codificacin: 00010100111100
Palabras: 1
Ciclos 1
Operacin: (w) and (0x3C) -> w.


Operaciones orientadas a manejar bits

Se componen de los siguientes campos.

1. Campo del cdigo operativo de 4 bits.
2. Campo de la posicin del bit en el registro de 3 bits.
3. Campo de la direccin del registro fuente de 7 bits.

Ejemplo 3:

Tras efectuase un proceso de reinicio (reset), el procesador comienza haciendo referencia
al Banco 0, de la memoria RAM de datos. Para hacer referencia al Banco 1 de la memoria RAM
de datos hay que colocar a 1 el bit de nombre RP0, que ocupa la posicin 5 del registro de
propsito especial STATUS. Haga dicha operacin.

Sintaxis: BSF STATUS,5 o BSF STATUS,RP0
Codificacin: 01011010000011
Palabras: 1
Ciclos 1
Operacin: <RP0,STATUS> =1.


Operaciones que manejan valores inmediatos o literal

Constan de dos campos.

1. Campo del cdigo operativo de 6 bits.
2. Campo del valor inmediato (k) con 8 bits.

21
Ejemplo 4:

Cargar el registro de trabajo (w) el valor inmediato 0XA3.

Sintaxis: MOVLW 0xA3
Codificacin: 1100XX10100011
Palabras: 1
Ciclos 1
Operacin: A3
h
-> w.

Formas en que se deben utilizar los valores en las distintas bases.

ASCII: AC, C
Binario: b10101010, B10101010
Decimal: D100, d100,.100
Hexadecimal: 0x9f, h9f, H9F,9Fh
Octal: o77


Operaciones incondicionales de control del flujo de programa

Afectan al contador de programa, PC, y rompen la secuencia ordenada del programa.
Constan de dos campos:

1. Cdigo del campo operativo, de 3 bits.
2. Campo de direccin de salto que se carga en el contador de programa de 11 bits.


Operaciones de salto condicional


Cuando se cumple la condicin dan un brinco. Especficamente slo salta la instruccin
que hay detrs del condicional.

La condicin es el estado de un bit de un registro o la puesta a cero de un registro tras un
decremento o un incremento. Constan de 3 campos:

1. Campo del cdigo operativo, de 6 bits.
2. Campo del destino, de 1 bit.
3. Campo de la direccin del registro, de 7 bits.

Ejemplo 5:

Decrementar el registro que ocupa la direccin 0x3B de la RAM de datos, depositar el
resultado en el mismo registro y se debe de brincar en caso de que dicho resultado valga cero.

Sintaxis: DECFSZ 0X3B,1
Codificacin: 00101110111011
Palabras: 1
Ciclos 1 mientras no se cumpla la condicin y 2 al momento de efectuar el salto.
Operacin: (0x3B) 1 -> 0x3B, (0x3B) = 0?.


Cmo realizar un programa utilizando el conjunto de
instrucciones para los Pics de gama media?


Para describir la forma en que se programa para un PIC de gama media se realizarn los
siguientes tres programas a manera de ejemplos.


Practica 1

Realizar un programa utilizando el conjunto de instrucciones para un PIC de gama media,
que efecte la suma del contenido de dos registros cuyos nombres deben ser OPER1 y OPER2. El
resultado de la suma deber ser colocado en un registro de nombre RESULTADO.

En la figura 4, se muestra el diagrama del flujo para la solucin de este programa.

END
(W)->RESULTADO
(W)+OPER2->W
OPER1->W
OPER1= Primer nmero a sumar.
OPER2= Segundo nmero a sumar.
Suma de dos
operandos






















Figura 4. Diagrama de flujo para efectuar la suma del contenido de dos registros.




22
Ahora se muestra el programa que efecta la tarea requerida.




Practica 2


Implementar una cerradura electrnica, la cual slo activar la salida si por medio
de un dip switch se pone la combinacin (10101)b.


EQUIPO

Fuente de voltaje de 5 Volts
Multmetro
Computadora Personal
Programador de microcontroladores PIC


23
24
MATERIALES

1 PIC16F84A
1 Dip Switch de 8 posiciones
9 R de 10K
1 R
1
de 330
1 R
2
de 100
1 D 1N4148
1 D
1
diodo led
1 S
b
Push button, normalmente abierto.
1 XTAL de 4MHz.
2 C de 15pF. (Pueden ser valores entre 15pF a 33pF).
1 Display de 7 segmentos ctodo comn.
Programa fuente
Protoboard
Cables
Pinzas.


Introduccin terica

Puertos


El PIC16F84, cuenta con dos puertos, para introducir y suministrar seales de tipo digital,
denotados como PORTA y PORTB.


PORTA (0X05)

Las lneas de entrada y salida de seales digitales corresponden a los pines 17, 18, 1, 2, y
3. Los cuales llevan por nombre RA0, RA1, RA2, RA3 y RA4/T0CKl; respectivamente.

RA0 a RA3, admite niveles de entrada TTL y salida CMOS.
RA4/T0CKl, dispone de un circuito Schmitt Trigger, el cual proporciona inmunidad al
ruido. RA4/T0CKl multiplexa su funcin de entrada y salida de seales digitales con la de
entrada de pulsos para el contador que tiene integrado.


TRISA (0X85)


Dado que el puerto A, puede manejar el ingreso y suministro de seales digitales, por
cualquiera de sus 5 lneas, entonces es necesario configurar adecuadamente el registro TRISA
(ubicado en el banco 1 de la memoria RAM de datos), para el ingreso y suministro de seales.
Esto se realiza de la siguiente manera:

Si alguno de los bits que integran al registro TRISA, esta con un valor igual a 0, la
correspondiente lnea estar configurada como salida.

Si alguno de los bits que integran al registro TRISA, esta con un valor igual a 1, la
correspondiente lnea estar configurada como entrada.

Nota: El estado de los bits que integra al registro TRISA, tras un reset sus correspondientes
valores sern igual con 1. Por lo que el puerto A estar configurado como entrada.


PORTB (0X06)


Este puerto consta de 8 lneas de entrada y salida, denotadas como RB0 a RB7.
Fsicamente, corresponden a los pines del nmero 6 al 13 del circuito integrado, respectivamente.


Caractersticas

1. La lnea RB0/INT. Se puede usar de las dos maneras siguientes. Como una simple lnea
de entrada/salida de una seal digital y para el maneje de interrupcin por activacin.

2. Cada uno de las lneas que conforman a este puerto, tienen internamente conectados una
resistores limitadores (Pull-up), de elevado valor. Las cuales siempre estn desactivadas.

3. Las lneas RB4 a RB7, cuando estn configuradas como entrada pueden ser programadas
para manejar la interrupcin por cambio de estado.

4. Adems, cuando se tiene un V
CD pp
V 14 12 = , la lnea RB6 sirve para la grabacin serie
de la memoria de programa, soportando la seal de reloj. Y RB7, constituye la entrada de
los datos en serie, cuando se graba un programa en la memoria de cdigo.


Ambos puertos trabajan de la siguiente manera:


LECTURA MODIFICACIN ESCRITURA
(Contenido del puerto) (El valor) (En la Latch

de salida)


El puerto A puede suministrar hasta 80 mA y absorber hasta 50 mA. Cuando se trabaja
con una sola lnea puede suministrar hasta 20 mA y absorber hasta 25 mA.

El puerto B puede suministrar hasta 100 mA y absorber hasta 150 mA. Cuando se trabaja
con una sola lnea puede suministrar hasta 20 mA y absorber hasta 25 mA.

Latch: Es un circuito electrnico, que permite retener datos en una posicin de preparacin hasta que sea pedido,
generalmente por otro circuito electrnico.
25
DESARROLLO

1) Armar, un Protoboard, el siguiente circuito. Ver figura 5.


Figura 5. Circuito de una cerradura electrnica.

La forma en que se debe de proceder para realizar el programa est indicado en el
diagrama de flujo que aparece en la figura 6.


Figura 6. Diagrama de flujo para elaborar el programa de la cerradura electrnica.
26
Programa para el control de la cerradura electrnica.




Una vez cargado con el programa se quita del programador y se coloca en la base del circuito
para aplicaciones, circuito de la figura 5.













27
Practica 3


Realizar un programa y un circuito electrnico haciendo uso del PIC16F84A, para
que realice el desplegado en cdigo hexadecimal en un display de 7 segmentos ctodo
comn, del cdigo binario que introduzca mediante interruptores, 4 en total; al
microcontrolador.

Nota: Un interruptor abierto representa un 1 lgico.

El circuito electrnico aparece en la figura 7.


Figura 7. Circuito electrnico del convertidor de binario a hexadecimal.

En la figura 8, se muestra el diagrama de flujo que se debe seguir para que pueda realizar
el programa correspondiente al convertidor de cdigo binario a hexadecimal.




28

Figura 8: Diagrama de flujo del convertidor de cdigo binario a hexadecimal.


En la figura 9, aparece el programa para realizar la conversin de cdigo binario a
hexadecimal. Capture el correspondiente cdigo en una hoja de trabajo de MPLAB, y cargue el
programa en el PIC16F84. Despus arme el circuito de la figura 7 y compruebe su correcto
funcionamiento.












29


Figura 9. Programa para realizar la conversin de cdigo binario a hexadecimal.


30

Vous aimerez peut-être aussi