Microcontroladores PIC - Diseño Práctico de Aplicaciones

245

Transcript of Microcontroladores PIC - Diseño Práctico de Aplicaciones

  • Tercera edicin

    MICROCONTROLADORES PICDiseo prcticode aplicaciones

    Primera parte. El PIC16F84Lenguajes PBASIC y Ensamblador

  • Tercera edicin

    JOS M. ANGULO USATEGUIDr. Ingeniero Industrial

    Catedrtico de Arquitectura de Computadoresen la Universidad de Deusto

    IGNACIO ANGULO MARTNEZLicenciado en Informtica

    Director Tcnico de Ingeniera de Microsistemas Programados, S. L.Profesor de Tecnologa de Computadores

    en la Universidad de Deusto (Campus de Vitoria)

    MADRID BUENOS AIRES CARACAS GUATEMALA QUILPU MXICOARAUCO PANAM SAN JUAN SANTAF DE BOGOT SANTIAGO SO PAULOAUCKLAND HAMBURGO LONDRES MILN MONTREAL VALPARASO PARS

    SAN FRANCISCO SIDNEY SINGAPUR ST. LOUIS TOKIO TEMUCO

    MICROCONTROLADORES PICDiseo prcticode aplicaciones

    Primera parte. El PIC16F84Lenguajes PBASIC y Ensamblador

  • El software contenido en el CD destinado a la edicin, ensamblage, simulaciny depuracin de programas son propiedad de sus respectivos fabricantes:Microchip Technology Inc., Parallax Inc. e Ingeniera de MicrosistemasProgramados S.L. El simulador SIM2000 es propiedad de los autores.

    MICROCONTROLADORES PIC. Diseo prctico de aplicaciones. Primera parte:El PIC16F84. Lenguajes PBASIC y Ensamblador. Tercera edicin

    No est permitida la reproduccin total o parcial de este libro, ni su tratamientoinformtico, ni la transmisin de ninguna forma o por cualquier medio, ya seaelectrnico, mecnico, por fotocopia, por registro u otros mtodos, sin el permisoprevio y por escrito de los titulares del Copyright.

    DERECHOS RESERVADOS 2003, respecto a la tercera edicin en espaol, porMcGRAW-HILL/INTERAMERICANA DE ESPAA, S. A. U.Edificio Valrealty, 1. plantaBasauri, 1728023 Aravaca (Madrid)

    ISBN: 84-481-3788-4Depsito legal: M. 16.641-2003

    Editora: Concepcin Fernndez MadridAsistente Editorial: Susana Santos PrietoDiseo de cubierta: Design Master DIMACompuesto en: FER Fotocomposicin, S. A.I mpreso en: EDIGRAFOS, S. A.I MPRESO EN ESPAA - PRINTED IN SPAIN

  • Prlogo .............................................................. XIII

    Captulo 1. MICROCONTROLADORES PROGRAMABLES: LA SOLUCINEST EN UN CHIP ........................................

    1

    Captulo 2.

    MICROCONTROLADORES DE 8 BITS: LOS PIC ...........

    15

    Captulo 3.

    LOS SELLOS MGICOS DE PARALLAX ................. . . .

    27

    3.1.

    Acercando la tecnologa .......... . ..............................

    273.2.

    El nacimiento y desarrollo de una empresa

    . . . . . . . . . . . . . . . . . . . . . . . . . .

    28

    v

    1.1. Qu es un microcontrolador? .................................... 11.1.1. Diferencia entre microprocesador y microcontrolador ........... 3

    1.2. Arquitectura interna .................... . ........... . .... . ...... 51.2.1. El procesador ........................................... 51.2.2. Memoria de programa .... . . .............................. 61.2.3. Memoria de datos ........................................ 81.2.4. Lneas de E/S para los controladores de perifricos . ............ 81.2.5. Recursos auxiliares ...................................... 8

    1.3. Programacin de los microcontroladores ............................ 91.4. Instrumental de trabajo .......................................... 9

    2.1. La eleccin ................................................... 152.2. La familia de los PIC ..... . ... . ....... . .............. . .......... 16

    2.2.1. Gama baja o bsica: PIC 16C5X con instrucciones de 12 bits ...... 172.2.2. Gama media: PIC16CXXX con instrucciones de 14 bits ......... 172.2.3. Gama alta: PIC17CXXX con instrucciones de 16 bits ........... 192.2.4. Gama mejorada: PIC18CFXXX con instrucciones de 16 bits ...... 202.2.5. Los enanos de 8 patitas ................................... 21

    2.3. Descripcin general y aplicaciones ................................ 23

  • vi CONTENIDO

    Captulo 4.

    PBASIC: EL LENGUAJE MS FCIL DEL MUNDO ...........

    43

    Captulo 5.

    EL PRIMER CONTACTO CON EL PIC16F84 .................

    67

    3.3. El microcontrolador es el cerebro del sistema ........................ 323.4. La memoria EEPROM. Presentacin del bus I2C ..................... 353.5. Seccin de la entrada/salida serie del PC ............................ 383.6. Seccin del regulador de tensin .................................. 393.7. Seccin de las lneas de E/S para informacin con el mundo exterior ...... 39

    4.1. BASIC: el lenguaje ms fcil del mundo .................. . ......... 434.1.1. Ventajas e inconvenientes .................................. 434.1.2. Los lenguajes usados pra microcontroladores .................. 44

    4.2. El editor Stamp ....... . ........................................ 464.3. El repertorio de instrucciones PBASIC ............................. 494.4. El primer programa ............................... . ............. 524.5. Prctica 1: Manejando luz y sonido ................................ 56

    4.5.1. Objetivo s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564.5.2. Fundamentos tericos bsicos e instrucciones empleadas ......... 574.5.3. Esquema electrnico ..................................... 574.5.4. Materiales necesarios ..................................... 574.5.5. Montaje prctico ........................ . ............... 584.5.6. Desarrollo de la prctica y ejecucin del programa .............. 584.5.7. Trabajo personal ......................................... 59

    4.6. Prctica 2: Control de un semforo sonoro ........................... 604.6.1. Objetivo s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604.6.2. Fundamentos tericos bsicos e instrucciones empleadas ......... 604.6.3. Esquema electrnico ..................................... 614.6.4. Materiales necesarios ..................................... 614.6.5. Montaje prctico ........................................ 614.6.6. Desarrollo de la prctica y ejecucin del programa .............. 614.6.7. Trabajo personal ......................................... 63

    4.7. Prctica 3: Contador binario de 8 bits con alarma ..................... 634.7.1. Objetivo s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634.7.2. Fundamentos tericos bsicos e instrucciones empleadas ......... 634.7.3. Esquema electrnico ..................................... 644.7.4. Materiales necesarios ..................................... 654.7.5. Montaje prctico ........................................ 654.7.6. Desarrollo de la prctica y ejecucin del programa .............. 65

    5.1. Pequeo, pobre, pero resultn .................................... 675.1.1. Variantes del PIC 16X8X .................................. 685.1.2. Diferencias entre los modelos PIC 16X8X . . ................... 70

    5.2. El aspecto externo ....................... . ...................... 705.3. La frecuencia de funcionamiento. El reloj .... . ...................... 71

    5.3.1. Tipos de osciladores ...................................... 73

  • Captulo 6.

    EN EL INTERIOR DEL PROCESADOR ......................

    81

    Captulo 8.

    INTERRUPCIONES, RESET Y RECURSOS AUXILIARES ......

    111

    CONTENIDO vii

    5.4. Reinicializacin o Reset ........................................ . 755.5. El primer circuito prctico ....................................... 755.6. Una solucin al diseo de proyectos: la tarjeta de prototipos ............ 77

    6.1. Una arquitectura moderna y revolucionaria .......................... 816.1.1. Diferencias de la arquitectura del PIC16C84 con la de sus variantes. 84

    6.2. Memoria de programa ............................ . ............. 856.2.1. El Contador de Programa y la Pila ........................... 85

    6.3. Memoria de datos RAM ... . .................................... . 866.3.1. Memoria de datos RAM en el PIC16F84 y el PIC16CR84 ........ 896.3.2. Direccionamiento de la memoria de datos ..................... 91

    6.4. El registro de ESTADO ......................................... 93

    Captulo 7. LOS RECURSOS FUNDAMENTALES: TEMPORIZADORES,PUERTAS DE EIS Y EEPROM DE DATOS .................... 95

    7.1. El papel de los temporizadores .................................... 957.2. Temporizador/contador TMRO .................................... 95

    7.2.1. El registro OPTION ...................................... 987.3. El Perro Guardin (WDT) .......... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997.4. Las puertas de E/S ............................................. 1 01

    7.4.1. La Puerta A ............................... . . . . . . . . . . . . . 1 027.4.2. La Puerta B ............................................. 1 04

    7.5. La Palabra de Configuracin .......................... . . . . . . . . . . . 1 047.5.1. Palabras de Identificacin (ID) ............................. 106

    7.6. La memoria EEPROM de datos ................................... 1 06

    8.1. Importancia de las interrupciones .................................. 1118.2. Causas de interrupcin .......................................... 112

    8.2.1. El Registro de Control de Interrupciones INTCON .............. 1 1 28.2.2. Interrupcin externa INT .................................. 1168.2.3. Interrupcin por desbordamiento del TMRO .............. . .... 1178.2.4. Interrupcin por cambio de estado en las lneas RB4 : RB7 de la

    Puerta B ............................................... 1188.2.5. Interrupcin por finalizacin de escritura en la EEPROM de datos .. 118

    8.3. Reinicializacin o Reset ......................................... 1198.3.1. Reset por fallo en la alimentacin (Brown Out) .............. 1 21

    8.4. El modo de Reposo o de bajo consumo ............................. 1238.5. Programacin en serie de los PIC16X8X ............................ 1 23

  • viii CONTENIDO

    Captulo 9. MANEJANDO EL REPERTORIO DE INSTRUCCIONES .......

    125

    Captulo 10.

    HERRAMIENTAS Y DISEO DE PROYECTOS ..............

    139

    Captulo 11. EJERCICIOS DE PROGRAMACIN EN ENSAMBLADOR ....

    159

    9.1. Repertorio RISC . ............... . ...... . ....... . ....... . ....... 1259.2. Tipos de formato ...................................... . ........ 126

    9.2.1. Operaciones orientadas a manejar registros de tamao byte .... . . . 1279.2.2. Operaciones orientadas a manejar bits ........................ 1289.2.3. Operaciones que manejan un valor inmediato o literal ........... 1299.2.4. Operaciones incondicionales de control de flujo del programa ..... 1299.2.5. Operaciones de salto condicional ............................ 1 29

    9.3. Precisiones sobre nomenclatura y smbolos .......................... 1 309.4. Instrucciones que manejan registros ................................ 1 329.5. Instrucciones que manejan bits .................. . ................. 1339.6. Instrucciones de brinco (skip) ..................................... 1 349.7. Instrucciones que manejan operandos inmediatos ..................... 1359.8. Instrucciones de control y especiales ............................... 136

    10.1. Fases de diseo ................................................ 1 391 0.2. Herramientas accesibles ......................................... 1 41

    1 0.2.1. La cabeza ..................................... . ....... 1421 0.2.2. Editor de textos ........................................ 1 4210.2.3. Ensamblador o Compilador ............................... 1 4210.2.4. Simulador software ..................................... 1 4310.2.5. El grabador............................................ 1 4310.2.6. Sistema de desarrollo .................................... 1 4410.2.7. Tarjeta de prototipos ..................................... 145

    10.3. Emulador en circuito ................ . ........... . . ............. 1 4510.4. Introduccin al diseo de proyectos: puesta en hora ....... . ........... 14610.5. Un dado electrnico ............................................ 1 511 0.6. Semforo regulable ............................................. 1 531 0.7. Presentador de mensajes ......................... . ......... . ..... 15510.8. Clave de acceso ................................................ 155

    11.1. Introduccin .................................................. 1 5911.2. El primer programa: Aprendiendo a sumar .......................... 15911.3. El segundo programa de calentamiento: Explorando interruptores y encen-

    diendo luces .................................................. 1 6811.4. El tercer programa con diseo hardware ............................ 17411.5. El cuarto programa: Contando y visualizando ...... . . ........ . . ...... 18111.6. El quinto programa de aprendizaje: Controlando el tiempo .............. 1 8511.7. Las interrupciones .............................................. 19311.8. El sexto ejercicio prctico: Manejando interrupciones .................. 193

  • CONTENIDO i x

    11.9.

    Sptimo ejercicio: Programas con un poco de todo, manejando el registro detrabajo W

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    199

    Captulo 12.

    LOS PRIMEROS DISEOS PRCTICOS ....................

    207

    1 2.1. Presentacin ................................................. 20712.2. PRCTICO 0: Herramientas de desarrollo ......................... 207

    12.2.1. Objetivo s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20712.2.2. Herramientas hardware ................................. 20812.2.3. Herramientas software ................................. . 21012.2.4. Tutoria l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

    12.3. PRCTICA l: Sencillo ejemplo de manejo de la E/S .......... . ..... . 21412.3.1. Objetivo s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21412.3.2. Fundamentos tericos bsicos . ........................... 2141 2.3.3. Esquema electrnico ................................... 21512.3.4. Materiales necesarios ................................... 21512.3.5. Montaje prctico ...... . .................. . ............ 2161 2.3.6. Desarrollo de la prctica ................................ 2161 2.3.7. Trabajo personal....................................... 216

    1 2.4. PRCTICA 2: Control de una lmpara desde dos interruptores ......... 21712.4.1. Objetivo s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21712.4.2. Fundamentos tericos bsicos ............................ 2171 2.4.3. Esquema electrnico ................................... 21812.4.4. Materiales necesarios ............................... . ... 21812.4.5. Montaje prctico .... . ................................. 2191 2.4.6. Desarrollo de la prctica ................................ 21912.4.7. Trabajo personal ............... . ...... . ............. . . . 219

    12.5. PRCTICA 3: Ejemplo combinacional .... . ......... . ............. 21912.5.1. Objetivo s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21912.5.2. Fundamentos tericos bsicos ............................ 22012.5.3. Esquema electrnico ....... . ........................... 22112.5.4. Materiales necesarios ................................ . . . 22112.5.5. Montaje prctico ...................................... 22112.5.6. Desarrollo de la prctica ............................. . . . 22212.5.7. Trabajo personal ....................................... 222

    1 2.6. PRCTICA 4: Ejemplo secuencial ............................... 2231 2.6.1. Objetivo s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22312.6.2. Fundamentos tericos bsicos ............................ 22312.6.3. Esquema electrnico ..................... . ............. 2231 2.6.4. Materiales necesarios ................................... 22412.6.5. Montaje prctico ........... . .... . .................... . 2241 2.6.6. Desarrollo de la prctica ................................ 22412.6.7. Trabajo personal ....................................... 226

    1 2.7. PRCTICA 5: El TMR0, juego de luces .................. . . ....... 22612.7.1. Objetivo s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22612.7.2. Fundamentos tericos bsicos .................... . ....... 226

  • x CONTENIDO

    Apndice A: Gua Rpida del PIC16X84 ................................ ...

    245

    12.7.3. Esquema electrnico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22712.7.4. Materiales necesarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22712.7.5. Montaje prctico ...................................... 22712.7.6. Desarrollo de la prctica ................................ 2271 2.7.7. Trabajo personal ....................................... 229

    12.8. PRCTICA 6: Usando el preescaler, otro juego de luces .............. 2291 2.8.1. Objetivos ............................................ 22912.8.2. Fundamentos tericos bsicos ............................ 22912.8.3. Esquema electrnico

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23012.8.4. Materiales necesarios .................. . ... . ........ . ... 23012.8.5. Montaje prctico ............ . ......................... 23012.8.6. Desarrollo de la prctica ...... . ......................... 23012.8.7. Trabajo personal ....................................... 232

    12.9. PRCTICA 7: Manejando el WDT y el modo SLEEP . . .............. 23212.9.1. Objetivos ............................................ 23212.9.2. Fundamentos tericos bsicos ............................ 23212.9.3. Esquema electrnico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 2331 2.9.4. Materiales necesarios

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23312.9.5. Montaje prctico ...................................... 23312.9.6. Desarrollo de la prctica ............................ . ... 23312.9.7. Trabajo personal ...................... . ................ 235

    12.10. PRCTICA 8: El TMRO como contador de pulsos externos ............ 2351 2.10.1. Objetivos ........................................... 23512.10.2. Fundamentos tericos bsicos ................... . ....... 23512.10.3. Esquema electrnico

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23512.10.4. Materiales necesarios

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2361 2.10.5. Montaje prctico ........ . ............................ 23612.10.6. Desarrollo de la prctica ............................... 23612.10.7. Trabajo personal ......... . ............................ 238

    12.11. PRCTICA 9: La interrupcin del TMRO .......................... 23812.11.1. Objetivos ........................................... 23812.11.2. Fundamentos tericos bsicos

    . . . . . . . . . . . . . . . . . . . . . . . . . . . 23812.11.3. Esquema electrnico

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2381 2.11.4. Materiales necesarios ............ . ............ . ........ 23912.11.5. Montaje prctico ..................................... 23912.11.6. Desarrollo de la prctica ............................... 2391 2.11.7. Trabajo personal ...................... . ............... 240

    12.12. PRCTICA 10: Ms interrupciones ............................... 24112.12.1. Objetivos ........................................... 2411 2.12.2. Fundamentos tericos bsicos ........................... 24112.12.3. Esquema electrnico

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2411 2.12.4. Materiales necesarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24212.12.5. Montaje prctico ..................................... 24212.12.6. Desarrollo de la prctica ............................... 2421 2.12.7. Trabajo personal ...................................... 243

  • CONTENIDO Xi

    Apndice B: Gua del usuario del SIM2000 . ............. . ........ . ...... . . 255

    Apndice C: Breve descripcin del Micro'PIC Trainer ..... . .... . .......... . . 257

    Apndice D: La familia PIC al completo .......... . ........................ 265

    Apndice E: Contenido del CD .......... . ............................. ... 273

    Apndice F: Proyectos con el PIC16F84 ......... . .............. . .......... 279

    Bibliografa y direcciones de inters relacionadas con los PIC ................. 353

    ndice................................................................ 355

  • Los microcontroladores estn conquistando el mundo. Estn presentes en nuestro trabajo, ennuestra casa y en nuestra vida, en general. Se pueden encontrar controlando el funcionamien-to de los ratones y teclados de los computadores, en los telfonos y en los hornos microondasy los televisores de nuestro hogar. Pero la invasin acaba de comenzar y los albores del sigloxxi sern testigos de la conquista masiva de estos diminutos computadores, que gobernarn lamayor parte de los aparatos que fabricamos y usamos los humanos.

    Las extensas reas de aplicacin de los microcontroladores, que se pueden considerar ili-mitadas, exigirn un gigantesco trabajo de diseo y fabricacin.

    Aprender a manejar y aplicar microcontroladores slo se consigue desarrollando prctica-mente diseos reales. Sucede lo mismo que con cualquier instrumento musical, cualquier de-porte y con muchas actividades.

    El objetivo primordial que nos ha movido al escribir este libro es facilitar el camino allector para que se entusiasme y utilice los microcontroladores, por eso est plagado de pro-gramas para confeccionar y simular, as como de proyectos reales para manejo de los perif-ricos tpicos.

    La filosofa y el mtodo que hemos empleado nos ha dado excelentes resultados en nues-tros entornos de trabajo. Un autor es profesor y ensea los microcontroladores en la universi-dad, y el otro tambin los aplica en los proyectos que dirige en una empresa. Se trata de des-cribir un modelo simple de microcontrolador de manera lo suficientemente clara para que ellector quiera usarlo. Cuando se conoce un modelo y se han desarrollado proyectos sencillos, esinmediato pasar a manejar otros microcontroladores y acometer complejos diseos. En esemomento, las posibilidades slo estn limitadas por la imaginacin y la capacidad de trabajo.

    Esta obra consta de dos libros. Hemos elegido para ambos una familia de microcontro-ladores: los PIC de Microchip Technology Inc. Dentro de ella seleccionamos un modeloconcreto para la primera parte: el PIC16F84. Las razones que nos han empujado a esta de-cisin es que este microcontrolador es sencillo, moderno, rpido, barato y en l se pueden es-cribir los programas y borrarlos montones de veces, dispone de una excelente documentaciny las herramientas de desarrollo son asequibles para todos los bolsillos. Hay millares de apli-caciones realizadas con el PIC 16F84 en todo el mundo.

    Para dar consistencia a nuestro inters por la experimentacin, el libro incluye un CD quecontiene varios tutoriales, un simulador y los programas necesarios para editar, ensamblar,

    xiii

  • xiv PRLOGO

    depurar y simular todos los ejercicios y proyectos que se proponen en el texto y que se hallanresueltos. Adems, para que el lector no encuentre una barrera en el coste de las herramien-tas, se han elegido aquellas que por su precio se acomodan a cualquier presupuesto.

    En esta nueva edicin se ha modificado el contenido y la estructura de los captulos deesta primera parte de iniciacin que es la que tiene entre sus manos. Se ha enfocado preferen-temente a estudiar terica y prcticamente al PIC16F84, modelo que ha logrado un xito a ni-vel mundial. Adems, se ha intentado ofrecer un solo tema en cada captulo y proporcionarprogramas, diseos y manejo de herramientas una vez presentados los conceptos tericos pre-vios. El libro que conforma la segunda parte de esta obra se destina a los microcontroladoresPIC 16F87X, de mayor complejidad, que exigen el uso de herramientas ms avanzadas y seutilizan en aplicaciones mucho ms exigentes.

    En el Captulo 1 se describen las caractersticas generales del hardware y software que en-vuelven a los microcontroladores en general y sus aplicaciones. El Captulo 2 se dedica a pre-sentar las gamas de microcontroladores PIC y las razones por las que se les ha elegido en estaobra. Una importante novedad la constituyen los Captulos 3 y 4 que contienen todo el materialpreciso para conocer, manejar y programar los mdulos de Parallax con el lenguaje PBASIC,el ms fcil del mundo. Consideramos que este acercamiento al diseo con microcontrola-dores pone en manos de las personas con escasos conocimientos de Electrnica e Informticaun camino sencillo y apropiado. Mediante los mdulos BASIC Stamp se ensea a desarrollarexperiencias al alcance de todos. El Captulo 5 toma el primer contacto con el PIC16F84 y pre-senta los circuitos bsicos que le rodean, destinando el Captulo 6 a la arquitectura interna.En el 7 se describen los recursos fundamentales: temporizadores, puertas de E/S y EEPROM.El Captulo 8 expone el manejo de las interrupciones y de algunos circuitos auxiliares. Elrepertorio de instrucciones con ejercicios de manejo se analiza en el Captulo 9. En el 10 semuestran las herramientas ms comunes para el uso de microcontroladores y la implementa-cin de proyectos. El Captulo 11 ensea a programar aplicaciones en Ensamblador de una for-ma clara y progresiva y el 12 ofrece una coleccin de prcticas reales de carcter didctico queson muy asequibles.

    Como complemento a los 12 captulos, en la parte final del libro, existen varios apndicesmuy tiles. El A es una gua rpida del PIC 16X84. El B es una gua para el usuario del simu-lador software SIM2000 que se incluye en el CD del libro y que ha sido cedido por sus autores,Pablo Martnez y Francisco Jos Hernndez, que lo desarrollaron en la Universidad de Carta-gena bajo la direccin del profesor Manuel Snchez. El Apndice C explica las caractersticasy el funcionamiento del sistema de desarrollo Micro'PIC Trainer. El E muestra el contenidodel CD que acompaa al libro y el F propone una coleccin de proyectos clsicos con elPIC 16F84 para implementar con componentes muy comunes y econmicos. Finalmente hayuna seccin de Bibliografa y de direcciones interesantes para trabajar con PIC y un ndiceAlfabtico.

    Gran parte de la informacin ofrecida en el libro se ha obtenido de las documentacionestcnicas de Microchip (www.microchip.com), de Parallax (www.parallaxinc.com) y de In-geniera de Microsistemas Programados, S. L. (www.microcontroladores.com), a quienesagradecemos su colaboracin.

  • 1.1. QU ES UN MICROCONTROLADOR?

    Es un circuito integrado programable que contiene todos los componentes de un computador.Se emplea para controlar el funcionamiento de una tarea determinada y, debido a su reducidotamao, suele ir incorporado en el propio dispositivo al que gobierna. Esta ltima caractersticaes la que le confiere la denominacin de controlador incrustado (embedded controller).

    El microcontrolador es un computador dedicado. En su memoria slo reside un progra-ma destinado a gobernar una aplicacin determinada; sus lneas de entrada/salida soportanel conexionado de los sensores y actuadores del dispositivo a controlar, y todos los recursoscomplementarios disponibles tienen como nica finalidad atender sus requerimientos. Unavez programado y configurado el microcontrolador solamente sirve para gobernar la tareaasignada.

    Un microcontrolador es un computador completo, aunque de limitadas prestaciones, que estcontenido en el chip de un circuito integrado y se destina a gobernar una sola tarea.

    El nmero de productos que funcionan en base a uno o varios microcontroladores aumen-ta de forma exponencial. No es aventurado pronosticar que en el siglo xxi habr pocos elemen-tos que carezcan de microcontrolador. En esta lnea de prospeccin del futuro, la empresaDataquest calcula que en cada hogar americano existirn varios centenares de microcontro-ladores en los comienzos del tercer milenio.

    La industria Informtica acapara gran parte de los microcontroladores que se fabrican.Casi todos los perifricos del computador, desde el ratn o el teclado hasta la impresora, sonregulados por el programa de un microcontrolador (vase Figura 1.1).

    Los electrodomsticos de lnea blanca (lavadoras, hornos, lavavajillas, etc.) y de lneamarrn (televisores, vdeos, aparatos musicales, etc.) incorporan numerosos microcontrola-dores. Igualmente, los sistemas de supervisin, vigilancia y alarma en los edificios utilizanestos chips. Tambin se emplean para optimizar el rendimiento de ascensores, calefaccin, aireacondicionado, alarmas de incendio, robo, etc.

    1

  • 2

    MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

    Las comunicaciones y sus sistemas de transferencia de informacin utilizan profusamenteestos pequeos computadores incorporndolos en los grandes automatismos y en los modernostelfonos.

    La instrumentacin y la electromedicina son dos campos idneos para la implantacin deestos circuitos integrados. Una importante industria consumidora de microcontroladores es la

  • MICROCONTROLADORES PROGRAMABLES: LA SOLUCIN EST EN UN CHIP

    3

    de automocin, que los aplica en el control de aspectos tan populares como la climatizacin,la seguridad y los frenos ABS.

    Las comunicaciones y los productos de consumo general absorben ms de la mitad de la pro-duccin de microcontroladores. El resto se distribuye entre el sector de la automocin, los com-putadores y la industria.

    1.1.1.

    Diferencia entre microprocesador y microcontrolador

    El microprocesador es un circuito integrado que contiene la Unidad Central de Proceso (UCP),tambin llamada procesador, de un computador. La UCP est formada por la Unidad de Con-trol, que interpreta las instrucciones, y el Camino de Datos, que las ejecuta.

    Las patitas de un microprocesador sacan al exterior las lneas de sus buses de direcciones,datos y control, para permitir conectarle con la Memoria y los Mdulos de E/S y configurar uncomputador implementado por varios circuitos integrados. Se dice que un microprocesador esun sistema abierto porque su configuracin es variable de acuerdo con la aplicacin a la quese destine (Figura 1.3).

    Un microprocesador es un sistema abierto con el que puede construirse un computador conl as caractersticas que se desee, acoplndole los mdulos necesarios.Un microcontrolador es un sistema cerrado que contiene un computador completo y de pres-taciones limitadas que no se pueden modificar.

    Figura 1.3.

    Estructura de un sistema abierto basado en un microprocesador. La disponibilidad de los busesen el exterior- permite que se configure a la medida de la aplicacin.

  • Figura 1.4.

    El microcontrolador en un sistema cerrado. Todas las partes del computador estn contenidasen su interior y slo salen al exterior las lneas que gobiernan los perifricos.

    Si slo se dispusiese de un modelo de microcontrolador, ste debera tener muy potencia-dos todos sus recursos para poderse adaptar a las exigencias de las diferentes aplicaciones.Esta potenciacin supondra en muchos casos un despilfarro. En la prctica cada fabricante demicrocontroladores oferta un elevado nmero de modelos diferentes, desde los ms sencilloshasta los ms poderosos. Es posible seleccionar la capacidad de las memorias, el nmerode lneas de E/S, la cantidad y potencia de los elementos auxilares, la velocidad de funciona-miento, etc. Por todo ello, un aspecto muy destacado del diseo es la seleccin del microcon-trolador a utilizar.

    EJEMPLO

    Un horno microondas se gobierna mediante un microcontrolador en el que se almacena elprograma de control de 382 instrucciones, cada una de las cuales ocupa una palabra de lamemoria de cdigo. Para soportar el teclado y la pantalla LCD se necesitan 12 lneas de EIS.

    Cul de los tres siguientes microcontroladores ser el ms recomendable utilizar?

    SOLUCIN

    Pat - a esta aplicacin es suficiente el PIC16F83 y su empleo supone una importante eco-noma.

    4 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

  • MICROCONTROLADORES PROGRAMABLES: LA SOLUCIN EST EN UN CHIP

    5

    1.2. ARQUITECTURA INTERNA

    Un microcontrolador posee todos los componentes de un computador, pero con unas caracte-rsticas fijas que no pueden alterarse.

    Las partes principales de un microcontrolador son:

    A continuacin se pasa revista a las caractersticas ms representativas de cada uno de loscomponentes del microcontrolador.

    1.2.1.

    El procesador

    La necesidad de conseguir elevados rendimientos en el procesamiento de las instrucciones hadesembocado en el empleo generalizado de procesadores de arquitectura Harvard frente alos tradicionales que seguan la arquitectura de von Neumann. Esta ltima se caracterizabaporque la UCP (Unidad Central de Proceso) se conectaba con una memoria nica, donde co-existan datos e instrucciones, a travs de un sistema de buses (vase Figura 1.5).

    Figura 1.5.

    En la arquitectura de von Neumann la UCP se comunicaba a travs de un sistema de busescon la Memoria, donde se guardaban las instrucciones y los datos.

    1. Procesador2. Memoria no voltil para contener el programa3. Memoria de lectura y escritura para guardar los datos4. Lneas de EIS para los controladores de perifricos:

    a) Comunicacin paralelob) Comunicacin seriec) Diversas puertas de comunicacin (bus l2C, USB, etc.)

    5. Recursos auxiliares:a) Circuito de relojb) Temporizadoresc) Perro Guardn (watchdog)d) Conversores AD y DAe) Comparadores analgicosf) Proteccin ante fallos de la alimentacin

    g) Estado de reposo o de bajo consumo

  • 6

    MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

    En la arquitectura Harvard son independientes la memoria de instrucciones y la memoriade datos y cada una dispone de su propio sistema de buses para el acceso. Esta dualidad,adems de propiciar el paralelismo, permite la adecuacin del tamao de las palabras y losbuses a los requerimientos especficos de las instrucciones y de los datos. Tambin la capaci-dad de cada memoria es diferente (Figura 1.6).

    El procesador de los modernos microcontroladores responde a la arquitectura RISC (Com-putadores de Juego de Instrucciones Reducido), que se identifica por poseer un repertorio deinstrucciones mquina pequeo y simple, de forma que la mayor parte de las instrucciones seejecuta en un ciclo de instruccin.

    Otra aportacin frecuente que aumenta el rendimiento del computador es el fomento delparalelismo implcito, que consiste en la segmentacin del procesador (pipe-line), descompo-nindolo en etapas para poder procesar una instruccin diferente en cada una de ellas y traba-jar con varias a la vez.

    1.2.2.

    Memoria de programa

    El microcontrolador est diseado para que en su memoria de programa se almacenen todas lasinstrucciones del programa de control. No hay posibilidad de utilizar memorias externas deampliacin.

    Como el programa a ejecutar siempre es el mismo, debe estar grabado de forma perma-nente. Los tipos de memoria adecuados para soportar esta funcin admiten cinco versionesdiferentes:

    El alto rendimiento y elevada velocidad que alcanzan los modernos procesadores, como el queposeen los microcontroladores PIC, se debe a la conjuncin de tres tcnicas:- Arquitectura Harvard- Computador tipo RISC- Segmentacin

  • MICROCONTROLADORES PROGRAMABLES: LA SOLUCIN EST EN UN CHIP

    7

    1 . ROM con mscara

    En este tipo de memoria el programa se graba en el chip durante el proceso de su fabricacinmediante el uso de mscaras. Los altos costes de diseo e instrumental slo aconsejan usareste tipo de memoria cuando se precisan series muy grandes.

    2. EPROM

    La grabacin de esta memoria se realiza mediante un dispositivo fsico gobernado desde uncomputador personal, que recibe el nombre de grabador. En la superficie de la cpsula delmicrocontrolador existe una ventana de cristal por la que se puede someter al chip de la memoriaa rayos ultravioletas para producir su borrado y emplearla nuevamente. Es interesante la me-moria EPROM en la fase de diseo y depuracin de los programas, pero su coste unitario eselevado.

    3.' OTP (Programable una vez)Este modelo de memoria slo se puede grabar una vez por parte del usuario, utilizando elmismo procedimiento que con la memoria EPROM. Posteriormente no se puede borrar. Subajo precio y la sencillez de la grabacin aconsejan este tipo de memoria para prototipos finalesy series de produccin cortas.

    4. EEPROM

    La grabacin es similar a las memorias OTP y EPROM, pero el borrado es mucho ms senci-llo al poderse efectuar de la misma forma que el grabado, o sea, elctricamente. Sobre elmismo zcalo del grabador puede ser programada y borrada tantas veces como se quiera, locual la hace ideal en la enseanza y en la creacin de nuevos proyectos. El fabuloso PIC16C84dispone de 1 K palabras de memoria EEPROM para contener instrucciones y tambin tienealgunos bytes de memoria de datos de este tipo para evitar que cuando se retira la alimentacinse pierda informacin.

    Aunque se garantiza 1.000.000 de ciclos de escritura/borrado en una EEPROM, todava sutecnologa de fabricacin tiene obstculos para alcanzar capacidades importantes y el tiempode escritura de las mismas es relativamente grande y con elevado consumo de energa.

    5. FLASH

    Se trata de una memoria no voltil, de bajo consumo, que se puede escribir y borrar encircuito al igual que las EEPROM, pero suelen disponer de mayor capacidad que estas lti-mas. El borrado slo es posible con bloques completos y no se puede realizar sobre posicionesconcretas. En las FLASH se garantizan 1.000 ciclos de escritura-borrado.

    Son muy recomendables en aplicaciones en las que sea necesario modificar el programa alo largo de la vida del producto, como consecuencia del desgaste o cambios de piezas, comosucede con los vehculos.

    Por sus mejores prestaciones est sustituyendo a la memoria EEPROM para contener ins-trucciones. De esta forma Microchip comercializa dos microcontroladores prcticamente igua-les, que slo se diferencian en que la memoria de programa de uno de ellos es tipo EEPROM y

  • 8

    MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

    la del otro tipo Flash. Se trata del PIC 16C84 y el PIC 16F84, respectivamente. En la actualidadMicrochip tiene abierta una lnea de PIC con memoria Flash cada vez ms extensa y utilizada.

    1.2.3.

    Memoria de datos

    Los datos que manejan los programas varan continuamente, y esto exige que la memoria queles contiene debe ser de lectura y escritura, por lo que la memoria RAM esttica (SRAM) es lams adecuada, aunque sea voltil.

    Hay microcontroladores que tambin disponen como memoria de datos una de lectura yescritura no voltil, del tipo EEPROM. De esta forma, un corte en el suministro de la alimen-tacin no ocasiona la prdida de la informacin, que est disponible al reiniciarse el programa.El PIC16C84, el PIC16F83 y el PIC16F84 disponen de 64 bytes de memoria EEPROM paracontener datos.

    La memoria tipo EEPROM y la tipo Flash pueden escribirse y borrarse elctricamente. Sin nece-sidad de sacar el circuito integrado del zcalo del grabador pueden ser escritas y borradas nu-merosas veces.

    1.2.4.

    Lneas de E/S para los controladores de perifricos

    A excepcin de dos patitas destinadas a recibir la alimentacin, otras dos para el cristal decuarzo, que regula la frecuencia de trabajo, y una ms para provocar el Reset, las restantespatitas de un microcontrolador sirven para soportar su comunicacin con los perifricos ex-ternos que controla.

    Las lneas de E/S que se adaptan con los perifricos manejan informacin en paralelo y seagrupan en conjuntos de ocho, que reciben el nombre de Puertas. Hay modelos con lneas quesoportan la comunicacin en serie; otros disponen de conjuntos de lneas que implementanpuertas de comunicacin para diversos protocolos, como el I2C, el USB, etc.

    1.2.5.

    Recursos auxiliares

    Segn las aplicaciones a las que orienta el fabricante cada modelo de microcontrolador, in-corpora una diversidad de complementos que refuerzan la potencia y la flexibilidad del dispo-sitivo. Entre los recursos ms comunes se citan a los siguientes:

    a) Circuito de reloj, encargado de generar los impulsos que sincronizan el funcionamien-to de todo el sistema.

    b) Temporizadores, orientados a controlar tiempos.c) Perro Guardin (watchdog), destinado a provocar una reinicializacin cuando el

    programa queda bloqueado.d) Conversores AD y DA, para poder recibir y enviar seales analgicas.e) Comparadores analgicos, para verificar el valor de una seal analgica.f) Sistema de proteccin ante fallos de la alimentacin.

  • MICROCONTROLADORES PROGRAMABLES: LA SOLUCIN EST EN UN CHIP

    9

    g) Estado de Reposo, en el que el sistema queda congelado y el consumo de energa sereduce al mnimo.

    1.3. PROGRAMACIN DE MICROCONTROLADORES

    La utilizacin de los lenguajes ms cercanos a la mquina (de bajo nivel) representan un con-siderable ahorro de cdigo en la confeccin de los programas, lo que es muy importante dadala estricta limitacin de la capacidad de la memoria de instrucciones. Los programas bien rea-lizados en lenguaje Ensamblador optimizan el tamao de la memoria que ocupan y su ejecu-cin es muy rpida.

    Los lenguajes de alto nivel ms empleados con microcontroladores son el C y el BASIC, delos que existen varias empresas que comercializan versiones de compiladores e intrpretespara diversas familias de microcontroladores. En el caso de los PIC es muy competitivo e interesante el compilador de C PCM de la empresa CCS y el intrprete PBASIC de PARA-LLAX.

    El lenguaje que utilizan los profesionales para la programacin de las microcontroladores es elEnsamblador, que es el ms cercano a la mquina. Tambin son frecuentes los programas en len-guaje C y en BASIC, siendo este ltimo el ms fcil de aprender.

    1.4. INSTRUMENTAL DE TRABAJO

    Siempre que se disea con circuitos integrados programables se precisan herramientas para lapuesta a punto del hardware y del software.

    Con referencia al software, adems de los compiladores o intrpretes de los lenguajes usa-dos, es muy interesante disponer de simuladores software, que consisten en programas quesimulan la ejecucin de instrucciones representando el comportamiento interno del procesadory el estado de las lneas de E/S. Como se simula por software al procesador, el comporta-miento no es idntico aunque proporciona una aproximacin aceptable, especialmente cuan-do no es esencial el trabajo en tiempo real.

    Microchip pone libremente a disposicin de sus usuarios, a travs de Internet (http://www.microchip.com), ensambladores como el MPASM y simuladores como el MPSIM.Ingeniera de Microsistemas Programados, S. L., comercializa un simulador muy completopara el PIC16X84 y varios compiladores e intrpretes de lenguaje C y BASIC (http://www.mi-crocontroladores.com).

    Respecto a las herramientas hardware, una indispensable es el grabador, encargado de es-cribir el programa en la memoria del microcontrolador. Existen grabadores muy completos,capaces de trabajar con muchos modelos de diferentes familias, pero su elevado precio los alejade los usuarios personales. Para estos ltimos existen bastantes versiones de sencillos grabado-res, especficos para ciertos modelos de microcontroladores, que gobernados desde un compu-tador personal se ofrecen por un precio ligeramente superior al de un libro (vase Figura 1.7).

    Los fabricantes de los microcontroladores disponen de numerosas herramientas apropiadaspara sus productos (vase Figura 1.8).

  • 10

    MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

  • MICROCONTROLADORES PROGRAMABLES: LA SOLUCIN EST EN UN CHIP

    1 1

    En la puesta a punto de proyectos industriales una potentsima herramienta es el emuladoren circuito, que consiste en un complejo dispositivo fsico que, controlado por un programadesde un computador personal, dispone de una cabeza con las mismas patitas que el micro-controlador que se trata de emular. La cabeza se introduce en el zcalo donde ir el microcon-trolador con el programa definitivo en la placa de prototipo. El emulador en circuito hace fun-cionar al sistema como si hubiese un microcontrolador real, pero presentando en la pantalla delcomputador toda la informacin necesaria para conocer el desarrollo del programa y la actua-cin de los perifricos. Los resultados que as se obtienen son idnticos a los del producto fi-nal, puesto que la ejecucin se realiza en tiempo real, a diferencia de los simuladores softwa-re (Figura 1.9).

    Finalmentc, reciben el nombre de sistemas de desarrollo equipos que mediante una com-binacin de hardware y de software consiguen realizar la mayora de las fases que exige undiseo basado en microcontrolador. Como la mayora de las herramientas, tambin sta segobierna por un programa desde un computador personal. Mantienen una buena comunicaciny gestin de la edicin de programas y su compilacin o ensamblado. Tras la depuracin delsoftware y la obtencin del cdigo binario ejecutable disponen de un grabador que escribe elprograma obtenido sobre la memoria (le instrucciones. Tambin puede verificar lo escrito en lamemoria o incluso borrarlo, cuando es del tipo EEPROM o FLASH.

  • 12

    MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

    Una vez grabado el microcontrolador sus patitas quedan conectadas a travs de junipercon los perifricos que hay que controlar y se procede a la ejecucin en tiempo real delprograma. La inclusin de los perifricos clarifica el resultado final. Mediante el programade comunicacin con el PC se puede conocer en todo momento el estado de todos los ele-mentos del computador. Por su sencillez, potencia y economa destacamos el sistema dedesarrollo MICRO'PIC TRAINER (Figura 1.10) de Ingeniera de Microsistemas Pro-gramados, S. L., que incorpora las siguientes prestaciones:

    - Grabador de PIC.- Hardware y software de adaptacin a PC.-Programa de comunicaciones.-Tarjeta que incluye la mayora de los perifricos tpicos: interruptores, leds, display de siete

    segmentos, potencimetros para seales analgicas y pantalla LCD.-Tutorial con fases de montaje y funcionamiento y ejercicios de experimentacin y diseo de

    proyectos

    Para facilitar el montaje de los prototipos se comercializan diversas tarjetas de circuitoi mpreso predefinidas. En ellas existe una zona comn donde se aloja el zcalo del micro-controlador y su circuitera auxiliar (reloj, pulsador de Reset, regulacin de voltaje, cte.),Hay otra zona libre para situar los perifricos propios de la aplicacin, que pueden conec-

  • MICROCONTROLADORES PROGRAMABLES: LA SOLUCIN EST EN UN CHIP

    13

    tarse fcilmente con todas las lneas de E/S presentes en determinadas puntos de la tarjeta(vase Figura I.11).

  • 2.1.

    LA ELECCINEntre casi un centenar de fabricantes de microcontroladores que existen en el mundo es muydifcil seleccionar el mejor. En realidad no existe, porque en cada aplicacin son sus carac-tersticas especficas las que determinan el ms conveniente.

    Los PIC tienen ngel y una gran aceptacin en la comunidad de tcnicos y aficionadosque trabajan con microcontroladores.

    Cunto durar este xito? Hasta que salga al mercado otro producto que les robe esaimagen.

    Cul es la razn de la excelente acogida? Hay detalles que nos vuelven locos a los profe-sionales de la Microelectrnica y Microinformtica; citamos los ms importantes a nuestrojuicio.

    15

    Sencillez de manejo Buena isftormacin

    , Precio Buen prbmedio de parmetros: velocidad, consumo, tamao, alimentacin, ~go compacto,

    etctera Herr~s de deaarrOUo tkilel y baratas Diseo rpido+ Disponibilidad inmediata Compatib+lidad dei software en todos los modelos de la misma gama

    Los PIC deslumbran a quienes los usamos porque; Su coste es comparativamente inferior al de los competidores Poseen una elevada velocidad de funcionamiento Tienen un juego reducido de instrucciones; 35 en la gama media Los programas son cornpactos Bajo consumo:unido a un amplio rango de voltajes de alimentacin ,

  • 16MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

    Muchas herramientas software se pueden recoger libremente a travs de Internet desdeMicrochip (http://www.microchip.com)

    Existe una gran variedad de herramientas hardware que permiten grabar, depurar; borrary comprobar el comportamiento de los PIC

    La gran variedad de modelos de PIC permite elegir el que mejor responde a los requeri-mientos de la aplicacin

    Lo cierto es que en la primera dcada del siglo XXI y en su corta vida, los PIC ocupan las po-siciones de cabeza en el ranking mundial, compitiendo codo a codo con gigantes como Intel yMotorola. En 1990 ocupaba el puesto vigsimo y actualmente son ms de 100 millones de PICl os que vende Microchip cada ao, lo que le ha alzado al segundo puesto del ranking mundial.

    Dentro de los diferentes tipos de microcontroladores los hay que procesan datos de 4, 8,1 6 y 32 bits, sin embargo, el ms representativo y popular es el de 8 bits, al que pertenecen losPIC, porque resulta el ms flexible y eficaz para la mayora de los diseos tpicos (Figura 2. l).

    2.2.

    LA FAMILIA DE LOS PIC

    Una de las labores ms importantes del ingeniero de diseo es la eleccin del modelo de mi- crocontrolador que mejor satisfaga las necesidades del proyecto con el mnimo presupuesto.

  • MICROCONTROLADORES DE 8 BITS: LOS PIC

    17

    En el 2003 el fabricante de los PIC dispone de ms de un centenar de versiones diferentesy cada ao aumenta considerablemente su lista. (Ver en el Anexo D la familia completa demicrocontroladores PIC).

    Microchip dispone de cuatro gamas de microcontroladores de 8 bits para adaptarse a lasnecesidades de la mayora de los clientes potenciales.

    2.2.1.

    Gama baja o bsica: PIC16C5X con instrucciones de 12 bitsSe trata de una serie de PIC de recursos limitados, pero con una de las mejores relacionescoste/prestaciones. Sus versiones estn encapsuladas con I8 y 28 patitas y pueden alimentarsea partir de una tensin de 2,5 V lo que les hace ideales en las aplicaciones que funcionan conpilas. Tienen un repertorio de 33 instrucciones cuyo formato consta de I2 bits. No admitenningn tipo de interrupcin y la pila slo dispone de dos niveles.

    EJEMPLO

    Cuntas patitas destina un PICI6C54 (Figura 2.2) para lneas de E/S, sabiendo que se lasdenomina RAx y RBx?

    SOLUCIN

    2.2.2.

    Gama media: PIC16CXXX con instrucciones de 14 bits

    Es la gama ms variada y completa de los PIC. Abarca modelos con encapsulado desde 18patitas hasta 68, cubriendo varias opciones que integran abundantes perifricos. Dentro deesta gama se halla el fabuloso PIC 16F84.

    12 patitas.

  • 18

    MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

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

    La gama media puede clasificarse en las siguientes subfamilias:

    a)

    Gama media estndar (PIC16C55X);b) Gama media con comparador analgico (PIC16C62X/64X/66X);c)

    Gama media con mdulo de captura (CCP), modulacin de anchura de impulsos (PWM) y puer-ta serie (PIC16C6X);

    d) Gama media con CAD de 8 bits (PIC16C7X);e)

    Gama media con CAD de precisin (PIC14000);f)

    Gama media con memoria Flash y EEPROM (PIC16F87X y PIC16X8X);Gama media con driver LCD (PIC16C92X).

    Encuadrado en la gama media tambin se halla la versin PIC14C000, que soporta el dise-o de controladores inteligentes para cargadores de bateras, pilas pequeas, fuentes de ali-mentacin ininterrumpidas y cualquier sistema de adquisicin y procesamiento de sealesque requiera gestin de la energa de alimentacin. Los PIC14C000 admiten cualquier tecno-loga de las bateras como Li Ion, NiMH, NiCd, Pb y Zinc.

    EJEMPLO

    Segn la Figura 2.5, la nomenclatura de la subfamilia 16x8x diferencia a sus modelos por laletra intermedia (C, F o CR). Qu significado tienen dichas letras?

  • MICROCONTROLADORES DE 8 BITS: LOS PIC

    1 9

    SOLUCINC:

    Significa que la memoria de instrucciones es EEPROM.F:

    Indica que la memoria de instrucciones es tipo Flash.CR: La memoria de instrucciones es ROM y se graba en fbrica. Slo se usa para grandes

    series.

    En la Figura 2.4 se ofrece el diagrama de conexiones del PIC 16C74 de 40 patitas, que es unparadigma de la variedad de recursos que pueden incluir los PIC de esta gama.

    2.2.3.

    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 sis-tema de gestin de interrupciones vectorizadas muy potente. Tambin incluyen variados con-troladores de perifricos, puertas de comunicacin serie y paralelo con elementos externos yun multiplicador hardware de gran velocidad.

    Quizs la caracterstica ms destacable de los componentes de esta gama es su arquitecturaabierta, que consiste en la posibilidad de ampliacin del microcontrolador con elementos ex-ternos. 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 filosofa de cons-truccin del sistema es la que se empleaba en los microprocesadores y no suele ser una prc-tica habitual cuando se emplean microcontroladores. En la Figura 2.6 se muestran las caracte-

  • 20

    MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

    rsticas ms relevantes de algunos modelos de esta gama, que slo se utilizan en aplicacionesmuy especiales con grandes requerimientos.

    EJEMPLO

    Localizar en la tabla de la Figura 2.6 el PIC de la gama alta que tenga mayores capacidadesen sus dos memorias.

    SOLUCIN

    El PIC17C756 con 16 K palabras de 16 bits cada una en la memoria de instrucciones y 902bytes en la memoria de datos.

    2.2.4.

    Gama mejorada: PIC18C(F)XXX con instrucciones de 16 bitsEn los inicios del tercer milenio de nuestra era Microchip present la gama mejorada de losmicrocontroladores PIC con la finalidad de soportar las aplicaciones avanzadas en las reasde automocin, comunicaciones, ofimtica y control industrial. Sus modelos destacaron por sualta velocidad (40 Mhz) y su gran rendimiento (10 MIPS a 10 Mhz).

    Entre las aportaciones ms representativas de esta serie de modelos que crece cada ao,destacan.

    a) Un espacio de direccionamiento para la memoria de programa que permite alcanzar los2 MB, y 4 KB para la memoria de datos.

    b) Inclusin de la tecnologa FLASH para la memoria de cdigo.c)

    Potente juego de 77 instrucciones de 16 bits cada una. Permiten realizar una multipli-cacin 8 x 8 en un ciclo de instruccin, mover informacin entre las memorias y mo-dificar el valor de un bit en un registro o en una lnea de E/S.

    d) Orientacin a la programacin en lenguaje C con la incorporacin de compiladoresmuy eficientes para este lenguaje.

    e)

    Nuevas herramientas para la emulacin.

  • MICROCONTROLADORES DE 8 BITS: LOS PIC

    21

    Inicialmente aparecieron cuatro modelos (PIC18C242/252/442/452) con 28 y 40 patitasque tenan hasta 16 KB de memoria de programa y hasta 1.536 bytes de RAM, ambas am-pliables. Podan funcionar a 40 MHz, con 16 causas de interrupcin, 4 temporizadores, 2 m-dulos CCP, Conversor A/D de 5 u 8 canales, y comunicacin serie y paralelo. Luego apare-cieron los PIC18FXXX que incorporaron la memoria FLASH para contener el cdigo. Entreellos destaca el modelo PIC18F720 con 128 KB de memoria FLASH y 3.840 bytes de RAM,estando encapsulado con 80 patitas. En la tabla de la Figura 2.7 se ofrecen las principales ca-ractersticas de los primeros modelos de la gama mejorada y en la tabla de la Figura 2.8 losms potentes.

    2.2.5.

    Los enanos de 8 patitas

    Se trata de un grupo de PIC (PIC12C(F)XXX) que ha acaparado la atencin del mercado. Suprincipal caracterstica es su reducido tamao, al disponer un encapsulado de 8 patitas. Se ali-mentan con un voltaje de corriente continua comprendido entre 2,5 V y 5,5 V y consumenmenos de 2 mA cuando trabajan a 5 V y 4 MHz. El formato de sus instrucciones puede ser de

    Aunque los PIC enanos slo tienen 8 patitas, pueden destinar hasta 6 como lneas de E/S paralos perifricos porque disponen de un oscilador interno R-C.

  • 22

    MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

    1 2 o de 14 bits y su repertorio es de 33 o 35 instrucciones, segn pertenezcan a la gama baja omedia, respectivamente. En la Figura 2.8 se muestra el diagrama de conexionado de uno deestos PIC.

    En la Figura 2.9 se presentan las principales caractersticas de algunos modelos de esta sub-familia, que el fabricante tiene la intencin de potenciar en un futuro prximo. Los modelos12C5xx pertenecen a la gama baja, siendo el tamao de las instrucciones de 12 bits; mientrasque los 12C6xx son de la gama media y sus instrucciones tienen 14 bits. Los modelos 12F6xxposeen memoria FLASH para el programa y EEPRONI para los datos.

    EJEMPLO

    Segn el esquema de la Figura 2.2, para funcionar un PIC12C508 precisa una tensin de ali-mentacin comprendida entre 2,5 y 5,5 V, que se aplica a las patitas VDD y Vss. Cuntas pati-tas quedan disponibles, como mximo, para trabajar como lneas de EIS?

    SOLUCIN

    Slo 6, al disponer la cpsula de 8 patitas.

  • MICROCONTROLADORES DE 8 BITS: LOS PIC

    2.3. DESCRIPCIN GENERAL Y APLICACIONES

    La diversidad de los modelos de PIC tiene una finalidad: poder seleccionar el ms adecuadopara cada aplicacin. Por este motivo conviene tener un conocimiento completo y actualizadode cada gama.

    En cuanto a la serie enana, la familia PIC 12C5XX, se trata de un conjunto de microcontro-ladores CMOS encapsulados con 8 patitas. Tienen un precio muy bajo y resultan altamentecompetitivos.

    Todos los PIC enanos tienen un formato nico para sus instrucciones, aunque hay mode-los con 12 bits, otros con 14 y otros con 16. En este grupo los ms usados son los de 14 bits,que proporcionan una extraordinaria compactacin en el cdigo de los programas, pudindo-se cifrar en el doble con respecto a otros similares.

    La arquitectura RISC, tipo Harvard, unida a la segmentacin del procesador, consigue queel ciclo de ejecucin de una instruccin sea de 1 microsegundo cuando funciona a una fre-cuencia de 4 MHz. Todas las instrucciones duran este tiempo menos las de salto, que duran eldoble.

    Los PIC enanos son muy apreciados en las aplicaciones de control de personal, en sistemas deseguridad y en dispositivos de bajo consumo que gestionan receptores y transmisores de sea-l es. Su pequeo tamao los hace ideales en muchos proyectos donde esta cualidad es funda-mental.

    Dentro de la gama media los PIC 14000 resultan muy interesantes por los recursos queincorporan: conversor A/D de media a alta resolucin (de 10 a 16 bits), sensor interno detemperatura, comunicacin serie I2C y muy bajo consumo. Son aptos para el control de carga-dores de bateras, monitores del estado de pilas y bateras, fuentes de alimentacin ininte-rrumpibles, gestin del consumo de la energa de alimentacin y sistemas de adquisicin dedatos, especialmente de temperatura.

    La gama baja, representada por los PIC16C5X, tiene proyeccin sobre los dispositivos dealta velocidad usados en la industria de la automocin, el control de motores y los recep-tores/transmisores y procesadores de bajo consumo encargados de la gestin de comunica-ciones. Dentro de esta gama se encuentra la subfamilia PIC 16C55X, que incorpora recursospropios de la gama media. As, dispone de Pila de 8 niveles y mltiples fuentes de interrup-cin.

    Los microcontroladores PIC de la gama baja consiguen superar a sus competidores en velocidad,a los que aventajan en un factor cercano a 4; y tambin en compresin del cdigo, que llega a serdel doble.

    En la gama media hay una subfamilia, PIC16C62X, con recursos muy especiales, peromanteniendo el bajo precio y el consumo reducido, que es muy recomendable en aplicacionesrelativas a la gestin de cargadores de bateras, control de sensores remotos con bajo consumo,etctera.

    23

  • 24

    MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

    Con ms de diez versiones diferentes, la subfamilia PIC16C6X de la gama media se ca-racteriza por la incorporacin de numerosos recursos (varios temporizadores, mdulos de cap-tura/comparacin, puerta serie SPI e I 2C, puerta paralela PSP, etc.). Mejorando estos mode-los, la serie PIC16C7X es una muestra de las posibilidades del procesador RISC funcionandoa 20 MHz, con un ciclo de instruccin de 200 ns. Los componentes de esta serie son muy apre-ciados en los sistemas de alarma y seguridad, as como en el control remoto de sensores enautomocin.

    El PIC16x8x y sus variantes pertenecen a la gama media y su novedad es la inclusin de memo-ria EEPROM o Flash para contener el programa.

    La memoria EEPROM, de igual forma que la FLASH, puede grabarse y borrarse elctri-camente, sin someterla a rayos ultravioleta como sucede con el borrado de las EPROM conventana. Adems, se puede realizar la grabacin y el borrado en serie, lo cual posibilita lagrabacin de un programa, su depuracin y su borrado tantas veces como se desee y mante-niendo insertado el PIC en el zcalo de la aplicacin. La memoria EEPROM admite hasta1.000.000 de ciclos de escritura/borrado y almacena la informacin durante ms de 40 aos.La memoria FLASH tiene un valor tpico de 1.000 ciclos de escritura/borrado, pero aventajatcnicamente en varios aspectos a la EEPROM. Destacan en la gama media los PIC 16F87Xcon memoria FLASH de gran capacidad y numerosos recursos.

    El hecho de poder emplear el mismo dispositivo cuando se realizan numerosos diseos ocuando se prueban muchos programas en la fase de aprendizaje resulta muy prctico y econ-mico. Aplicaciones tpicas de estos microcontroladores son el control de puertas de garaje, ins-trumentacin, inmovilizadores de vehculos, tarjetas codificadas, pequeos sensores, etc. Lagrabacin de los PIC16X8X en el propio circuito les hace recomendables para el almacena-miento de datos de calibracin y para la modificacin del programa al variar las condiciones

  • MICROCONTROLADORES DE 8 BITS: LOS PIC 25

    del entorno; por ejemplo, al cambiar una pieza de un automvil, el programa de control delmotor se modifica para su adecuacin.

    La serie PIC16C9XX tiene como novedad la inclusin de un controlador programable deLCD, que gestiona ntegramente cualquier pantalla de cristal lquido.

    Dentro de la gama alta, la subfamilia PIC17C4X, con 58 instrucciones de 16 bits, tardaen ejecutar cada una 121 nanosegundos cuando funciona a 33 MHz (las de salto tardan eldoble). El ncleo del procesador est mejorado respecto al de la gama media y la Pila dispo-ne de 16 niveles. Tambin se han aumentado las fuentes de interrupcin y se ha incorporadoun multiplicador hardware de 8 x 8 bits en un ciclo, para aplicaciones que exijan un clculomatemtico intensivo. Aplicaciones industriales que requieran alta velocidad y clculos com-plejos, instrumentacin y telecomunicaciones, son las ideales para los componentes de lagama alta.

    El PIC17C752 y el PIC17C1756 son los modelos ms representativos de la gama alta yestn encapsulados con 64 y 68 patitas respectivamente. Tienen una elevada capacidad dememoria que alcanza los 8 K x 16 y 16 K x 16 en el rea reservada a las instrucciones y 454y 902 bytes en la reservada a los datos, respectivamente. Poseen 12 canales para un conversorAD de 10 bits, 4 canales para un mdulo de captura de 16 bits, 2 USART, bus 12 C, ele.

  • 26

    MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

    A las puertas del siglo xxi, Microchip ha obtenido un importante xito en el mercado mun-dial con los microcontroladores RISC FLASH. Se trata de la serie PIC16F87X (3, 4, 5, 6 y 7).Son unos modelos mucho ms potentes que el PIC16F84, pero que mantienen sus ventajas enla grabacin y borrado elctrico.

    Es una serie que encaja dentro de la gama media y que alcanza una memoria de cdigode hasta 8K palabras de 14 bits en memoria FLASH. Soporta hasta 386 x 8 bytes de RAM y256 x 8 bytes de memoria de datos EEPROM. Pueden programarse slo con +5 VDC y existeacceso a lectura y escritura de la memoria de programa.

    Estos potentes microcontroladores disponen de hasta tres Timer o temporizadores, dos m-dulos de Captura, Comparacin y PWM, un Convertidor Analgico/Digital de 10 bits, Canalde comunicaciones sncrono SSP con modo I2C y SPI, canal USART/SCI, puerto paralelo es-clavo asncrono de 8 bits y deteccin de fallo de alimentacin (BOR).

    Los lectores que completen con xito el primer escaln en el manejo del PIC16F84, deberntener muy en cuenta esta potentsima familia de PIC con memoria FLASH para superar sus di-seos. A ella se destina gran parte del segundo volumen de esta obra.

    Desde el 2000 Microchip se esfuerza por potenciar y ampliar los PIC de la gama mejora-da destinados a aplicaciones muy avanzadas y orientadas a su programacin en lenguaje C.

  • 3.1. ACERCANDO LA TECNOLOGANo suele ser habitual coincidir los planteamientos de dos generaciones, ni la opinin de losprofesionales que se dedican a aplicar la tecnologa y los que se encargan de ensearla. Sin em-bargo, en este tema los autores coinciden plenamente. Los mdulos BASIC Stamp de Parallaxconstituyen el camino ms sencillo y asequible para disear sistemas basados en microcon-troladores.

    En el mundo de la enseanza es frecuente encontrar a jvenes que estudian carreras de In-geniera que no estn convencidos de su vocacin. La labor del ingeniero es una de las msapasionantes a las que el ser humano puede dedicarse. Es el encargado de disear e imple-mentar los proyectos que le proponen. Es un gran creador de realidades que sirven para mejo-rar la calidad de vida de todos. La vocacin por la ingeniera debe fraguarse en los jvenes de15 a 18 aos y para conseguirlo slo hay que demostrarles prcticamente en qu consiste nues-tra profesin. Los mdulos de Parallax no precisan tener grandes conocimientos de Inform-tica ni de Electrnica, basta un poco de inters para generar en la juventud una inclinacin yadmiracin por la Ingeniera. Dotar a un laboratorio universitario, de Formacin Profesionalo IES de un equipo para aprender a programar y disear con estos dispositivos exige muy pocopresupuesto.

    En el campo profesional hay dos colectivos a los que estas herramientas les interesa en so-bremanera: el de los nefitos y el de los experimentados. Para los primeros, entre los que seencuentran los aficionados que no han tenido oportunidad de conocer la Informtica y la Mi-croelectrnica en profundidad, sta es la nica oportunidad para adentrarse en este mundo deldiseo programado sin necesidad de realizar un esfuerzo intelectual ni econmico. Para lostcnicos experimentados la filosofa de trabajo con los mdulos BASIC Stamp les proporcio-na la solucin ms eficaz para desarrollar sus proyectos con la mxima rapidez y seguridad.

    La necesidad de optimizar los tiempos de desarrollo de los proyectos que realizaban basa-dos en microcontroladores, impuls a dos ingenieros americanos, en la dcada de los ochentadel siglo pasado, a construirse un mdulo hardware que simplificase el desarrollo electrnico,y un lenguaje de programacin que se adaptara a sus diseos y fuese asequible para cualquiertcnico con escasos conocimientos en Electrnica e Informtica. Mejoraron la productividadhasta tal punto que tuvieron la idea de comercializar las herramientas que haban ideado. Y

    27

  • 28

    MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

    en 1992 Parallax ofert a nivel mundial los mdulos BASIC Stamp, que adquirieron tal xitode ventas que pasaron a erigirse como el producto estrella de la empresa.

    La gran aportacin de los mdulos BASIC Stamp reside en la conjuncin de un hardwareseguro, completo y listo para acoplarle los dispositivos a controlar, y un software accesible acualquier tcnico al estar basado en el lenguaje ms fcil del mundo, el BASIC. El lenguajePBASIC es una versin sencilla del BASIC, de pocas instrucciones y adaptadas a las caracte-rsticas de las aplicaciones y del microcontrolador. Al mezclarse estos dos ingredientes conuna poltica comercial de total informacin y libre disposicin de manuales, tutoriales y soft-ware de manejo, una excelente asistencia tcnica y una red de distribuidores profesionales en to-do el mundo, estas herramientas se convierten en el mejor sistema para iniciarse y desarrollarprofesionalmente este apasionante trabajo del diseo de proyectos con microcontrolador queva a precisar en un futuro cercano la colaboracin de muchos proyectistas.

    Por estas razones hemos decidido incorporar en esta edicin un par de captulos que tratendel equipo fsico y el sistema lgico de los mdulos BASIC Stamp, que aporten una idea cla-ra de las posibilidades de los mismos. Quienes se interesen en profundizar en el tema slo de-ben acudir a los magnficos Manuales de Prcticas que tanto en ingls como en castellano pue-den recogerse de las pginas en Internet de Parallax (www.parallaxinc.com) y de susdistribuidores como Ingeniera de Microsistemas Programados, S. L., para Espaa (www.mi- crocontroladores.com). Esperamos poder demostrar que manejar estos mdulos y confeccio-nar y ejecutar programas en PBASIC se puede llevar a cabo sin apenas conocimientos, y poreso estos captulos se han insertado antes de explicar la arquitectura del microcontrolador ysu repertorio de instrucciones mquina, temas que acometeremos posteriormente para formaral lector slidamente y as permitirle desarrollar proyectos completos utilizando el lenguajeEnsamblador.

    3.2. EL NACIMIENTO Y DESARROLLO DE UNA EMPRESA

    El diseo ideal basado en microcontroladores exige un hardware semiacabado y un lenguaje deprogramacin sencillo y potente. La guinda al pastel la pondra la posibilidad de poder grabarun programa, probarlo y volverlo a regrabar con las modificaciones oportunas para poder com-probar su efectividad inmediatamente. Si estas tareas slo precisan un PC y se pueden reali-zar muchos miles de veces con el mismo mdulo, dispondramos de una codiciada herra-mienta de trabajo.

    Todas esas caractersticas las echaba de menos un joven estudiante llamado Chip Graceycuando en 1980 se formaba al mismo tiempo que enredaba con el lenguaje BASIC sobre mi-crocomputadores APPLE II. Despus, su aficin le empuj a analizar y modificar el cdigofuente de electrodomsticos y videojuegos para inventar nuevas aplicaciones. Al acabar sus es-tudios en 1986 se asoci con su amigo Lance Walley para abrir desde su casa la empresa Pa-rallax, cuyos primeros catlogos estaban formados por programadores para el microcontrola-dor 8051 y digitalizadores de sonido para APPLE II. Luego se fue agrandando la gama deproductos construidos con microcontroladores, especialmente del modelo PIC. Como su la-bor de ingeniera les exiga optimizar los tiempos de desarrollo de los proyectos, idearon unhardware que contena el ncleo del sistema controlador (microcontrolador, reloj, reset, ali-mentacin, memoria para programa y adaptacin al PC). Dicho hardware se controlaba con unrevolucionario lenguaje de programacin derivado del BASIC pero con instrucciones especfi-cas para aprovechar los recursos del microcontrolador. Lo llamaron PBASIC, tiene algo ms

  • LOS SELLOS MGICOS DE PARALLAx

    29

    de una treintena de instrucciones y se aprende en muy poco tiempo. De esta manera resolvie-ron sus problemas de diseo y pensaron que tambin poda servir para otros colegas, y as co-mercializaron en 1992 los mdulos BASIC Stamp.

    Los diminutos sellos microcontroladores que utilizan el lenguaje PBASIC se comercia-lizan en diversos modelos de diferente velocidad, capacidad de memoria, recursos y precios(Figura 3.1).

    Parallax dispone de un mdulo de poca potencia, que es el BS1-IC, basado en un micro-controlador PIC 16(756 a 4 MHz, lo que permite la ejecucin de 2.0(1(1 instrucciones PBASICpor segundo. Slo tiene 16 bytes de RAM y 8 lneas de E/S. La capacidad de la EEPROM don-de se almacenan temporalmente los programas es de 256 bytes, que admite hasta 80 instruc-ciones PBASIC. Slo soporta 32 comandos de dicho lenguaje y este mdulo puede ser una ex-celente solucin en el control y automatizacin de productos y sistemas sencillos que exijanprestaciones mnimas.

    El siguiente mdulo, un poco ms avanzado que el anterior. es el Basic Stamp 2. Existendos presentaciones de este mdulo. Una se llama BS2-IC, y es un mdulo montado sobre unapequea PCB con componentes de montaje superficial y la forma de un circuito integrado DIP.Su fotografa se muestra a la izquierda de la Figura 3.2. La otra versin, OEM BS2-IC, dispo-ne de componentes convencionales y un PCB ms grande con pines para conexin en una tar-jeta protoboard, como puede apreciarse a la derecha de la Figura 3.2. Ambos estn basadosen el microcontrolador PIC16C57 funcionando a 20 MHz, lo que permite la ejecucin deunas 4.000 instrucciones PBASIC por segundo. La capacidad de la EEPROM es de 2 KB con

  • 30

    MICROCONTROLADORES "PIC". DISEO PRCTICO DE APLICACIONES

    posibilidad de almacenar programas de hasta 500 instrucciones. El tamao de la RAM es de 32bytes, de los cuales 6 se dedican a E/S y 26 para las variables del programa. Soporta un reper-torio de 36 comandos PBASIC y posee 16 lneas de E/S. Este mdulo se ha convertido en unestndar de la enseanza y de la industria y a l, sobre todo en la versin OEM BS2-IC, nos re-feriremos principalmente. En esta versin se usan componentes convencionales sobre una tar-jeta de circuito impreso que posibilita la comercializacin en kit y la fcil sustitucin de loselementos averiados.

    El mdulo BS2e-IC

    Este mdulo utiliza un microcontrolador Scenix SX28AC a 20 MHz del fabricante UBICOMy proporciona mayor capacidad de memoria RAM para guardar variables y de memoriaEEPROM para almacenar programas de hasta 4.000 instrucciones. Adems del repertorio decomandos PBASIC que ejecutaba el mdulo BS2-IC, ste soporta tres ms: GET, PUNT yRUN. En la Figura 3.3 se muestra una fotografa de este mdulo.

    El mdulo BS2sx-IC

    Con el mismo microcontrolador que el mdulo anterior, pero funcionando a una frecuenciade 50 MHz, este modelo puede ejecutar 10.000 instrucciones PBASIC por segundo. Acepta lasmismos comandos que el mdulo BS2e-IC.

  • LOS SELLOS MGICOS DE PARALLAX

    3 1

    Mdulos BS2p24-IC y BS2p40-IC

    El BS2p24-IC utiliza el microcontrolador Scenix SX48AC a 20 MHz Turbo y est encapsula-do con 24 patitas en formato DIP. Hay otro modelo de 40 patitas que slo se diferencia en queposee 32 lneas de E/S en lugar de las 16 que posee el de 24 patitas. Tienen una elevadsima ve~locidad de ejecucin de instrucciones y soportan un repertorio de 55 comandos PBASIC. des-tacando algunos especficos para la adaptacin en paralelo de pantallas LCD, de adaptacin dedispositivos 12C y de componentes de DALLAS SEMICONDUCTOR conectados por el in-terfaz One Wire .

    Finalmente, se presenta una tabla que recoge las caractersticas ms importantes de los di-versos mdulos microcontroladores de Parallax.

  • 32

    MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

    3.3. EL MICROCONTROLADOR ES EL CEREBRO DEL SISTEMA

    La estructura fsica de los mdulos BASIC Stamp puede descomponerse en cinco grandes blo-ques:

    1. Seccin del microcontrolador.2. Seccin de la memoria EEPROM.3.

    Seccin de la Entrada/Salida de la informacin serie del PC.4.

    Seccin del regulador de tensin.5.

    Seccin de las lneas de E/S de informacin para el mundo exterior.

  • Cindonos al mdulo OEM BS2-IC, todas las operaciones que realiza estn gobernadaspor el microcontrolador PIC 16C57. Se trata de un pequeo computador que maneja datos de 8bits y que acta como el cerebro ejecutor de todas las misiones que se encomienda al mdulo.Las funciones que desarrolla el microcontrolador al ejecutar las instrucciones de los programasson las siguientes:

    1. Entrada y salida de la informacin serie que proviene y se dirige al PC.2. Carga en la memoria EEPROM del programa PBASIC recibido desde el PC.3.a Descarga de las instrucciones contenidas en la EEPROM sobre el PIC 16C57 para su in-

    terpretacin y ejecucin.4. Introduccin de informacin desde los perifricos externos y salida de los resultados

    del procesamiento de los programas por las patitas del mdulo hacia los perifricos.

    LOS SELLOS MGICOS DE PARALLAX

    33

    La filosofa de un mdulo BASIC Stamp comienza con la confeccin del programa enPBASIC, mediante un editor apropiado, en el PC. Despus, se transfiere dicho programa porel puerto serie del PC al mdulo de Parallax y se almacena completamente en una memoriaEEPROM independiente que dispone dicho mdulo. A continuacin, las instrucciones guar-dadas en la EEPROM van dirigindose al microcontrolador una a una para ser interpretadasy ejecutadas. El programa Intrprete de PBASIC est grabado en la memoria de cdigo delPIC junto a otros que se encargan de supervisar la comunicacin con el PC y la EEPROM.

    Caractersticas generales del PIC16C57

    Se trata de un microcontrolador de 8 bits, es decir, maneja datos de un byte de longitud. Ponea disposicin del usuario una memoria RAM para guardar datos de 72 bytes de capacidad.Para contener el programa de trabajo posee una memoria no voltil de 2K posiciones de 12 bitscada una, ya que cada instruccin mquina que reconoce el procesador tiene 12 bits de longi-

  • 34

    MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

    tud. Esto significa que el mximo tamao del programa de instrucciones mquina (no PBA-SIC) es de 2.048. En el mdulo OEM BS2-IC el programa que tiene grabado el PIC, ademsde contener el Intrprete de PBASIC, se encarga de recibir y transmitir la informacin seriecon el PC, la escritura y lectura de la EEPROM donde se guarda el programa PBASIC, y elcontrol de las patitas de entrada y salida. Aprciese que en la memoria de programa del PIC noreside el programa PBASIC editado en la pantalla del PC, para la aplicacin a desarrollar. Di-cho programa se graba en la EEPROM 24LC16B desde donde el PIC va recibiendo una a unaesas instrucciones y las va traduciendo a instrucciones mquina y ejecutndolas.

    Microchip dispone de una versin del PIC 16C57 cuya memoria de programa es de tipoEPROM, que puede grabarla el usuario con un grabador y borrarla para volverla a reescribir. Elborrado hay que hacerlo sometiendo el circuito integrado a rayos ultravioleta, por lo que dispone de una ventana en su parte frontal. Hay una versin OTP, barata, que la puede escribir el usua-rio una vez nada ms. El mdulo OEM BS2-IC soporta el modelo PIC16CR57, cuya memoriaes de tipo ROM, de slo lectura. Se escribe en fbrica y slo se puede leer, si se permite.

    Adems de las memorias, el PIC 16C57 posee un temporizador de ocho bits para controlarel tiempo, que se llama TMR0. Para medir el tiempo el TMR0 puede usar los impulsos de re-loj del microcontrolador, o bien los que se introducen desde el exterior por la patita RTCC.Como en el mdulo de prcticas OEM BS2-IC no se usa el TMR0 con impulsos externos, lapatita RTCC se enva a tierra.

    Finalmente, el PIC16C57 maneja 20 lneas de E/S implementadas fsicamente mediante 20patitas por las que se enva y se recibe informacin, a y desde el exterior a lo largo del procesa-miento de las instrucciones del programa. Las lneas de E/S se distribuyen en grupos que se lla-man Puertas A, B y C. La Puerta A slo tiene 4 lneas que se implementan fsicamente por las pa-titas RA0-RA3, la Puerta B tiene 8 con las patitas RB0-RB7 y la Puerta C otras 8 con RCO-RCT

    Diagrama de conexionado

    Aunque el PIC 16C57 se comercializa con varios encapsulados, en el OEM BS2-IC se empleael DIP de 28 patitas en doble hilera. Este mdulo utiliza componentes convencionales y cual-

  • quier avera la puede resolver el propio usuario sustituyendo el que se halla averiado, por esose ha elegido en esta descripcin de carcter docente. Incluso se puede comprar el mdulo enkit y soldar sus componentes para ponerlo en marcha. El microcontrolador se inserta sobre unzcalo soldado a la PCB y tambin puede reemplazarse rpidamente.

    LOS SELLOS MGICOS DE PARALLAx

    35

    Las lneas de E/S para intercambio de informacin con el mundo exterior ocupan 20 pati-tas. Las cuatro de la Puerta A (RA0-RA3) estn destinadas a la recepcin y transmisin de lainformacin serie al PC y a la escritura y lectura de la memoria EEPROM. Las 16 patitas res-tantes, 8 de la Puerta B y 8 de la Puerta C, quedan a disposicin de los perifricos a gobernaren la aplicacin. Dichas lneas estn disponibles en el mdulo OEM BS2-IC por las patitas de-nominadas PO a P15.

    Por las patitas VDD y Vss se recibe la tensin de alimentacin que puede estar comprendi-da entre +2,5 y +5,5 VDC y que en el mdulo de prcticas se usa +5 VDC, obtenida de la sa-lida del regulador de tensin.

    Los terminales de un resonador cermico que oscila a 20 MHz se aplican a las patitas OSC 1y OSC2 para conseguir que el microcontrolador funcione a dicha frecuencia. Hay dos patitasque no se conectan (NC). La patita RTCC se usa para controlar los tiempos del temporizadorTMR0 mediante la frecuencia externa introducida por esta patita; como en el mdulo OEMBS2-IC no se emplea esta posibilidad se conecta a tierra. Finalmente, la patita MCLR# (#: sealactiva con nivel bajo) sirve para producir un Reset o reinicializacin del programa cuando seproduce un flanco descendente.

    3.4. LA MEMORIA EEPROM. PRESENTACIN DEL BUS I2CEn todos los mdulos BASIC Stamp existe una memoria EEPROM independiente en la que sevuelca el programa PBASIC confeccionado en el PC. Despus, desde la EEPROM se van pa-

  • 36

    MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

    sando, una a una, las instrucciones al PIC para que all se interpreten y se ejecuten. Esta me-moria EEPROM se comunica con el PIC en formato serie y segn el protocolo de comunica-cin del bus I2C.

    El bus 12C lo desarroll Philips Corporation para resolver sus propias necesidades en lainterconexin de circuitos integrados. 12C significa Interconexin de Circuitos Integrados.Su gran xito radica en su sencillez, ya que slo emplea dos lneas para comunicarse con losdispositivos que intervienen en este protocolo y que pueden llegar a 128 en un mismo siste-ma. La lnea bidireccional SDA transfiere los bits de informacin serie y la SCL los impulsosde reloj para sincronizar la informacin entre quien la manda y la recibe. En cada momentohay un dispositivo que funciona como Maestro y que determina las caractersticas de la trans-ferencia y genera los impulsos de reloj por SCL.

    Cada uno de los 128 posibles Esclavos responde a una direccin formada por 7 bits (A0-A6), y el Maestro al iniciar una transferencia es lo primero que enva en su comunicacin.Despus de especificar el Maestro la direccin del Esclavo con el que se quiere comunicar,enva la orden de lectura o escritura y luego otras complementarias. Existen muchos circuitos

  • integrados con diversas funciones para el bus 12C y los fabricantes determinan por hardwarela direccin a la que responden y sus caractersticas tcnicas. Sin embargo, es habitual que ladireccin a la que responde un circuito integrado I2C no est totalmente definida. Se suelendejar sin especificar las lneas de menos peso de la direccin para poder colocar varios circuitosintegrados iguales en el sistema, respondiendo cada uno a una direccin distinta. En el casode la memoria 24LC16B tiene sin definir las tres lneas de menos peso de la direccin (A0-A2),cuyo valor debe determinar el usuario por hardware, enviando las patitas correspondientes atierra o a VDD. En el mdulo OEM BS2-1, como slo se utiliza un circuito integrado EEPROM,las tres lneas de la direccin se mandan a tierra.

    LOS SELLOS MGICOS DE PARALLAX

    37

    La patita WP (PROTECCIN CONTRA ESCRITURA) si se conecta a la tensin positivaVDD (+5V) no se puede escribir la EEPROM y funciona como una memoria ROM de slo lec-tura. En el mdulo OEM BS2-IC se deben escribir constantemente nuevos programas y poreso dicha patita se conecta a tierra.

    Lectura y escritura de la memoria EEPROM

    La EEPROM 24LC16B se carga con el programa tokenizado PBASIC generado en el PCpor el Editor STAMP BASIC y que llega al conector DB9 del mdulo Parallax desde el puer-to serie. La grabacin en la EEPROM se producir mediante la introduccin en serie de la co-rrespondiente informacin a travs de la patita SDA. Una vez cargado el programa PBASIC enla EEPROM, operacin controlada por el PIC, las instrucciones salen una a una hacia el mi-crocontrolador para que las interprete y las ejecute.

    Tanto la entrada y grabacin del programa PBASIC en la EEPROM como la posterior lec-tura de las instrucciones las controla el microcontrolador que acta como Maestro en el bus12C, por lo que tambin es l quien genera los impulsos de reloj por la lnea SCL para sincro-nizar la transferencia.

  • 38

    MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

    La informacin procedente del PC se introduce al mdulo de Parallax por el conector 13139y atraviesa un circuito de adaptacin de niveles con tres transistores (Q1, Q2 y Q3) para final-mente cargarse en la EEPROM a travs del PIC16C57. El circuito transistorizado acta deforma bidireccional porque existen instrucciones PBASIC como DEBUG que envan infor-macin del mdulo al PC. La misin de dicho circuito transistorizado es transformar los nivelescon los que trabaja el puerto serie del PC (RS-232-C), que implementan los niveles lgicoscon +12 y -12 VDC, a niveles TTL (+5 y 0 VDC) con los que trabaja el PIC16C57.

    Las patitas RA2 y RA3 del microcontrolador se encargan de manejar la informacin serieque entra y sale por el circuito transistorizado desde o hacia el PC. Las instrucciones PBASICrecibidas desde el PC, las carga el microcontrolador en la EEPROM envindolas por la lneaSDA del bus 12C. RAO y RA1 soportan las dos lneas del bus 12C en el PIC.

    Las cuatro patitas de la Puerta A del PIC16C57, RAO-RA3, se destinan a soportar la co-municacin del mdulo con el PC y con la memoria EEPROM.

    3.5. SECCIN DE LA ENTRADA/SALIDA SERIE DEL PCEn el PC se edita el programa PBASIC y por su puerto serie se enva al mdulo de Parallax.Tambin desde dicho mdulo hay ocasiones en las que se enva informacin al PC, como su-cede con la instruccin DEBUG.

    La entrada y salida de esta informacin serie con el PC se acondiciona mediante un circui-to transistorizado que recoge y entrega el microcontrolador por sus patitas RA2 y RA3. Lasinstrucciones PBASIC que llegan desde el PC las recoge el PIC por su patita RA2 y luego lasenva por RAO a la EEPROM, donde queda almacenado.

  • 3.6. SECCIN DEL REGULADOR DE TENSINEst compuesta por el circuito integrado LM2940-5.0, que es un regulador de tensin a + 5VDC. Tambin existe un condensador electroltico auxiliar. Por la patita Vin del regulador serecibe una tensin que puede oscilar entre +5,5 y +I5 VDC. Por la patita de salida VOUT seobtiene una tensin V dd de + 5 VDC regulada, que se emplea para alimentar los circuitoselectrnicos del mdulo y tambin se pone a disposicin de los perifricos externos por la pa-tita I9 del mdulo.

    Cuando se disponga de una fuente de alimentacin que proporcione los + 5 VDC precisosse puede eliminar la intervencin del regulador LM2940-5.0, evitando el calor que disipa. Deesta manera no se introduce nada por V i,, y se aplican los + 5 VDC de la fuente por la patita20 del mdulo (Vdd).

    3.7. SECCIN DE LAS LNEAS DE E/S PARA INFORMACINCON EL MUNDO EXTERIOR

    El mdulo OEM BS2-IC dispone de 20 patitas por las que se aplica la alimentacin elctrica,la seal de Reset y las lneas de E/S de las puertas B y C del microcontrolador, por las que serecibe y se saca la informacin que se maneja en el procesamiento de las instrucciones del pro-grama.

    Las patitas Vdd, GND y V; corresponden a las descritas del regulador de tensin LM2940-5.0. Cuando por la patita Vin se aplica una tensin comprendida entre + 5,5 y + I5 VDC, el ci-tado regulador alimenta al circuito electrnico del mdulo con + 5 VDC regulados y presentadicha tensin en la patita V dd (20) del mdulo para su posible utilizacin por circuitos o perif-ricos externos. Cuando se dispone de + 5 VDC regulados, se pueden aplicar entre V dd y GND,dejando sin conectar V;, para alimentar al circuito electrnico sin funcionar el regulador.

    La patita I7 del