MICROCONTROLADORES «PIC»
DISEÑO PRÁCTICO DE APLICACIONES
Primera parte
PIC12F508 Y PIC16F84A
Lenguajes Ensamblador, C y PBASIC
4.a edición
MICROCONTROLADORES «PIC»
DISEÑO PRÁCTICO DE APLICACIONES
Primera parte
PIC12F508 Y PIC16F84A
Lenguajes Ensamblador, C y PBASIC
4.a edición
JOSÉ MARÍA ANGULO USATEGUI
Doctor Ingeniero Industrial
Catedrático de Arquitectura de Computadores
en la Universidad de Deusto
IGNACIO ANGULO MARTÍNEZ
Licenciado en Informática
Profesor del Departamento de Arquitectura de Computadores
en la Universidad de Deusto
ARITZA ETXEBARRIA RUIZ
Licenciado en Informática
Jefe del Departamento de Informática
Colegio Vizcaya
MADRID • BOGOTÁ • BUENOS AIRES • CARACAS • GUATEMALA • LISBOA • MÉXICO
NUEVA YORK • P ANAMÁ • SAN JUAN • SANTIAGO • SÃO PAULO
AUCKLAND • HAMBURGO • LONDRES • MILÁN • MONTREAL • NUEVA DELHI • PARÍS
SAN FRANCISCO • SIDNEY • SINGAPUR • SAN LUIS • TOKIO • TORONTO
MARCAS REGISTRADAS:
El nombre y logo de Microchip, dsPIC, PIC, PICmicro, PICSTART, PICMASTER, PRO MATE y MPLAB
son marcas registradas por Microchip Technology Incorporated en Estados Unidos y otros países.
DsPICDEM, dsPIC.net, ICSP: In-Circuit Serial Programming (Programación Serie en Circuito), ICEPIC,
MPASM, MPLIB, MPLINK, MPSIM, PICC, PICkit, PICDEM, PICDEM.net, rfLAB y rfPIC son marcas
registradas por Microchip Technology Incorporated en Estados Unidos y otros países.
SQTP (Serialized Quick Turn Programming) es una marca de servicio de Microchip Technology Incorporated en Estados Unidos.
Determinados materiales e informaciones contenidos en esta obra han sido reproducidos con el permiso
de Microchip Technology Incorporated. No se pueden reproducir ni reeditar dichos materiales sin el previo consentimiento escrito de Microchip Technology Incorporated.
BASIC Stamp, Home Work Board y el logo de Parallax son marcas registradas por Parallax, Inc.
Las restantes marcas, logos y productos mencionados en este libro están registrados por sus respectivos
propietarios.
El software contenido en el CD destinado a la edición, compilación, simulación y depuración
de programas son propiedad de sus respectivos fabricantes:
Microchip Technology, Inc.; Parallax, Inc., e Ingeniería de Microsistemas Programados, S.L.
MICROCONTROLADORES «PIC». Diseño práctico de aplicaciones.
Primera parte: PIC12F508 Y PIC16F84A. Lenguajes Ensamblador, C y PBASIC. 4.a edición
No está permitida la reproducción total o parcial de este libro, ni su tratamiento informático, ni la transmisión de ninguna forma o por cualquier medio, ya sea electrónico, mecánico, por fotocopia, por registro
u otros métodos, sin el permiso previo y por escrito de los titulares del Copyright.
McGraw-Hill/Interamericana
de España, S.A.U.
DERECHOS RESERVADOS © 2007, respecto a la cuarta edición en español, por
McGRAW-HILL/INTERAMERICANA DE ESPAÑA, S. A. U.
Edificio Valrealty, 1.a planta
Basauri, 17
28023 Aravaca (Madrid)
www.mcgraw-hill.es
ISBN: 978-84-481-5647-3
Depósito legal: M.
Editor: Carmelo Sánchez González
Asistente editorial: Israel Sebastián
Diseño de cubierta: Luis Sanz Cantero
Compuesto en: Fernández Ciudad, S. L.
Impreso en:
IMPRESO EN ESPAÑA - PRINTED IN SPAIN
CONTENIDO
Prólogo ..................................................................................................................
vii
PRIMERA PARTE. La gama básica: el humilde PIC12F508 ........................
1
TEORÍA
Capítulo 1.
Capítulo 2.
Capítulo 3.
Capítulo 4.
Capítulo 5.
Capítulo 6.
Capítulo 7.
Microcontrolador: la solución está en un chip ..............................
Los PIC, una familia numerosa .....................................................
El más humilde de la gama básica: PIC12F508 ............................
Las memorias ................................................................................
Recursos y periféricos principales.................................................
Recursos auxiliares........................................................................
El repertorio de instrucciones........................................................
3
21
37
49
61
75
81
APLICACIONES PRÁCTICAS
1.a aplicación. Simulando los primeros programas con el MPLAB y el MPLAB
SIM ...........................................................................................................
2.a aplicación. Herramientas para la grabación, implementación y depuración:
PIC School y WinPic800 ..............................................................................
3.a aplicación. Las primeras experiencias.......................................................
4.a aplicación. Manejando el tercer estado en las E/S .......................................
5.a aplicación. Controlando el tiempo con software ......................................
6.a aplicación. Controlando el tiempo con hardware. El temporizador TMR0..
7.a aplicación. Manejando el Perro Guardián, el modo de bajo consumo
y el reset.................................................................................................
8.a aplicación. Comunicación serie RS232 ...................................................
9.a aplicación. Controlando una pantalla LCD..............................................
10.a aplicación. Manejando el bus I2C.............................................................
11.a aplicación. Aproximación a la conversión A/D........................................
12.a aplicación. Transmisión y recepción por RF............................................
105
121
147
163
181
189
205
219
231
245
259
279
v
vi
CONTENIDO
SEGUNDA PARTE. La gama media: el fabuloso PIC16F84A......................... 291
TEORÍA
Capítulo 8. El primer contacto con el PIC16F84A ........................................
Capítulo 9. En el interior del procesador........................................................
Capítulo 10. Los recursos fundamentales: temporizadores, puertas de E/S y
EEPROM de datos .........................................................................
Capítulo 11. Interrupciones, reset y recursos auxiliares ..................................
Capítulo 12. Manejando el repertorio de instrucciones....................................
Capítulo 13. Herramientas y diseño de proyectos............................................
293
305
319
335
351
367
APLICACIONES PRÁCTICAS
1.er taller.
2.o taller.
3.er taller.
4.o taller.
5.o taller.
6.o taller.
7.o taller.
8.o taller.
9.o taller.
10.o taller.
Simulando el primer taller ................................................................
Trabajando con entradas y salidas. Concurso de televisión............
Manejo de la instrucción SLEEP .....................................................
Uso de temporizadores. Contador ascendente/descendente.................
Manejo del teclado ............................................................................
Comunicación RS-232......................................................................
Manejo del LCD................................................................................
Generación de números aleatorios ...................................................
Manejo de la memoria EEPROM de datos......................................
Un ejercicio completo. La máquina de «Su Turno» .......................
389
397
405
413
419
425
433
439
447
457
TERCERA PARTE. Los módulos microcontroladores BASIC Stamp
y el lenguaje PBASIC
Capítulo 14. Los sellos mágicos de Parallax.................................................... 469
Capítulo 15. PBASIC. El lenguaje más fácil del mundo. Prácticas y programas ........................................................................................ 485
CUARTA PARTE. «Software» de desarrollo, programas fuente, apéndices
y complementos incluidos en el CD
Contenido del CD ............................................................................................. 511
Bibliografía y direcciones de interés relacionadas con los PIC ........................ 513
Índice analítico ....................................................................................................... 515
PRÓLOGO
Los microcontroladores están invadiendo el mundo. Están presentes en nuestra casa, en
nuestro trabajo y en nuestra vida. Se pueden encontrar controlando los hornos microondas y los televisores de nuestro hogar, en los teclados y ratones de los computadores y
en los automóviles. En el bolsillo llevamos unos cuantos entre los del teléfono móvil, los
que tienen las modernas llaves del coche y los mandos a distancia del garaje y la alarma
doméstica. Pero la invasión acaba de comenzar y el comienzo del siglo XXI será testigo
de la conquista masiva de estos diminutos computadores que gobernarán la mayor parte
de los aparatos que fabricamos y usamos los humanos.
Las extensas áreas de aplicación de los microcontroladores, que se pueden considerar ilimitad as, exigirán un gigantesco trabajo de diseño y aplicación.
Aprender a manejar y aplicar los microcontroladores sólo se consigue desarrollando
prácticamente diseños reales. Sucede lo mismo que con cualquier instrumento musical,
cualquier deporte y muchas otras actividades.
El objetivo primordial que nos ha movido a escribir este libro es facilitar el camino
al lector para que se entusiasme y utilice los microcontroladores; por eso, está plagado
de programas y experiencias, así como de proyectos reales.
La filosofía y el método que hemos aplicado en la elaboración de esta obra han
sido los mismos que usamos con nuestros alumnos de varias especialidades de ingeniería en la Universidad de Deusto. Sospechamos que los excelentes resultados obtenidos se deben principalmente a la calidad de los estudiantes.
En esta nueva edición hemos introducido un cambio sustancial en el planteamiento
del aprendizaje. En el verano de 2006 nos reunimos los autores para establecer el programa de la asignatura «Diseño de Sistemas Basados en Microcontrolador» y para estructurar este libro que sirviese de texto y guía. Decidimos empezar por lo más sencillo
y elegimos el procesador más simple y fácil con la intención de alcanzar tres metas:
1.ª En un par de semanas los alumnos comenzaban diseños reales.
2.ª Un procesador humilde y sin apenas recursos obliga a «espabilarse» más para
resolver las tareas.
3.ª Una vez que se domina un microcontrolador por sencillo que sea, pasar a otros
más potentes resulta natural y apetecible.
vii
viii
PRÓLOGO
Así que tomamos la decisión de comenzar con el humildísimo PIC12F508 de la
gama básica, que sólo posee ocho patitas. Si bien es verdad que tiene poco de todo,
era uno de los más populares y vendidos en todo el mundo. Cosa lógica, porque la
mayor parte de los productos masivos, como el mando a distancia de una alarma, no
necesitan más de lo que posee el PIC12F508. Tras conocer la teoría y la práctica de
dicho microcontrolador se decidió pasar al PIC16F84A, que es uno de los modelos
más pobres de la gama básica, pero ya un clásico en la historia de los microcontroladores PIC. Finalmente, para acabar de demostrar que con los elementos más sencillos
se alcanzan las metas más complejas, se presentan los módulos de Parallax, que facilitan el hardware y permiten confeccionar los programas con el lenguaje más fácil
del mundo: el BASIC.
Este libro recoge los temas teóricos y las experiencias, programas y proyectos
prácticos de laboratorio que impartimos en la anteriormente mencionada asignatura
desde octubre de 2006 hasta febrero de 2007. Además, como nuestros alumnos tenían
que aprender a diseñar proyectos con microcontrolador, les propusimos como evaluación un proyecto en equipos de cuatro personas para construir un prototipo operativo
de un «pastillero inteligente». El proyecto no tenía restricciones, pero sus especificaciones debían quedar determinadas a mitad de curso y al final el prototipo las debía
cumplir y funcionar correctamente.
Enlazando las diversas experiencias prácticas, aplicando los conocimientos teóricos
y demostrando que un futuro ingeniero debe tener el ingenio necesario para combinar
todo ello y alcanzar brillantemente el objetivo, nuestros alumnos construyeron varios
pastilleros en los que dejaron la huella de su capacidad técnica e imaginativa. En un
apéndice en el CD que acompaña la obra se presenta uno de dichos proyectos.
El libro que tiene entre sus manos constituye la primera parte de una colección
de tres libros y se destina a los microcontroladores más sencillos de la gama básica y
media y a los lenguajes de programación Ensamblador, C y PBASIC. La segunda parte
se dedica a los poderosos PIC16F87X de la gama media, a los PIC18FXXX de la gama
mejorada y ofrece una introducción a las familias de microcontroladores de 16 bits. Por
último, el tercer volumen de esta obra se refiere a los Controladores Digitales de Señales
(DSC), que se materializan en las familias dsPIC30F y dsPIC33F, que reúnen lo mejor
de los microcontroladores PIC de 16 bits con los recursos principales de los DSP. Para
desarrollar todos los programas y proyectos de las tres partes se ha elegido el sistema de
desarrollo PIC School.
El contenido de esta primera parte consta de cuatro secciones:
Primera: PIC12F508
Teoría: Funcionamiento, arquitectura y repertorio de instrucciones. Práctica: Colección de doce aplicaciones desarrolladas con la PIC School de complejidad progresiva en
los lenguajes Ensamblador y C.
Segunda: PIC16F84A
Teoría: Funcionamiento, arquitectura y repertorio de instrucciones. Práctica: Colección de varias aplicaciones desarrolladas con la PIC School de complejidad progresiva
en Ensamblador y C.
PRÓLOGO
ix
Tercera: Módulos microcontroladores BASIC Stamp
Teoría y práctica sobre el funcionamiento y el desarrollo de aplicaciones con los
módulos microcontroladores de Parallax resueltos con el lenguaje PBASIC.
Cuarta: «Software» de desarrollo, programas fuente, apéndices y complementos
contenido en el CD
En el CD que acompaña a este libro se incluyen todas las herramientas software
necesarias, los programas fuente de todos los ejercicios y proyectos. Además, en dicho
CD se dedica el Apéndice A a una guía rápida del PIC12F508 y el Apéndice B a una
guía rápida del PIC16F84A. El proyecto completo de un «pastillero» diseñado por un
alumno se ofrece en el Apéndice C. Toda la gama de modelos de los microcontroladores
PIC que se comercializan en la actualidad con sus principales características se recogen
en el Apéndice D. El Apéndice E describe una colección de experiencias muy didácticas
y útiles desarrolladas con un kit básico de componentes y el PIC16F84A. Se completa
este libro con una bibliografía y un directorio de direcciones interesantes en Internet y
de un índice analítico.
Gran parte de la información proporcionada en este libro y su CD procede de
Microchip (www.microchip.com) y agradecemos especialmente la colaboración que
hemos obtenido de don Juan Gutiérrez, de la oficina central. También desde Parallax
(www.parallax.com) hemos recibido toda la colaboración que hemos solicitado de don
Arístides Álvarez. Finalmente, don Mikel Echevarría, de Ingeniería de Microsistemas
Programados (www.microcontroladores.com), nos ha facilitado multitud de programas
y experiencias soportadas por la extraordinaria herramienta PIC School.
PRIMERA PARTE
La gama básica: el humilde PIC12F508
TEORÍA
Microcontrolador:
la solución está en un chip
CAPÍTULO
1
1.1. ¿QUÉ ES UN MICROCONTROLADOR?
Es un pequeño computador construido sobre el «chip» o dado de silicio que hay dentro
de un circuito integrado. Se emplea para controlar el funcionamiento de una tarea determinada o el de un producto, y debido a su reducido tamaño, suele estar incorporado
en el propio dispositivo que gobierna. Esta última característica es la que le confiere la
denominación de «controlador incrustado» (embebed controller) (Fig. 1.1).
Al microcontrolador se le considera como un «computador dedicado» pues en su
memoria reside un único programa destinado a controlar una aplicación concreta, sus
líneas de entrada/salida soportan el conexionado de los sensores y actuadores del sistema a gobernar y todos los recursos complementarios disponibles tienen como finalidad
exclusiva atender los requerimientos de la tarea a la que se dedica el microcontrolador
(Fig. 1.2).
Figura 1.1. El microcontrolador es tan pequeño que podría incrustarse en un dado y cambiar su suerte.
3
4
MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES
Figura 1.2. Fotografía de un ratón para PC abierto. Se distingue el microcontrolador que se encarga de
recoger los movimientos de la «bola» y transferirlos al PC para producir los desplazamientos correspondientes del cursor en la pantalla.
Un microcontrolador es un computador completo, aunque de capacidad limitada, que está
contenido en un circuito integrado y se destina a gobernar una tarea o producto en donde
suele ir incrustado.
Figura 1.3. La inclusión de un microcontrolador en un pastillero le añade prestaciones que le otorgan el
calificativo de «inteligente».
MICROCONTROLADOR: LA SOLUCIÓN ESTÁ EN UN CHIP
5
Figura 1.4. Distribución porcentual de la producción mundial de microcontroladores en las cinco grandes
áreas de aplicación.
La potencia que se puede obtener de un computador es inmensa; por eso, si son
pequeños y baratos, se pueden incorporar en cualquier producto por pequeño y económico que sea, abriendo las puertas de la imaginación de los diseñadores. Empresas del
prestigio de Dataquest auguran la presencia de centenares de microcontroladores en los
hogares del mundo desarrollado en un futuro cercano.
1.2. LA INVASIÓN DEL MUNDO
La potencia de los microcontroladores aumenta constantemente a la par que su volumen
y coste, lo que está dando lugar al crecimiento exponencial de su aplicación y, en consecuencia, a su invasión en muchos de los productos típicos del mundo moderno. Fundamentalmente, existen cinco grandes campos de aplicación de los microcontroladores.
1.o
2.o
3.o
4.o
Comunicaciones.
Gran consumo.
Automoción.
Informática.
5.o Industria.
Las comunicaciones y sus sistemas de transferencia de información utilizan profusamente los microcontroladores, siendo el teléfono móvil su componente más representativo (Fig. 1.5).
En el área de productos de gran consumo, los electrodomésticos de línea blanca
(lavadoras, hornos, lavavajillas, etc.) y de línea marrón (televisores, vídeos, aparatos de
audio, etc.) incorporan numerosos microcontroladores (Fig. 1.6).
6
MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES
Figura 1.5. Las comunicaciones absorben la mayor parte de la producción mundial de microcontroladores, siendo el teléfono móvil uno de los dispositivos que más utilizan.
Figura 1.6. Los electrodomésticos de línea blanca y marrón, como el televisor, precisan numerosos microcontroladores para optimizar su funcionamiento y sus prestaciones.
La industria de automoción es una firme candidata a incrementar el consumo de
microcontroladores para soportar las nuevas y cada vez más exigentes funcionalidades
de los vehículos modernos. En 2003, Microchip vendió veinticinco millones de microcontroladores para el control del sensor del airbag.
La industria informática acapara una buena parte de la producción de microcontroladores, puesto que casi todos los periféricos del computador disponen de uno o varios,
como sucede con las impresoras, teclados, discos duros, escáneres, etc.
En el área industrial, hay secciones como la robótica, la visión artificial, el control
de motores, las fuentes de alimentación ininterrumpibles, etc., que son grandes consumidores de microcontroladores.
MICROCONTROLADOR: LA SOLUCIÓN ESTÁ EN UN CHIP
7
Figura 1.7. Bastantes sistemas de control, confort y seguridad del automóvil son gobernados por microcontroladores.
Más de la mitad de la producción mundial de microcontroladores es absorbida por las
comunicaciones y los productos de gran consumo. El resto se reparte entre el sector de la
automoción, la informática y la industria.
Figura 1.8. Casi todos los periféricos del computador, como la impresora, utilizan microcontroladores.
8
MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES
Figura 1.9. Los robots industriales precisan numerosos y potentes microcontroladores para su control.
Además de las cinco áreas comentadas, van apareciendo constantemente otras nuevas que precisan el empleo de microcontroladores, como la industria militar, la electromedicina, los juegos, la navegación espacial, etc.
Figura 1.10. Fotografía de una pistola para la medida del dolor en pacientes de fibromialgia basada en
microcontrolador.
MICROCONTROLADOR: LA SOLUCIÓN ESTÁ EN UN CHIP
9
1.3. EN EL INTERIOR DEL MICROCONTROLADOR
Dentro del circuito integrado que materializa un microcontrolador hay un completo
computador, aunque de recursos y prestaciones limitadas. Consta de tres grandes
bloques.
BLOQUES DEL COMPUTADOR
1. Unidad de proceso:
A. Procesador.
B. Memoria de programa.
C. Memoria de datos.
D. Líneas de E/S.
2. Periféricos complementarios:
A. Temporizadores.
B. Conversores A/D.
C. Comparadores analógicos.
D. Puertos de comunicación.
E. Otros.
3. Recursos auxiliares:
A. Circuito de reloj.
B. Modos de bajo consumo.
C. Perro Guardián.
D. «Reset» al conectar la alimentación.
E. Otros.
Lo verdaderamente curioso es que con tantas cosas como hay dentro del microcontrolador sólo existe comunicación con el exterior a través de las patitas o «pines» existentes en la cápsula, que pueden ser tan pocas como seis u ocho. Dichas patitas sirven
para recibir la alimentación, la señal de reloj para sincronizar su funcionamiento, para
controlar los periféricos externos a gobernar y para sacar o introducir información con
el mundo exterior (Fig. 1.11).
Si sólo existiese un modelo de microcontrolador, éste debería tener muy potenciados
todos sus recursos para poderse adaptar a las exigencias de las múltiples aplicaciones
posibles. Esta potenciación supondría un despilfarro en muchos casos. En la práctica,
cada fabricante oferta un elevado número de modelos diferentes desde los más sencillos
hasta los más potentes. Es posible seleccionar la capacidad de la memoria, la velocidad
de funcionamiento, los periféricos y recursos complementarios, el número de líneas de
E/S, etc. Por todo ello, un aspecto muy destacado en la labor del ingeniero de diseño es
la elección del microcontrolador apropiado.
EJEMPLO
Un horno microondas se gobierna mediante un microcontrolador en el que se almacena
el programa, que tiene 382 instrucciones, cada una de las cuales ocupa una palabra
de la memoria de código. Para soportar el teclado y la pantalla LCD necesita de doce
10
MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES
Figura 1.11. El computador que hay en el microcontrolador sólo dispone de las patitas existentes en el encapsulado para comunicarse con los periféricos y dispositivos
externos a gobernar, recibir la alimentación y la señal de reloj.
líneas de E/S. ¿Cuál de los siguientes modelos de microcontroladores es el que más se
adapta a los requerimientos de la aplicación?
Modelo
Memoria instr.
(palabras)
Líneas E/S
Precio (euros)
PIC12F508
512
6
1,30
PIC16F83
512
13
2,17
PIC16F84A
1.024
13
2,50
PIC16C54
4.096
33
3,17
SOLUCIÓN
Para esta aplicación es suficiente el PIC16F83 y su empleo supone una importante economía de material y mano de obra.
1.4. DIFERENCIA ENTRE MICROCONTROLADOR
Y MICROPROCESADOR
El microprocesador es un circuito integrado que contiene la Unidad Central de Proceso (UCP) de un computador. La UCP, también llamada procesador, está formada
por la Unidad de Control, que interpreta o traduce las instrucciones, y el Camino de
Datos, que se encarga de ejecutar las operaciones que conllevan las instrucciones.
MICROCONTROLADOR: LA SOLUCIÓN ESTÁ EN UN CHIP
11
Figura 1.12. Un computador basado en un microprocesador es un sistema «abierto» que puede configurarse a medida adaptando a sus buses los módulos necesarios.
Por las patitas de un microprocesador salen al exterior las líneas de los buses de
direcciones, de datos y de control para permitir comunicar el procesador con la Memoria y los Módulos de E/S para configurar un computador completo. De esta manera, el
computador completo se construye con varios circuitos integrados y se dice que el sistema que configura un microprocesador es «abierto» porque su estructura varía según la
aplicación a la que se destine (Fig. 1.12).
Un microcontrolador es un sistema «cerrado» porque contiene un computador completo y
de prestaciones fijas y limitadas que son difíciles de modificar.
Un microprocesador sólo es una parte del computador, la más importante, la UCP, y
para construir un computador completo hay que conectar otros circuitos integrados que
contengan la Memoria y los Módulos de E/S; por eso, se puede configurar a medida y se
llama sistema «abierto».
El PC es un computador conocido por todos que está basado en un microprocesador,
como el Pentium, que reside en la tarjeta principal y se conecta con los módulos de memoria, los controladores de periféricos (disco duro, impresora, etc.) y recursos auxiliares
(fuente de alimentación, circuito de reloj, etc.) configurando la máquina a la medida del
usuario (Fig. 1.13).
Aunque hay excepciones, los microcontroladores contienen todos los elementos
del computador y sus patitas se conectan directamente a los periféricos externos. Al no
disponer en el exterior de los buses, es bastante complicado ampliar las características
con las que se ha fabricado.
12
MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES
Figura 1.13. Alrededor del microprocesador Pentium se distribuyen y conectan los módulos de memoria
y de periféricos que configuran el PC.
1.5. ARQUITECTURA INTERNA
Las partes principales que existen en un microcontrolador son cinco.
1.
2.
3.
4.
5.
Procesador o UCP.
Memoria para las instrucciones y para los datos.
Líneas de E/S para la comunicación con el exterior.
Periféricos, como temporizadores, conversores AD, comparadores analógicos, etc.
Recursos auxiliares, como Perro Guardián, circuito de reloj, modo de funcionamiento
con bajo consumo, etc.
1.5.1. El procesador
Es la parte más importante del computador y se compone de dos grandes bloques:
1.o Unidad de Control, que se encarga de interpretar el tipo de instrucción que se
debe realizar
2.o Camino de Datos, que realiza las operaciones con los datos que implican las
instrucciones.
MICROCONTROLADOR: LA SOLUCIÓN ESTÁ EN UN CHIP
13
Figura 1.14. La Unidad de Control de la UCP recibe las instrucciones de la memoria, las interpreta y
gobierna al Camino de Datos para realizar las operaciones correspondientes con los datos.
La Unidad de Control recibe las instrucciones en formato binario o máquina desde
la memoria que almacena el programa y genera las órdenes que necesita el Camino de
Datos para efectuarlas, recibiendo datos de entrada y generando otros de salida que se
almacenan en la memoria de datos (Fig. 1.14).
La estructura del procesador mostrado en la Figura 1.14 corresponde a la propuesta
por Von Neumann y tiene el inconveniente de guardar en la misma memoria las instrucciones y los datos. Con objeto de poder acceder simultáneamente a instrucciones y datos
y, además, adaptar las características de las memorias a sus contenidos se utiliza la arquitectura Harvard, que dispone de memorias independientes para datos e instrucciones
(Fig. 1.15).
1.5.2. Memoria de programa
Es la memoria donde se guardan las instrucciones del programa que tiene que ejecutar
el microcontrolador. La longitud de sus palabras se adapta al número de bits que tienen
las instrucciones y su capacidad se adecúa al tamaño que previsiblemente tendrán los
programas para los que se destina. En los microcontroladores, es interesante no tener
que ampliar el tamaño de esta memoria por lo que supone en el volumen y precio del
sistema.
14
MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES
Figura 1.15. La arquitectura Harvard, habitual en los microcontroladores, dispone de memorias independientes para datos e instrucciones.
Como el programa a ejecutar en un microcontrolador siempre es el mismo, debe
estar grabado de forma permanente y no volátil. Los tipos de memoria que se adaptan a
estas exigencias son los siguientes:
A) ROM
El programa se graba en la memoria del microcontrolador durante su fabricación mediante el uso de «máscaras». Los altos costes de diseño e instrumental sólo aconsejan el
uso de la ROM en series de producción muy altas, como sucede con los electrodomésticos y productos de gran consumo. No se puede borrar ni volver a utilizar.
B) EPROM
Si el microcontrolador dispone de memoria EPROM para contener el programa, la grabación del mismo se realiza con un dispositivo (grabador) gobernado desde un PC. En la
superficie de la cápsula del microcontrolador hay una ventana de cristal por la que puede
someterse al chip a rayos ultravioleta para conseguir el borrado de la memoria EPROM y
utilizarla nuevamente. Este tipo de memoria es muy interesante en la fase de diseño y depuración de programas, pero su coste unitario es elevado y su manipulación es complicada
y precisa de grabadores y «quemadores».
C) OTP (Programable una vez)
Al igual que la memoria EPROM, el usuario puede grabar el programa en este tipo de
memoria, pero ya no se puede borrar. El bajo precio de los microcontroladores con OTP