Evauacion y generacion deproyectos

1. INTRODUCCION A LOS MICROCONTROLADORES. 1 1. 1 Controlador y microcontrolador. 1 1. 2 Diferencia entre microprocesador y microcontrolador. 2 1. 3 Aplicaciones de los microcontroladores. 4 1. 4 El mercado de los microcontroladores. 5 1. 5 ? Que microcontrolador emplear? 6 1. 6 Recursos comunes a todos los microcontroladores. 9 1. 6. 1 Arquitectura basica 9 1. 6. 2 El procesador o UCP 10 1. 6. 3 Memoria 11 1. 6. 4 Puertas de Entrada y Salida 14 1. 6. 5 Reloj principal 14 1. 7 RECURSOS ESPECIALES 14 1. 7. 1 Temporizadores o “Timers” 15 1. 7. 2 Perro guardian o “Watchdog” 16 . 7. 3 Proteccion ante fallo de alimentacion o “Brownout” 16 1. 7. 4 Estado de reposo o de bajo consumo 16 1. 7. 5 Conversor A/D (CAD) 17 1. 7. 6 Conversor D/A (CDA) 17 1. 7. 7 Comparador analogico 17 1. 7. 8 Modulador de anchura de impulsos o PWM 17 1. 7. 9 Puertas de E/S digitales 18 1. 7. 10 Puertas de comunicacion 18 1. 8 Herramientas para el desarrollo de aplicaciones. 19 2. LA FAMILIA DE LOS PIC COMO ELECCION. 21 2. 1 Caracteristicas relevantes. 22 2. 1. 1 Arquitectura. 22 2. 1. 2 Segmentacion. 22 2. 1. 3 Formato de las instrucciones. 23 2. 1. Juego

Lo sentimos, pero las muestras de ensayos completos están disponibles solo para usuarios registrados

Elija un plan de membresía
de instrucciones. 23 2. 1. 5 Todas las instrucciones son ortogonales 23 2. 1. 6 Arquitectura basada en un “banco de registros” 23 2. 1. 7 Diversidad de modelos de microcontroladores con prestaciones y recursos diferentes 23 2. 1. 8 Herramientas de soporte potentes y economicas 24 2. 2 Las gamas de PIC 24 2. 2. 1 La gama enana: PIC12C(F)XXX de 8 patitas 25 2. 2. 2 Gama baja o basica: PIC16C5X con instrucciones de 12 bits. 26 2. 2. 3 Gama media. PIC16CXXX con instrucciones de 14 bits 28 2. 2. 4 Gama alta: PIC17CXXX con instrucciones de 16 bits. 29 3.

LOS REGISTROS DE LA GAMA MEDIA 31 3. 1 Organizacion de la memoria de datos 31 3. 2 Registros especificos 32 4. REPERTORIO DE INSTRUCCIONES 35 4. 1 Caracteristicas generales 35 4. 2 Definiciones y abreviaturas 35 4. 3 Repertorio de instrucciones de la gama media 37 4. 4 Instrucciones de la gama baja 41 5. PROGRAMACION DE LOS (CONTROLADORES PIC 42 5. 1 Introduccion 42 5. 2 El entorno de trabajo MPLAB 44 5. 2. 1 El ensamblador 44 5. 2. 2 Creando un nuevo proyecto 46 5. 2. 3 Ensamblando 48 5. 2. 4 Simulacion bajo windows 49 5. 2. 5 Otras opciones del MPLAB 50 . 3 Ejemplos basicos de programacion 51 5. 3. 1 El sistema de E/S. interrupciones y LED’s 51 5. 3. 2 Contar y visualizar 55 5. 3. 3 Teclado matricial 57 5. 3. 4 Tablas y subrutinas 60 5. 3. 5 Manejo de interrupciones 63 5. 3. 6 Manejo de una pantalla LCD. Creacion de una libreria. 67 5. 3. 7 Uso de una libreria: LCD. LIB 77 5. 3. 8 El Watchdog 81 5. 3. 9 Notas para el profesor sobre la elaboracion de estos programas 81 6. EL COMPILADOR DE C 83 6. 1 Introduccion 83 6. 2 El primer programa en C 83 6. 3 ? Que podemos usar del c convencional? 86 6. Librerias y funciones 89 6. 4. 1 La libreria GETCHAR 89 6. 4. 2 La libreria IO 90 6. 4. 3 Libreria EE_READ 90 6. 4. 4 Libreria EE_WRITE 90 6. 4. 5 Tambien conviene saber 91 7. EL PROGRAMADOR. 92 7. 1 Introduccion. 92 7. 2 De la programacion paraleIa a la programacion serie 93 7. 3 Software y utilizacion 96 7. 4 Instrucciones de uso resumidas del programador 100 8. APLICACION PRACTICA: UN CONTADOR CONTROLADO POR INTERRUPCION 103 9. BIBLIOGRAFIA 107 9. 1 Bibliografia escrita. 107 9. 2 Bibliografia electronica. 108 1. INTRODUCCION A LOS MICROCONTROLADORES.

Los microcontroladores estan conquistando el mundo. Estan presentes en nuestro trabajo, en nuestra casa y en nuestra vida, en general. Se pueden encontrar controlando el funcionamiento de los ratones y teclados de los computadores, en los telefonos, en los hornos microondas y los televisores de nuestro hogar. Pero la invasion acaba de comenzar y el nacimiento del siglo XXI sera testigo de la conquista masiva de estos diminutos computadores, que gobernaran la mayor parte de los aparatos que fabricaremos y usamos los humanos. 1. 1 Controlador y microcontrolador.

Recibe el nombre de controlador el dispositivo que se emplea para el gobierno de uno o varios procesos. Por ejemplo, el controlador que regula el funcionamiento de un horno dispone de un sensor que mide constantemente su temperatura interna y, cuando traspasa los limites prefijados, genera las senales adecuadas que accionan los efectores que intentan llevar el valor de la temperatura dentro del rango estipulado. Aunque el concepto de controlador ha permanecido invariable a traves del tiempo, su implementacion fisica ha variado frecuentemente.

Hace tres decadas, los controladores se construian exclusivamente con componentes de logica discreta, posteriormente se emplearon los microprocesadores, que se rodeaban con chips de memoria y E/S sobre una tarjeta de circuito impreso. En la actualidad, todos los elementos del controlador se han podido incluir en un chip, el cual recibe el nombre de microcontrolador. Realmente consiste en un sencillo pero completo computador contenido en el corazon (chip) de un circuito integrado. Un microcontrolador es un circuito integrado de alta escala de integracion que incorpora la mayor arte de los elementos que configuran un controlador. Un microcontrolador dispone normalmente de los siguientes componentes: • Procesador o UCP (Unidad Central de Proceso). • Memoria RAM para Contener los datos. • Memoria para el programa tipo ROM/PROM/EPROM. • Lineas de E/S para comunicarse con el exterior. • Diversos modulos para el control de perifericos (temporizadores, Puertas Serie y Paralelo, CAD: Conversores Analogico/Digital, CDA: Conversores Digital/Analogico, etc. ). • Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema.

Los productos que para su regulacion incorporan un microcontrolador disponen de las siguientes ventajas: • Aumento de prestaciones: un mayor control sobre un determinado elemento representa una mejora considerable en el mismo. • Aumento de la fiabilidad: al reemplazar el microcontrolador por un elevado numero de elementos disminuye el riesgo de averias y se precisan menos ajustes. • Reduccion del tamano en el producto acabado: La integracion del microcontrolador en un chip disminuye el volumen, la mano de obra y los stocks. Mayor flexibilidad: las caracteristicas de control estan programadas por lo que su modificacion solo necesita cambios en el programa de instrucciones. El microcontrolador es en definitiva un circuito integrado que incluye todos los componentes de un computador. Debido a su reducido tamano es posible montar el controlador en el propio dispositivo al que gobierna. En este caso el controlador recibe el nombre de controlador empotrado (embedded controller). 1. 2 Diferencia entre microprocesador y microcontrolador. El microprocesador es un circuito integrado que contiene la Unidad Central de

Proceso (UCP), tambien llamada procesador, de un computador. La UCP esta formada por la Unidad de Control, que interpreta las instrucciones, y el Camino de Datos, que las ejecuta. Las patitas de un microprocesador sacan al exterior las lineas de sus buses de direcciones, datos y control, para permitir conectarle con la Memoria y los Modulos de E/S y configurar un computador implementado por varios circuitos integrados. Se dice que un microprocesador es un sistema abierto porque su configuracion es variable de acuerdo con la aplicacion a la que se destine. (Figura 1. . ) Figura 1. 1. Estructura de un sistema abierto basado en un microprocesador. La disponibilidad de los buses en el exterior permite que se configure a la medida de la aplicacion. Si solo se dispusiese de un modelo de microcontrolador, este deberia tener muy potenciados todos sus recursos para poderse adaptar a las exigencias de las diferentes aplicaciones. Esta potenciacion supondria en muchos casos un despilfarro. En la practica cada fabricante de microcontroladores oferta un elevado numero de modelos diferentes, desde los mas sencillos hasta los mas poderosos.

Es posible seleccionar la capacidad de las memorias, el numero de lineas de E/S, la cantidad y potencia de los elementos auxiliares, la velocidad de funcionamiento, etc. Por todo ello, un aspecto muy destacado del diseno es la seleccion del microcontrolador a utilizar. Figura 1. 2. El microcontrolador es un sistema cerrado. Todas las partes del computador estan contenidas en su interior y solo salen al exterior las lineas que gobiernan los perifericos. 1. 3 Aplicaciones de los microcontroladores. Cada vez existen mas productos que incorporan un microcontrolador con el fin de aumentar ustancialmente sus prestaciones, reducir su tamano y coste, mejorar su fiabilidad y disminuir el consumo. Algunos fabricantes de microcontroladores superan el millon de unidades de un modelo determinado producidas en una semana. Este dato puede dar una idea de la masiva utilizacion de estos componentes. Los microcontroladores estan siendo empleados en multitud de sistemas presentes en nuestra vida diaria, como pueden ser juguetes, horno microondas, frigorificos, televisores, computadoras, impresoras, modems, el sistema de arranque de nuestro coche, etc.

Y otras aplicaciones con las que seguramente no estaremos tan familiarizados como instrumentacion electronica, control de sistemas en una nave espacial, etc. Una aplicacion tipica podria emplear varios microcontroladores para controlar pequenas partes del sistema. Estos pequenos controladores podrian comunicarse entre ellos y con un procesador central, probablemente mas potente, para compartir la informacion y coordinar sus acciones, como, de hecho, ocurre ya habitualmente en cualquier PC. 1. 4 El mercado de los microcontroladores.

Aunque en el mercado de la microinformatica la mayor atencion la acaparan los desarrollos de los microprocesadores, lo cierto es que se venden cientos de microcontroladores por cada uno de aquellos. Existe una gran diversidad de microcontroladores. Quiza la clasificacion mas importante sea entre microcontroladores de 4, 8, 16 o 32 bits. Aunque las prestaciones 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 razon de esta tendencia es que los microcontroladores de 4 y 8 bits son apropiados para a gran mayoria de las aplicaciones, lo que hace absurdo emplear micros mas potentes y consecuentemente mas caros. Uno de los sectores que mas tira del mercado del microcontrolador es el mercado automovilistico. De hecho, algunas de las familias de microcontroladores actuales se desarrollaron pensando en este sector, siendo modificadas posteriormente para adaptarse a sistemas mas genericos. El mercado del automovil es ademas uno de los mas exigentes: los componentes electronicos deben operar bajo condiciones extremas de vibraciones, choques, ruido, etc. seguir siendo fiables. El fallo de cualquier componente en un automovil puede ser el origen de un accidente. En cuanto a las tecnicas de fabricacion, cabe decir que practicamente la totalidad de los microcontroladores actuales se fabrican con tecnologia CMOS 4 (Complementary Metal Oxide Semiconductor). Esta tecnologia supera a las tecnicas anteriores por su bajo consumo y alta inmunidad al ruido. La distribucion de las ventas segun su aplicacion es la siguiente: • Una tercera parte se absorbe en las aplicaciones relacionadas con los computadores y sus perifericos. La cuarta parte se utiliza en las aplicaciones de consumo (electrodomesticos, juegos, TV, video, etc. ) • El 16% de las ventas mundiales se destino al area de las comunicaciones. • Otro 16% fue empleado en aplicaciones industriales. • El resto de los microcontroladores vendidos en el mundo, aproximadamente un 10% fueron adquiridos por las industrias de automocion. Tambien los modernos microcontroladores de 32 bits van afianzando sus posiciones en el mercado, siendo las areas de mas interes el procesamiento de imagenes, las comunicaciones, las aplicaciones militares, los procesos ndustriales y el control de los dispositivos de almacenamiento masivo de datos. 1. 5 ? Que microcontrolador emplear? A la hora de escoger el microcontrolador a emplear en un diseno concreto hay que tener en cuenta multitud de factores, como la documentacion y herramientas de desarrollo disponibles y su precio, la cantidad de fabricantes que lo producen y por supuesto las caracteristicas del microcontrolador (tipo de memoria de programa, numero de temporizadores, interrupciones, etc. ): Costes. Como es logico, 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 mas microcontroladores que microprocesadores. Para que nos hagamos una idea, para el fabricante que usa el microcontrolador en su producto una diferencia de precio en el microcontrolador de algunas pesetas es importante (el consumidor debera pagar ademas el coste del empaquetado, el de los otros componentes, el diseno 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.

Es habitual que muchos de ellos siempre se decanten por microcontroladores pertenecientes a una unica familia. Aplicacion. Antes de seleccionar un microcontrolador es imprescindible analizar los requisitos de la aplicacion: • Procesamiento de datos: puede ser necesario que el microcontrolador realice calculos criticos en un tiempo limitado. En ese caso debemos asegurarnos de seleccionar un dispositivo suficientemente rapido para ello. Por otro lado, habra que tener en cuenta la precision de los datos a manejar: si no es suficiente on un microcontrolador de 8 bits, puede ser necesario acudir a microcontroladores de 16 o 32 bits, o incluso a hardware de coma flotante. Una alternativa mas barata y quiza suficiente es usar librerias para manejar los datos de alta precision. – • 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 senales a controlar. Una vez realizado este analisis puede ser necesario anadir perifericos hardware externos o cambiar a otro microcontrolador mas adecuado a ese sistema. Consumo: algunos productos que incorporan microcontroladores estan alimentados con baterias y su funcionamiento puede ser tan vital como activar una alarma antirrobo. Lo mas conveniente en un caso como este puede ser que el microcontrolador este en estado de bajo consumo pero que despierte ante la activacion de una senal (una interrupcion) y ejecute el programa adecuado para procesarla. • Memoria: para detectar las necesidades de memoria de nuestra aplicacion debemos separarla en memoria volatil (RAM), memoria no volatil (ROM, EPROM, etc. ) y memoria no volatil modificable (EEPROM).

Este ultimo tipo de memoria puede ser util para incluir informacion especifica de la aplicacion como un numero de serie o parametros de calibracion. El tipo de memoria a emplear vendra determinado por el volumen de ventas previsto del producto: de menor a mayor volumen sera conveniente emplear EPROM, OTP y ROM. En cuanto a la cantidad de memoria necesaria puede ser imprescindible realizar una version preliminar, aunque sea en pseudo-codigo, de la aplicacion y a partir de ella hacer una estimacion de cuanta memoria volatil y no volatil es necesaria y si es conveniente disponer de memoria no volatil modificable. Ancho de palabra: el criterio de diseno debe ser seleccionar el microcontrolador de menor ancho de palabra que satisfaga los requerimientos de la aplicacion. Usar un microcontrolador de 4 bits supondra una reduccion en los costes importante, mientras que uno de 8 bits puede ser el mas 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). Diseno de la placa: la seleccion de un microcontrolador concreto condicionara el diseno de la placa de circuitos. Debe tenerse en cuenta que quiza usar un microcontrolador barato encarezca el resto de componentes del diseno. Los microcontroladores mas populares se encuentran, sin duda, entre las mejores elecciones: 8048 (Intel). Es el padre de los microcontroladores actuales, el primero de todos. Su precio, disponibilidad y herramientas de desarrollo hacen que todavia sea muy popular. 8051 (Intel y otros). Es sin duda el microcontrolador mas popular. Facil de programar, pero potente.

Esta 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 perifericos. Son microcontroladores de altisimas prestaciones. PIC (MicroChip).

Familia de microcontroladores que gana popularidad dia a dia. 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 numero de variantes. 1. 6 Recursos comunes a todos los microcontroladores. Al estar todos los microcontroladores integrados en un chip, su estructura fundamental y sus caracteristicas basicas son muy parecidas. Todos deben disponer de los bloques esenciales Procesador, memoria de datos y de instrucciones, lineas de E/S, oscilador de reloj y modulos controladores de perifericos.

Sin embargo, cada fabricante intenta enfatizar los recursos mas idoneos para las aplicaciones a las que se destinan preferentemente. En este apartado se hace un recorrido de todos los recursos que se hallan en todos los microcontroladores describiendo las diversas alternativas y opciones que pueden encontrarse segun el modelo seleccionado. 1. 6. 1 Arquitectura basica Aunque inicialmente todos los microcontroladores adoptaron la arquitectura clasica de von Neumann, en el momento presente se impone la arquitectura Harvard.

La arquitectura de von Neumann se caracteriza por disponer de una sola memoria principal donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a traves de un sistema de buses unico (direcciones, datos y control). La arquitectura Harvard dispone de dos memorias independientes una, que contiene solo instrucciones y otra, solo datos. Ambas disponen de sus respectivos sistemas de buses de acceso y es posible realizar operaciones de acceso (lectura o escritura) simultaneamente en ambas memorias. Figura 1. 3. Figura 1. 3.

La arquitectura Harvard dispone de dos memorias independientes para datos y para instrucciones, permitiendo accesos simultaneos. Los microcontroladores PIC responden a la arquitectura Harvard. 1. 6. 2 El procesador o UCP Es el elemento mas importante del microcontrolador y determina sus principales caracteristicas, tanto a nivel hardware como software. Se encarga de direccionar la memoria de instrucciones, recibir el codigo OP de la instruccion en curso, su decodificacion y la ejecucion de la operacion que implica la instruccion, asi como la busqueda de los operandos y el almacenamiento del resultado.

Existen tres orientaciones en cuanto a la arquitectura y funcionalidad de los procesadores actuales. CISC: Un gran numero de procesadores usados en los microcontroladores estan basados en la filosofia CISC (Computadores de Juego de Instrucciones Complejo). Disponen de mas de 80 instrucciones maquina en su repertorio, algunas de las cuales son muy sofisticadas y potentes, requiriendo muchos ciclos para su ejecucion. Una ventaja de los procesadores CISC es que ofrecen al programador instrucciones complejas que actuan como macros.

RISC: Tanto la industria de los computadores comerciales como la de los microcontroladores estan decantandose hacia la filosofia RISC (Computadores de Juego de Instrucciones Reducido). En estos procesadores el repertorio de instrucciones maquina 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: En los microcontroladores destinados a aplicaciones muy concretas, el juego de nstrucciones, ademas de ser reducido, es “especifico”, o sea, las instrucciones se adaptan a las necesidades de la aplicacion prevista. Esta filosofia se ha bautizado con el nombre de SISC (Computadores de Juego de Instrucciones Especifico). 1. 6. 3 Memoria En los microcontroladores la memoria de instrucciones y datos esta integrada en el propio chip. Una parte debe ser no volatil, tipo ROM, y se destina a contener el programa de instrucciones que gobierna la aplicacion.

Otra parte de memoria sera tipo RAM, volatil, y se destina a guardar las variables y los datos. Hay dos peculiaridades que diferencian a los microcontroladores de los computadores personales: 1. No existen sistemas de almacenamiento masivo como disco duro o disquetes. 2. Como el microcontrolador solo se destina a una tarea en la memoria ROM, solo hay que almacenar un unico programa de trabajo. La RAM en estos dispositivos es de poca capacidad pues solo debe contener las variables y los cambios de informacion que se produzcan en el transcurso del programa.

Por otra parte, como solo existe un programa activo, no se requiere guardar una copia del mismo en la RAM pues se ejecuta directamente desde la ROM. Los usuarios de computadores personales estan habituados a manejar Megabytes de memoria, pero, los disenadores con microcontroladores trabajan con capacidades de ROM comprendidas entre 512 bytes y 8 k bytes y de RAM comprendidas entre 20 y 512 bytes. Segun el tipo de memoria ROM que dispongan los microcontroladores, la aplicacion y utilizacion de los mismos es diferente.

Se describen las cinco versiones de memoria no volatil que se pueden encontrar en los microcontroladores del mercado. 1?. ROM con mascara Es una memoria no volatil de solo lectura cuyo contenido se graba durante la fabricacion del chip. El elevado coste del diseno de la mascara solo hace aconsejable el empleo de los microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades. 2?. OTP El microcontrolador contiene una memoria no volatil de solo lectura “programable una sola vez” por el usuario. OTP (One Time Programmable).

Es el usuario quien puede escribir el programa en el chip mediante un sencillo grabador controlado por un programa desde un PC. La version OTP es recomendable cuando es muy corto el ciclo de diseno del producto, o bien, en la construccion de prototipos y series muy pequenas. Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptacion mediante fusibles para proteger el codigo contenido. 3? EPROM Los microcontroladores que disponen de memoria EPROM (Erasable Programmable Read OnIy Memory) pueden borrarse y grabarse muchas veces.

La grabacion se realiza, como en el caso de los OTP, con un grabador gobernado desde un PC. Si, posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. Las capsulas son de material ceramico y son mas caros que los microcontroladores con memoria OTP que estan hechos con material plastico. 4? EEPROM Se trata de memorias de solo lectura, programables y borrables electricamente EEPROM (Electrical Erasable Programmable Read OnIy Memory).

Tanto la programacion como el borrado, se realizan electricamente desde el propio grabador y bajo el control programado de un PC. Es muy comoda y rapida la operacion de grabado y la de borrado. No disponen de ventana de cristal en la superficie. Los microcontroladores dotados de memoria EEPROM una vez instalados en el circuito, pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito. Para ello se usan “grabadores en circuito” que confieren una gran flexibilidad y rapidez a la hora de realizar modificaciones en el programa de trabajo.

El numero de veces que puede grabarse y borrarse una memoria EEPROM es finito, por lo que no es recomendable una reprogramacion continua. Son muy idoneos para la ensenanza y la Ingenieria de diseno. Se va extendiendo en los fabricantes la tendencia de incluir una pequena zona de memoria EEPROM en los circuitos programables para guardar y modificar comodamente una serie de parametros que adecuan el dispositivo a las condiciones del entorno. Este tipo de memoria es relativamente lenta. 5? FLASH Se trata de una memoria no volatil, de bajo consumo, que se puede escribir y borrar.

Funciona como una ROM y una RAM pero consume menos y es mas pequena. A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es mas rapida y de mayor densidad que la EEPROM. La alternativa FLASH esta recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria de programa no volatil. Es mas veloz y tolera mas ciclos de escritura/borrado. Las memorias EEPROM y FLASH son muy utiles 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.

Asi, un dispositivo con este tipo de memoria incorporado al control del motor de un automovil permite que pueda modificarse el programa durante la rutina de mantenimiento periodico, compensando los desgastes y otros factores tales como la compresion, la instalacion de nuevas piezas, etc. La reprogramacion del microcontrolador puede convertirse en una labor rutinaria dentro de la puesta a punto. 1. 6. 4 Puertas de Entrada y Salida La principal utilidad de las patitas que posee la capsula que contiene un microcontrolador es soportar las lineas de E/S que comunican al computador interno con los perifericos exteriores.

Segun los controladores de perifericos que posea cada modelo de microcontrolador, las lineas de E/S se destinan a proporcionar el soporte a las senales de entrada, salida y control. 1. 6. 5 Reloj principal Todos los microcontroladores disponen de un circuito oscilador que genera una onda cuadrada de alta frecuencia, que configura los impulsos de reloj usados en la sincronizacion de todas las operaciones del sistema. Generalmente, el circuito de reloj esta incorporado en el microcontrolador y solo se necesitan unos pocos componentes exteriores para seleccionar y estabilizar la frecuencia de trabajo.

Dichos componentes suelen consistir en un cristal de cuarzo junto a elementos pasivos o bien un resonador ceramico o una red R-C. Aumentar la frecuencia de reloj supone disminuir el tiempo en que se ejecutan las instrucciones pero lleva aparejado un incremento del consumo de energia. 1. 7 RECURSOS ESPECIALES Cada fabricante oferta numerosas versiones de una arquitectura basica de microcontrolador. En algunas amplia las capacidades de las memorias, en otras incorpora nuevos recursos, en otras reduce las prestaciones al minimo para aplicaciones muy simples, etc.

La labor del disenador es encontrar el modelo minimo que satisfaga todos los requerimientos de su aplicacion. De esta forma, minimizara el coste, el hardware y el software. Los principales recursos especificos que incorporan los microcontroladores son: • Temporizadores o “Timers”. • Perro guardian o “Watchdog”. • Proteccion ante fallo de alimentacion o “Brownout”. • Estado de reposo o de bajo consumo. • Conversor A/D. • Conversor D/A. • Comparador analogico. • Modulador de anchura de impulsos o PWM. • Puertas de E/S digitales. • Puertas de comunicacion. 1. 7. 1 Temporizadores o “Timers”

Se emplean para controlar periodos de tiempo (temporizadores) y para llevar la cuenta de acontecimientos que suceden en el exterior (contadores). Para la medida de tiempos se carga un registro con el valor adecuado y a continuacion dicho valor se va incrementando o decrementando al ritmo de los impulsos de reloj o algun multiplo hasta que se desborde y llegue a 0, momento en el que se produce un aviso. Cuando se desean contar acontecimientos que se materializan por cambios de nivel o flancos en alguna de las patitas del microcontrolador, el mencionado registro se va incrementando o decrementando al ritmo de dichos impulsos. . 7. 2 Perro guardian o “Watchdog” Cuando el computador personal se bloquea por un fallo del software u otra causa, se pulsa el boton del reset y se reinicializa el sistema. Pero un microcontrolador funciona sin el control de un supervisor y de forma continuada las 24 horas del dia. El Perro guardian consiste en un temporizador que, cuando se desborda y pasa por 0, provoca un reset automaticamente en el sistema. Se debe disenar el programa de trabajo que controla la tarea de forma que refresque o inicialice al Perro guardian antes de que provoque el reset.

Si falla el programa o se bloquea, no se refrescara al Perro guardian y, al completar su temporizacion, “ladrara y ladrara” hasta provocar el reset. 1. 7. 3 Proteccion ante fallo de alimentacion o “Brownout” Se trata de un circuito que resetea al microcontrolador cuando el voltaje de alimentacion (VDD) es inferior a un voltaje minimo (“brownout”). Mientras el voltaje de alimentacion sea inferior al de brownout el dispositivo se mantiene reseteado, comenzando a funcionar normalmente cuando sobrepasa dicho valor. 1. 7. 4 Estado de reposo o de bajo consumo

Son abundantes las situaciones reales de trabajo en que el microcontrolador debe esperar, sin hacer nada, a que se produzca algun acontecimiento externo que le ponga de nuevo en funcionamiento. Para ahorrar energia, (factor clave en los aparatos portatiles), los microcontroladores disponen de una instruccion especial (SLEEP en los PIC), que les pasa al estado de reposo o de bajo consumo, en el cual los requerimientos de potencia son minimos. En dicho estado se detiene el reloj principal y se “congelan” sus circuitos asociados, quedando sumido en un profundo “sueno” el microcontrolador.

Al activarse una interrupcion ocasionada por el acontecimiento esperado, el microcontrolador se despierta y reanuda su trabajo. 1. 7. 5 Conversor A/D (CAD) Los microcontroladores que incorporan un Conversor A/D (Analogico/Digital) pueden procesar senales analogicas, tan abundantes en las aplicaciones. Suelen disponer de un multiplexor que permite aplicar a la entrada del CAD diversas senales analogicas desde las patitas del circuito integrado. 1. 7. 6 Conversor D/A (CDA) Transforma los datos digitales obtenidos del procesamiento del computador en su correspondiente senal analogica que saca al exterior por una de las patitas de la capsula.

Existen muchos efectores que trabajan con senales analogicas. 1. 7. 7 Comparador analogico Algunos modelos de microcontroladores disponen internamente de un Amplificador Operacional que actua como comparador entre una senal fija de referencia y otra variable que se aplica por una de las patitas de la capsula. La salida del comparador proporciona un nivel logico 1 o 0 segun una senal sea mayor o menor que la otra. Tambien hay modelos de microcontroladores con un modulo de tension de referencia que proporciona diversas tensiones de referencia que se pueden aplicar en los comparadores. . 7. 8 Modulador de anchura de impulsos o PWM Son circuitos que proporcionan en su salida impulsos de anchura variable, que se ofrecen al exterior a traves de las patitas del encapsulado. 1. 7. 9 Puertas de E/S digitales Todos los microcontroladores destinan algunas de sus patitas a soportar lineas de E/S digitales. Por lo general, estas lineas se agrupan de ocho en ocho formando Puertas. Las lineas digitales de las Puertas pueden configurarse como Entrada o como Salida cargando un 1 o un 0 en el bit correspondiente de un registro destinado a su configuracion. 1. 7. 0 Puertas de comunicacion Con objeto de dotar al microcontrolador de la posibilidad de comunicarse con otros dispositivos externos, otros buses de microprocesadores, buses de sistemas, buses de redes y poder adaptarlos con otros elementos bajo otras normas y protocolos. Algunos modelos disponen de recursos que permiten directamente esta tarea, entre los que destacan: • UART, adaptador de comunicacion serie asincrona. • USART, adaptador de comunicacion serie sincrona y asincrona • Puerta paralela esclava para poder conectarse con los buses de otros microprocesadores. USB (Universal Serial Bus), que es un moderno bus serie para los PC. • Bus I2C, que es un interfaz serie de dos hilos desarrollado por Philips. • CAN (Controller Area Network), para permitir la adaptacion con redes de conexionado multiplexado desarrollado conjuntamente por Bosch e Intel para el cableado de dispositivos en automoviles. En EE. UU. se usa el J185O. 1. 8 Herramientas para el desarrollo de aplicaciones. Uno de los factores que mas importancia tiene a la hora de seleccionar un microcontrolador entre todos los demas es el soporte tanto software como hardware de que dispone.

Un buen conjunto de herramientas de desarrollo puede ser decisivo en la eleccion, ya que pueden suponer una ayuda inestimable en el desarrollo del proyecto. Las principales herramientas de ayuda al desarrollo de sistemas basados en microcontroladores son: • Desarrollo del software: Ensamblador. La programacion en lenguaje ensamblador puede resultar un tanto ardua para el principiante, pero permite desarrollar programas muy eficientes, ya que otorga al programador el dominio absoluto del sistema.

Los fabricantes suelen proporcionar el programa ensamblador de forma gratuita y en cualquier caso siempre se puede encontrar una version gratuita para los microcontroladores mas populares. Compilador. La programacion en un lenguaje de alto nivel (como el C) permite disminuir el tiempo de desarrollo de un producto. No obstante, si no se programa con cuidado, el codigo resultante puede ser mucho mas ineficiente que el programado en ensamblador. Las versiones mas potentes suelen ser muy caras, aunque para los microcontroladores mas populares pueden encontrarse versiones demo limitadas e incluso compiladores gratuitos. Depuracion: debido a que los microcontroladores van a controlar dispositivos fisicos, los desarrolladores necesitan herramientas que les permitan comprobar el buen funcionamiento del microcontrolador cuando es conectado al resto de circuitos. Simulador. Son capaces de ejecutar en un PC programas realizados para el microcontrolador. Los simuladores permiten tener un control absoluto sobre la ejecucion de un programa, siendo ideales para la depuracion de los mismos. Su gran inconveniente es que es dificil simular la entrada y salida de datos del microcontrolador.

Tampoco cuentan con los posibles ruidos en las entradas, pero, al menos, permiten el paso fisico de la implementacion de un modo mas seguro y menos costoso, puesto que ahorraremos en grabaciones de chips para la prueba in-situ. Placas de evaluacion. Se trata de pequenos sistemas con un microcontrolador ya montado y que suelen conectarse a un PC desde el que se cargan los programas que se ejecutan en el microcontrolador. Las placas suelen incluir visualizadores LCD, teclados, LEDs, facil acceso a los pines de E/S, etc. El sistema operativo de la placa recibe el nombre de programa monitor.

El programa monitor de algunas placas de evaluacion, aparte de permitir cargar programas y datos en la memoria del microcontrolador, puede permitir en cualquier momento realizar ejecucion paso a paso, monitorizar el estado del microcontrolador o modificar los valores almacenados los registros o en la memoria. Emuladores en circuito. Se trata de un instrumento que se coloca entre el PC anfitrion y el zocalo de la tarjeta de circuito impreso donde se alojara el microcontrolador definitivo. El programa es ejecutado desde el PC, pero para la tarjeta de aplicacion es como si lo hiciese el mismo microcontrolador que luego ira en el zocalo.

Presenta en pantalla toda la informacion tal y como luego sucedera cuando se coloque la capsula. 2. LA FAMILIA DE LOS PIC COMO ELECCION. ?Que es lo que ocurre con los PIC? , ? Por que estan en boca de todos?. Hemos buscado en multitud de bibliografia y realmente nadie da una respuesta concreta, pero una aproximacion a la realidad puede ser esta: Los PIC tienen “angel”, tienen “algo” que fascina a los disenadores, puede ser la velocidad, el precio, la facilidad de uso, la informacion, las herramientas de apoyo… Quizas un poco de todo eso es lo que produce esa imagen de sencillez y utilidad. Es probable que en un futuro proximo otra familia de microcontroladores le arrebate ese “algo”. Queremos constatar que para las aplicaciones mas habituales (casi un 90%) la eleccion de una version adecuada de PIC es la mejor solucion; sin embargo, dado su caracter general, otras familias de microcontroladores son mas eficaces en aplicaciones especificas, especialmente si en ellas predomina una caracteristica concreta, que puede estar muy desarrollada en otra familia.

Los detalles mas importantes que vuelven “locos” a los profesionales de la microelectronica y microinformatica y las razones de la excelente acogida que tienen los PIC son los siguientes: ( Sencillez de manejo: Tienen un juego de instrucciones reducido; 35 en la gama media. ( Buena informacion, facil de conseguir y economica. ( Precio: Su coste es comparativamente inferior al de sus competidores. ( Poseen una elevada velocidad de funcionamiento. Buen promedio de parametros: velocidad, consumo, tamano, alimentacion, codigo compacto, etc. ( Herramientas de desarrollo faciles y baratas.

Muchas herramientas software se pueden recoger libremente a traves de Internet desde Microchip (http://www. microchip. com). ( Existe una gran variedad de herramientas hardware que permiten grabar, depurar, borrar y comprobar el comportamiento de los PIC. ( Diseno rapido. ( La gran variedad de modelos de PIC permite elegir el que mejor responde a los requerimientos de la aplicacion. Una de las razones del exito de los PIC se basa en su utilizacion. Cuando se aprende a manejar uno de ellos, conociendo su arquitectura y su repertorio de instrucciones, es muy facil emplear otro modelo. 2. Caracteristicas relevantes. Descripcion de las caracteristicas mas representativas de los PIC: 2. 1. 1 Arquitectura. La arquitectura del procesador sigue el modelo Harvard. En esta arquitectura, la CPU se conecta de forma independiente y con buses distintos con la memoria de instrucciones y con la de datos. La arquitectura Harvard permite a la CPU acceder simultaneamente a las dos memorias. Ademas, propicia numerosas ventajas al funcionamiento del sistema como se iran describiendo. 2. 1. 2 Segmentacion. Se aplica la tecnica de segmentacion (“pipe-line”) en la ejecucion de las instrucciones.

La segmentacion permite al procesador realizar al mismo tiempo la ejecucion de una instruccion y la busqueda del codigo de la siguiente. De esta forma se puede ejecutar cada instruccion en un ciclo (un ciclo de instruccion equivale a cuatro ciclos de reloj). Las instrucciones de salto ocupan dos ciclos al no conocer la direccion de la siguiente instruccion hasta que no se haya completado la de bifurcacion. 2. 1. 3 Formato de las instrucciones. El formato de todas las instrucciones es de la misma longitud Todas las instrucciones de los microcontroladores de la gama baja tienen una longitud de 12 bits.

Las de la gama media tienen 14 bits y mas las de la gama alta. Esta caracteristica es muy ventajosa en la optimizacion de la memoria de instrucciones y facilita enormemente la construccion de ensambladores y compiladores. 2. 1. 4 Juego de instrucciones. Procesador RISC (Computador de Juego de Instrucciones Reducido). Los modelos de la gama baja disponen de un repertorio de 33 instrucciones, 35 los de la gama media y casi 60 los de la alta. 2. 1. 5 Todas las instrucciones son ortogonales Cualquier instruccion puede manejar cualquier elemento de la arquitectura como fuente o como destino. 2. 1. Arquitectura basada en un “banco de registros” Esto significa que todos los objetos del sistema (puertas de E/S, temporizadores, posiciones de memoria, etc. ) estan implementados fisicamente como registros. 2. 1. 7 Diversidad de modelos de microcontroladores con prestaciones y recursos diferentes La gran variedad de modelos de microcontroladores PIC permite que el usuario pueda seleccionar el mas conveniente para su proyecto. 2. 1. 8 Herramientas de soporte potentes y economicas La empresa Microchip y otras que utilizan los PIC ponen a disposicion de los usuarios numerosas herramientas para desarrollar hardware y software.

Son muy abundantes los programadores, los simuladores software, los emuladores en tiempo real, Ensambladores, Compiladores C, Interpretes y Compiladores BASIC, etc. La arquitectura Harvard y la tecnica de segmentacion son los principales recursos en los que se apoya el elevado rendimiento que caracteriza estos dispositivos programables, mejorando dos caracteristicas esenciales: 1. Velocidad de ejecucion. 2. Eficiencia en la compactacion del codigo. 2. 2 Las gamas de PIC Una de las labores mas importantes del ingeniero de diseno es la eleccion del microcontrolador que mejor satisfaga las necesidades del proyecto con el minimo presupuesto.

Para resolver aplicaciones sencillas se precisan pocos recursos, en cambio, las aplicaciones grandes requieren numerosos y potentes. Siguiendo esta filosofia Microchip construye diversos modelos de microcontroladores orientados a cubrir, de forma optima, las necesidades de cada proyecto. Asi, hay disponibles microcontroladores sencillos y baratos para atender las aplicaciones simples y otros complejos y mas costosos para las de mucha envergadura. Microchip dispone de cuatro familias de microcontroladores de 8 bits para adaptarse a las necesidades de la mayoria de los clientes potenciales.

En la mayor parte de la bibliografia encontrareis tan solo tres familias de microcontroladores, con lo que habran despreciado la llamada gama enana, que es en realidad una subfamilia formada por componentes pertenecientes a las otras gamas. En nuestro caso hemos preferido comentarla dado que los PIC enanos son muy apreciados en las aplicaciones de control de personal, en sistemas de seguridad y en dispositivos de bajo consumo que gestionan receptores y transmisores de senales. Su pequeno tamano los hace ideales en muchos proyectos donde esta cualidad es fundamental. 2. 2. 1 La gama enana: PIC12C(F)XXX de 8 patitas

Se trata de un grupo de PIC de reciente aparicion que ha acaparado la atencion del mercado. Su principal caracteristica es su reducido tamano, 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. Figura 2. 1. Diagrama de conexiones de los PIC12Cxxx de la gama enana.

Aunque los PIC enanos solo tienen 8 patitas, pueden destinar hasta 6 como lineas de E/S para los perifericos porque disponen de un oscilador interno R-C. En la Tabla 2. 1 se presentan las principales caracteristicas de los modelos de esta subfamilia, que el fabricante tiene la intencion de potenciar en un futuro proximo. Los modelos 12C5xx pertenecen a la gama baja, siendo el tamano 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. MODELO |MEMORIA PROGRAMA|MEMORIA DATOS |FRECUENCIA | | | | |MAXIMA | |00 |INDF |INDF |80 | |01 |TMR0 |OPTION |81 | |02 |PCL |PCL |82 | |03 |STATUS |STATUS |83 | |04 |FSR |FSR |84 | |05 |PORT A |TRIS A |85 | |06 |PORT B TRIS B |86 | |07 | | |87 | |08 | | |88 | |09 | | |89 | |0A |PCLATH |PCLATH |8A | |0B |INTCON |INTCON |8B | |0C |PIR1 |PIE1 |8C | |0D | | |8D | |0E | |PCON |8E | 0F | | |8F | |10 | | |90 | |11 | | |91 | |12 | | |92 | |13 | | |93 | |14 | | |94 | |15 | | |95 | |16 | | |96 | |17 | | |97 | 18 | | |98 | |19 | | |99 | |Direccion |BANCO 0 |BANCO 1 |Direccion | |1 A | | |9 A | |1B | | |9B | |1C | | |9C | |1D | | |9D | |1E | | |9E | |1F |CMCON |VRCON |9F | . |Registros de |Registros de |. | |. |Proposito |Proposito |. | |. |General |General |. | |7F | | |FF | 3. 2 Registros especificos El PC. Direccionamiento del programa: El PC consta de 13 bits, con lo que es posible direccionar hasta 8K palabras, separadas en bancos de 2K. El byte de menos peso de la direccion se guarda en el registro PCL, sito en la posicion 0x02 del banco 0, mientras los 5 bits de mas peso se guardan en los 5 bits de menos peso del registro PCLATH (direccion 0x08).

Puesto que las instrucciones CALL y GOTO solo cuentan con 11 bits, sus saltos seran relativos a la pagina en la que estemos. El cambio real de pagina se hara cambiando los bits PCLATH. 4 y PCLATH. 3. El STATUS. Registro de estado. El OPTION. Registro de opciones El INTCON. Registro de Interrupciones El PCON. Registro identificador del reset Los registros PIE1 y PIR1 estan relacionados con el comparador, asi como CMCON y VRCON, y no seran explicados ya que el PIC16C84, en el que se centra este estudio, carece de el. El registro FSR es utilizado en la gama baja, por lo que tampoco nos ocuparemos de el.

Los registros TMR0, PORTA, PORTB, TRISA Y TRISB, seran, por comodidad, estudiados en el apartado de programacion, asi como el WDT. 4. REPERTORIO DE INSTRUCCIONES 4. 1 Caracteristicas generales Habiendo escogido los disenadores de PIC la filosofia RISC, su juego de instrucciones es reducido (33 instrucciones en la gama baja), siendo estas, ademas, sencillas y rapidas, puesto que casi todas se ejecutan en un unico ciclo de maquina (equivalente a 4 del reloj principal). Sus operandos son de gran flexibilidad, pudiendo actuar cualquier objeto como fuente y como destino.

Posee tres tipos bien diferenciados de direccionamiento, estos son: 1? Inmediato: El valor del dato esta incluido en el propio codigo OP, junto a la instruccion. 2? Directo: La direccion del dato esta incluido en el propio codigo OP, junto a la instruccion. 3? Indirecto: La direccion de la memoria de datos que guarda el operando esta contenida en un registro. Nosotros nos centraremos en la gama media, que tiene 35 instrucciones. La mayoria son identicas a las de la gama baja, si bien las diferencias seran convenientemente explicadas. 4. 2 Definiciones y abreviaturas

Ante todo es conveniente que usted tenga clara la estructura interna del micro, puesto que las instrucciones la referencian, y puesto que en cualquier micro la comprension de la nomenclatura de sus componentes es esencial. De este modo hemos creado la siguiente tabla para ayudarle a comprender las abreviaturas: |Abreviatura Descripcion | |PC |Contador de Programa que direcciona la memoria de instrucciones. Tiene un tamano | |de 11 bits en la gama baja, de los cuales los 8 de menos peso configuran el | | |registro PCL que ocupa el registro 0x02 del area de datos. | | | | | |Cima de la pila, con 2 niveles en la gama baja y 8 en la media | |TOS | | | |Perro guardian (Watchdog) | WDT | | | |Registro W, similar al acumulador | |W | | | |Suele ser un campo de 5 bits (fffff) que contiene la direccion del banco de | |F |registros, que ocupa el banco 0 del area de datos. Direcciona uno de esos | |registros. | | | | | |Bit del codigo OP de la instruccion, que selecciona el destino. Si d=0, el | |D |destino es W, y si d=1 el destino es f. | | | | | |Destino (registro W o f) | Dest | | | |Bit “Time Out” del registro de estado | |TO | | | |Bit “Power Down” del registro de estado | |PD | | |Suele ser un campo de 3 bits (bbb) que determinan la posicion de un bit dentro de| |b |un registro de 8 bits | | | | | |Se trata, normalmente, de un campo de 8 bits (kkkkkkkk) que representa un dato | |k |inmediato.

Tambien puede constar de 9 bits en las instrucciones de salto que | | |cargan al PC | | | | | |Valor indeterminado (puede ser un 0 o un 1). Para mantener la compatibilidad con| |x |las herramientas software de Microchip conviene hacer x = 0 | | | | |Nombre de la etiqueta | | | | |label |Opciones | | |Contenido | |[] |Se asigna a | () |Campo de bits de un registro | |( |Pertenece al conjunto | | | | |( |Senalizador de cero en W. Pertenece al registro de estado | | | | Z |Senalizador de acarreo en el octavo bit del W. Pertenece al registro de estado | | | | |C |Senaliza el acarreo en el 4 bit del W. Pertenece al registro de estado | | | | | |Terminos definidos por el usuario | DC | | | | | | | | |Italicas | | 4. 3 Repertorio de instrucciones de la gama media 4. 4 Instrucciones de la gama baja

La gama baja carece de 4 de las instrucciones de la gama media. Estas son ADDLW, RETFIE, RETURN y SUBLW. En cambio, y puesto que los registros OPTION y TRIS no son accesibles, se anaden las dos siguientes: Observe que el codigo OP de las instrucciones de la gama baja solo ocupan 12 bits, no correspondiendose, por tanto, con el de la gama media. Otras diferencias fundamentales entre ambas gamas son, por ejemplo, que en la baja el vector de reset (la primera linea que se ejecuta tras un reset) es la ultima de la memoria correspondiente, mientras que en la media es la 0x00.

El vector de interrupcion (situado en la 0x04) no existe en la gama baja. En la gama baja se necesita emplear los bits PA2-PA0 como parte alta de la direccion de programa en las instrucciones CALL y GOTO. Las paginas de la gama baja son mas pequenas, y se deben revisar todas las escrituras de los registros OPTION, ESTADO y FSR en la conversion del codigo. Por tanto, facilmente comprobamos que el codigo entre ambas gamas no es 100% compatible. 5. PROGRAMACION DE LOS (CONTROLADORES PIC 5. 1 Introduccion

En busca de la sencillez que debe acompanar a este documento, ya que se ha pensado elaborarlo a modo de practicas, nos centraremos directamente en la programacion de los (controladores que nos ocupan, los PIC, es decir, no explicaremos en si las estrategias asociadas al diseno, ya que han sido impartidas en otras asignaturas o pueden ser facilmente halladas en otros textos, sino que, paso a paso, iremos viendo la confeccion de distintas rutinas, cada vez mas complejas, hasta familiarizarnos con todas sus instrucciones y componentes.

No obstante acompanamos nuestro trabajo con un organigrama con las distintas fases de implementacion, en las que, de hecho, suponemos, tras una fase de estudio del problema, elegido ya el mejor (controlador, asi como decidido el sistema de conexion de patillas de E/S correcto. INICIO Se hara en formato de texto DOS o ASCII con cualquier editor, como, por ejemplo, el EDIT. Tambien es posible usar el entorno WIN95-98 respetando este formato de grabacion. Nosotros emplearemos el MPLAB como editor. Para el lenguaje ensamblador emplearemos el MPASM, habiendo tambien herramientas para trabajar en C. Nosotros o elegiremos por defecto como ensamblador en el MPLAB. La herramienta de simulacion en DOS es MPSIM, pero el entorno grafico MPLAB tiene su propio sistema, que utilizaremos. ?ERRORES? Cada grabador tiene su software especifico, y es posible encontrar multiples circuitos y programas en Internet. Microchip vende sus propios equipos, asi como micros programados de fabrica. FIN Las herramientas MPLAB, MPASM y MPSIM se pueden encontrar y bajar gratuitamente de internet en la direccion www. microchip. com. Nosotros facilitamos en el CD adjunto las actualizaciones de abril del 2000. 2. – PRIMEROS PASOS CON EL MPLAB

Antes de comenzar a escribir programas es necesario conocer las herramientas disponibles para desarrollarlos. De entre ellas el entorno para nosotros mas interesante es el MPLAB, no por ser el mas eficiente, ya que de hecho probablemente no lo es, sino por ser el mas accesible: se puede bajar gratis a traves de internet o pedirse, tambien gratis, a Sagitron, su distribuidor en Espana. Ademas es grafico, funcionando perfectamente bajo Windows. Este entorno, que a continuacion pasaremos a describir, funciona tipo Container, es decir, sus distintas opciones son asociadas a programas, que seran ejecutados cuando se las pulse.

De este modo bastara con definirle un ensamblador, un emulador o un grabador distinto a los que lleva por defecto para incorporarlo inmediatamente al entorno. Para ayudarnos emplearemos el sencillo programa suma. asm, incluido en el CD adjunto, el cual, simplemente, realiza una suma de los registros PCL (0x02) y la entrada del Puerto A (0x05). [pic] El modo de abrir una ventana con suma. asm es el habitual, a traves del menu FILE, seguido de OPEN, o con el icono tipico, que encabeza este parrafo (en amarillo, no en verde). 5. El entorno de trabajo MPLAB 5. 2. 1 El ensamblador El ensamblador que utiliza por defecto el MPLAB es el MPASM, que conserva de sus tiempos bajo MS-DOS. Debido a que suma. asm ha sido escrito con determinadas directivas muy comunes en cualquier implementacion para MPASM conviene comenzar por ellas antes de embarcarse autenticamente en la descripcion de menus y submenus del MPLAB. Ya la primera linea, LIST P = 16C84, es importante, puesto que con ella definimos el procesador a utilizar durante todos los procesos (ensamblado, emulacion, grabacion).

Los dos resaltados pueden llegar a ser especialmente criticos, en caso de recurrir a un procesador erroneo, haciendonos perder jornadas de trabajo o chips por despiste. Es por ello, junto al hecho de facilitar la identificacion del programa solo con un primer vistazo, que preferimos esta forma a la de seleccionarlo por menu, tambien posible y detallada mas abajo en este mismo texto. La directiva ORG, seguida de una posicion de memoria, indica al ensamblador donde debe situar en la misma el siguiente fragmento de codigo, siendo tambien recomendable incluirla en todo programa, como minimo, antes de la primera instruccion.

Los casos de direcciones especiales seran tambien descritos mas adelante en el presente texto. La directiva END es imprescindible e indica al ensamblador el final del programa. El ; es empleado a modo de comando REM, es decir, se sobreentiende que lo que le sigue es un comentario. El ensamblador exige una cierta tabulacion minima de sus distintos elementos. De este modo la definicion de variables podra escribirse en la 1? columna de cualquier linea, mientras que las directivas e instrucciones deberan ir en la 2? columna, como minimo.

Las tabulaciones caracteristicas son las empleadas por nosotros, ya que, aunque no son imprescindibles, clarifican la lectura del programa. Las cifras se expresan de acuerdo con la presente tabla: El uso de las mayusculas y minusculas en este codigo obedece a una serie de reglas o normas de estilo, comunes entre los programadores en ensamblador, que, aunque no son obligatorias, facilitan la lectura del codigo fuente. Un resumen de las reglas empleadas es el siguiente: Directivas del compilador en mayusculas. Nombres de variables en minusculas Nemonicos (instrucciones) en mayusculas

Programa bien tabulado. Suponemos que usted sera ya capaz de comprender el programa. Si no es asi le recomendamos que examine el sentido de sus instrucciones en el apartado respectivo de este manual. Para que compruebe si es asi le retamos a una sencilla propuesta: el programa tiene instrucciones innecesarias, detectelas y eliminelas. El resultado correcto seria suma2. asm, contenido tambien en el CD. 5. 2. 2 Creando un nuevo proyecto En MPLAB es posible abrir un fichero en ensamblador (*. asm) y ensamblarlo para poder obtener el fichero de entrada de un grabador (*. ex), pero tambien es posible el uso de proyectos que utilicen varios *. asm, permitiendo asi reutilizar codigo con mayor facilidad, al ser este mas modular. Es, pues, muy conveniente saber crear un proyecto, el cual se abrira gracias al menu Proyect, mediante su opcion Open Proyect… , muy similar a Open File. [pic] Tambien sera posible buscar el icono adecuado cambiando la barra de iconos, para lo cual emplearemos el que antecede estas lineas. Existen 4 barras, Edit, Debug, Proj y User, cuyo nombre aparece en el registro mas a la izquierda de la barra de informacion (en la parte inferior de la ventana).

Tanto en User como en Proj existen iconos capaces tambien de abrir un proyecto (una carpeta verde). Compruebe usted mismo en esta barra (Proj) a que opcion corresponde cada icono situandose sobre el y mirando seguidamente la barra de informacion (parte inferior de la ventana). Esta barra (User) es una seleccion de iconos de las otras tres. Escoja la opcion New Proyect… y dele el nombre pr1. pjt. Llegara entonces a una ventana como la que se muestra en la pagina siguiente: Seleccione pr1 [. hex] en el frame Proyect Files y se le facilitara la opcion Node Properties.

Seleccione tambien dicha opcion. Obtendra entonces esta nueva ventana: Seleccione el Hex Format deseado (de momento INHX8M), es decir, el tipo de fichero en el que el ensamblador debera convertir los *. asm. Todos los formatos suelen ser aceptados por los grabadores, a quienes van destinados. Ya puede darle a OK. El proyecto sigue estando vacio, y habra que anadirle nuestro programa (suma. asm) para que pueda ensamblarse y probarse. Esto solo sera posible si proyecto y programa estan en la misma carpeta. Observara que ahora tiene activa la opcion Add Node del frame Project Files.

Seleccionela y anada suma. asm. Ya tenemos un proyecto activo y funcional. En proximos apartados hablaremos del uso de multiples modulos o librerias. 5. 2. 3 Ensamblando [pic] El proceso de ensamblado es muy sencillo. Bastara con, sobre el menu Proyect, pulsar la opcion Build Node, que ensamblaria solo la ventana activa, o la opcion Build All, que ensamblaria todos los nodos del proyecto. Por ultimo la opcion Make Project ensamblaria todos los nodos de un proyecto y los unificaria en un unico *. hex. Los pulsadores dibujados en este parrafo, de la barra Proj, contienen todas estas opciones.

Y el resultado es una ventana como esta, con mensajes, errores y warnings. Corrija los errores que le marque el ensamblador y el programa sera sintacticamente correcto. Un numero situado tras el nombre del programa le indica la linea exacta a que esta asociado el mensaje. Este boton de la barra Edit numerara las lineas automaticamente si su listado es largo. 5. 2. 4 Simulacion bajo windows Una vez corregidos todos los errores el p