Está en la página 1de 299
JBaue SISTZUL Ly Los microcontroladores constituyen una de las principales Areas de la Electrénica Aplicada porque facilitan la introduccion de los procesadores digitales en numerosos productos industriales. Pero ademas, los microcontroladores son en si mismos una tec- nologia compleja en la que coexisten numerosos conceptos interrelacionados que difi- cultan el establecimiento de normas que garanticen tanto la fiabilidad de los sistemas basados en ellos como la mantenibilidad de los mismos y la modificacién de sus pres- taciones a lo largo del proceso de disefto. Este libro constituye una nueva forma de concebir el proceso de formacién de exper- tos en la utilizacion de los microcontroladores y en el diseno de sistemas basados en ellos, que pone el énfasis en el autoprendizaje de los conceptos tedricos de forma inde- pendiente de cualquier familia concreta de microcontroladores y la utilizacién de una familia determinada para facilitar la comprensién de los mismos. Los conceptos tebri- cos se presentan en los capitulos 1y 3y en el capitulo 2 se describe, basandose en ellos, la familia de microcontroladores PIC de Microchip. Pero ademas, conscientes de la importancia que la experimentacién tiene en el proce- 0 educativo de los ingenieros, los autores han desarrollado una herramienta de bajo coste que, no solo permite probar el funcionamiento de numerosos circuitos y proce sos de informacion basicos, sino que también facilita el desarrollo rapido de un proto- tipo. Dicha herramienta combina un sistema fisico (Hardware) con un conjunto de programas (Software) que sistematizan el proceso de diseito y contribuyen a elevar el nivel de calidad del mismo. La placa desarrollada, que se conecta a un computador personal a través de uno de sus puertos USB, se combina con un programa ensambla- dor y un compiladar del lenguaje C. En el capitulo 5 se presentan diversos ejemplos de programas escritos en el lenguaje ensamblador de los microcontroladores PIC y en el capitulo 7 su versién en el lenguaje C. Previamente a este tiltimo, en el capitulo 6, se presentan, de forma estructurada mediante un conjunto de ejemplos, los principales conceptos del lenguaje C. El funcionamiento de todos los ejemplos se puede probar en la placa y ademas el usuario puede desarrollar programas propios y utilizar la placa para verificarlos. ediciones com cas . | Microcontroladores PIC. Sistema integrado para el autoaprendizaje Enrique Mandado Pérez Luis Manuel Menéndez Fuertes Luis Fernandez Ferreira Emilio Lopez Matos ediciones técnicas Titulo: ‘Microcontroladores PIC. Sistema integrado para el autoaprendizaje Autores: © Enrique Mandado Pérez © Luis Manuel Menéndez Fuertes © Luis Femandez Ferreira © Emilio Lépez Natos Editor: © MARCOMBO, EDICIONES TECNICAS 2007 MARCOMBO, S.A. Gran Via de les Corts Catalanes 594 (08007 Barcelona (Esparia) Quedan rigurosamente prohibidas, sin la autorizacién escrita de los titulares del copyright, bajo las sanciones establecidas en las leyes, la reproduccicn to: tal o parcial de esta obra por cualquier medio 0 procedimiento, incluidos ta reprografia y el tratamiento informatica, asi como la distribucién de ejempla res mediante alquiler 0 préstamo publicos. ISBN: 978- 04-267-1431-2 Composicia y proimprosién: Carlos Parcerisas Civit (3Q Editorial) D.L.: BI Impreso en 200000 INDICE INTRODUCCION . 9 CAPITULO 1 44 4.1 INTRODUCCION tf 1.2 FUNDAMENTOS DE LOS PROCESADORES DIGITALES SECUENCIALES « NT 1.2.4 Introduccica 4 1.2.2 Arquitectura interna. 12 1.22.1 Proceiadores digitales de arquitectura Harvard... Pacem ea 1.22.7 Procssadsrer digitale: ce arguitectura Princeton 16 4.2.3. Juego de instrucciones. . . 23 1.2.4 Interfaces de entrada/salida, z3 1.24.4 fundament 1.2.4.2 Cireuitos de interfaz.. 25 1.2:4.2.1 Forma de realizar (a tronsferencia de informacion »..vsu.csuresncvsntnnennecnee 25 1:242:2 Forma de controlar la transferencidassssssssssisninnninnosomnnonsen dd .3__PARAWETROS CARACTERISTICOS DE LOS MICROCONTEO! ADORES a 1.3.1 Introduccion 33 1.3.2 Capacidad de operacion en paralelo... Srstniansnsniinansnnanitiasanerseninsereenae 34 3.3 Capacidad de memotia...screansisneetstastensiinessis rains 34 41 Memoria de dat u t ie ica 4.3.4 Circuits de interfaz_de entrada/salda y perféricos intemnos nets 3G To4d Puertos parale: set 113.422 Puertos serie. 1.3.4.3 circuitos de control de la transterencle. 38 4.3.4.4 Periféricos internos, at 1:3-4:5 icracontrolacores especiallzados y de aplicacicn general a2 4.3.5 Juego de instrucciones oa cesesss secs messi 43 1.3.6 Arquitectura externa ere fe ae 5 sees 1.3.7. Modos de operacién «0... zs olan osistect he 244 BIBLOGRAE 4 CAPITULO 2. i ota : 2.4 INTRODUCCION " 47 2.2 CARACTERISTICAS GENERALES......sccccccssnensesssereennessneee vcucecosootrsccenaseitetse AT 2.3 CLASIFICACION. mo . ae 23.1 Gama baja csscscesssessssessee cessestisaneniane Peouuusneseniussssne SY 3.2 Gama medi i rs 2 2.3.4 Gama mejorada sbcvsabonab 7 muranrnceisc 8 3.5 ASIC (Digital Signal COnTOWEIS) orsacsoscuuosiuntuumuvmnsnnnssnnsnnansnnnen33 4 ENCAPSULADO za 25 ARQUITECTURA GENERAL DE LAGANA BAJA 55 4 Introd 2.5.2 Organtractén de ta memoria sessssissussssssiisnscsiinsasvoonsssunsenscssesesseesoaisauninsuneina ST i me 2.5.2.2 Memoria ce datos. 52 2.5.3. Registro de trabajo (W) 0 acumUlador.....sssscrsciissseessucseeeestseceencesessasineess OD 4 ria pila 2.5.5 Circuito generador de impulsos o rela} 62 6 Cucunte de inicalizacion Divisor de frecuencia 4 2.5.8 Temporizador/Contador TMRO.... 264 2.5.9 Circuito de vigilancia 66, 2.5.10 Estado de bajo Consumo ceruc.ccuesesssusuessisiuersinsesra sas OS “11 Puertos de entrada/salidi 66 2.6 REPERTORIO DE INSTRUCCIONES DE LA GAMA BAJA 8 2.6.1 Introduccién 69 2.6.2 Mados de direccionamiento.......sssssssssssssssnsssaeesenssnnseteeinensee shasta Tl 2.8.2.1 Direccioramlento inmediate. n 2.6.2.2 Direecioramiento directo nH 2.6.2.3 Direzcioramienta indirecto c 3 n 2.6.3. Descripeién del comportamiento dé las instrucciones vow... sasuisssoecteecdTA 2.6.4 Repertorio de instrucciones s ees en eR seanaweneonn ED 2.6.4.4 Inctruceiones de traneferencia entre ragictras n 2.8.4.2 Insteueciones que actuan sobre el estado de un Biestable de Un Feglstro.vsuscsssssesssnesne TS eet 2.6.44 Instrucciones l6gicas 78 2.8.4.5 instrucciones de selto lncondictonal 33 2.8.4.6 Instrucciones de salto condicionat. 84 2.6.4.7 instrucciones especiales... . ane SII as 2.7 ARQUITECTURA GENERAL DE LA GAMA NEDIA 87 2.7.1 Introduccion... Sadan 87 2.7.2 Organizacién de la memoria 38 2.7.2.1 Memoria de instrucciones 2 8s 2.71212 Memoria de datos...... 33 2.7.3 Registro de trabajo (W) Gost tc UeGb CCU abo B a sdeCE Rites ESCM 207.4 Memoria Pila 94 27-5 Circuito generador de impuilzos 94 2.7.6 Circuito de inicializacién, 95 2.7.7 Divisor de frecuencia ..... criosinssnsiennnnnavieeenmnevenieeeees Picneerseness 96 2.7.8 Temporizadores 96 2.7.9 Circuito de vigilancia....... i ee es si ices 9B. 2.7.10 Estado de bajo consumo 96 2.7.11 Puertos de entrada/salida ......e..eessenen seeniain aniecienseenentaniaccenmaanndDD 2.7.12 Otros peritértcos. en 9B 2.8 REPERTORIO DE INSTRUCCIONES DE LA GAMA MEDIA 98 2.8.1. Introduccién 2!8.2. Modos de direccionamiento. 2.8.2.1 Direccioramiento inmediato... 2.8.2.2 Direcctonamiento directo 2.8.2.3 Direscioramienta indirecto 2.8.3. Repertorio de instrucciones 2.9 EL MICROCONTROLADOR PIC 16F84 2.9.1. Introduccién 2.9.2 Memoria de instrucciones .. 2.9.3 Memoria RAM de datos 2.9.4 Memoria EEPROM de datos. 2.9.4.1 Caracteristicas generales, 2.9.4.2 Proceso ce lectura... 2191413 Proceso ée cxeritura 2.9.5 Dispositivos periféricos 5.1 Cicculto d asi 9.5.2 Puartos ce entrads/sali 2.9.6 Interrupeiones 7.9.7 Encapsulado y hardware minimo. Hi 7.8.7.1 Encepsulado coitt 97 DHarcware crt BIBLIOGRAFIA 114 CAPITULO 3 ert e a se 15 3.1 INTRODUCCION. . a 115 3.2. SISTEMA DE DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN MICROCONTROLADORES ........+.118 3.2.1 Introduccién ei 118 3.2.2. Herramientas de hardware seniorcevnechnpecnnasoc : er 3.2.2.1 Places de prototIpos...nu-vvueesssvernsstersussninnosntnsnennnitentinecnnisenssel 8, 3.2.2.2 Grabadores 0 programacores 19 3.22.3 Depuradores on el sistema (In-System Debugger) ~ . 119 3.2.2.4 Fmuladores (Ir-Cireuit Emulators) 120 3.2.3 Herramientas de software .. 3.2.3.4 Editores y compiladores 3.2.3.2 Simuladores. 5.2.3.3 Grabadores o programacores 3.3. SISTEMA DE DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN MICROCONTROL ADORES PIC... 123 3.3.1 Herramientas de hardware ...... i 2.3.2 Herramientas de software 3.3.2.4 Lenguaje ensamblador de MPLAB 3.3.2.2 Herramienta TFPROG para la grabacién del microconsralador . BIBLLOGRAE CAPITULO 4 ..sssssessesssssens 4.4 INTRODUCCION 4.2 COMPONENTES DESIDE>IC-USB. 4.2.1. Introduccién 4.2.2 Zécalos para la insercién de microcontroladores PIC 4.2.3 Fuente de alimentacién 4.2.4 Interfaz de conexién con el puerto USB del computador personal 4.2.5 Circuitos de control 4.2.5.1 Grcuto de control del modo de funcionamient. 4.25.2 Gieuito de inicializacion (RESET) 4.2.6 Dispositivos periféricos. 4.2.6.1 Perféricos de entrada 4.2612 Perfericos ée sada. = 4.2.63 Perferiea de entrada lida an serie 4.2.7 Conectores de expansion (J3y J4) 4.2.8 Puentes de contiguracién de los puertos 476. Puente conmuiador Pi 22.877 Puenve conmurador J: 4.2.8.3 Puente interuDtor IPB 42.8.4 Puenves interrptores Hay 15. 4.3. PERIEERICOS BCTERNOS 4.3.1 Placa de entrada y visualizacion de datos 41-1 Teclado matricial 43.1.2 Modul visvalizador alfanumerico de cristal liquide 4.3-7.3 Conectoresy plano Ge SRUECION. 4.3.2 Placa de interfaz de variables de entrada/salidas sigtates. 4.32.1 nterfaz de variables de entrada cigitales 43.22 teria de variables de sala deitales con rele 4.3.2.3 nterfaz de variables de sali digtales con triac 4.3.3 Placa de interfaz de varables de entrada analdgicas, 4.4. NORMAS DE INSTALACION 4.4.1 Colocacion de os puentes y otros elementos 44.2 Alimentacién... = 4.4.3 Conexion al computador personal rogramacién del PIC... CAPITULO 5. 5.1. INTRODUCCION 5.1.1 Consideraciones generales....-... cctonenennnennnenenne cotoessennnnnnenennee 5.2. OPERACIONES BASICAS, . 169 EJERCICIO 5.2.1 Suma de una tabla de numeros aera dedcersaccl69 EJERCICIO 5.2.2 Resta de dos operands. Debit cele TZ EJERCICIO 5.2.3 Multiplicacién de dos operandos. 2 ATS 5.3. FORMATOS DE REPRESENTACION DE LOS DATOS.. santa 7B EJERCICIO 5.3.1 Conversi6n a BCD natural de un nimero codificado en binario natural 2178 EJERCICIO 513.2 Conversion de un digito codificado en BCD natural a 7 segmentos. 181 EJERCICIO 5.3.3 Conversién de un atimero cadificada en binario natural a 7 segmenios 16 HIERCICIO 5.3.4 Vitalizacién mediante multipleacin temporal. wae neeureneennenere 90 5.4 OPERACIONES DE ENTRADA/SALIDA....u.. hese ttc ebsecrocteetsccee TS EJERCICIO 5.4.1 Utilizacion de los conmutadores. 193 EJERCICIO 5.4.2 Realizacién de un juego de luces 196 5.5. TEMPORIZADOR/CONTADOR E INTERRUPCIONES... 2198 EJERCICIO 5.5.1 Parpadeo periédico de los diodos luminiscentes. ncn .vorsnsenesnnesnenes 199 EJERCICIO 9.9.2 Realizacién de un segundero 202 EJERCICIO 5.5.3 Conteo de impulsos externas. ci 204 5.6 OTROS RECURSOS DEL PIC16F84. i 2207 EJERCICIO 5.6.1 Utilizacion del circuito de vigilancia. esvsceseesnen scenanecerse BOT EJERCICIO 5.5.2 El estado de bajo consumo. 208 EJERCICIO 5.5.3 Utilizacion ce la memoria de dates EEPROM. ....-sssisssosssnseenecenecsneens 214 CAPITULO 6 215 6.1 INTRODUCCION. sone cece ocean 21 6.2 _ ESTRUCTURADE UN PROGRAMA ESCRITO ENC : 216 6.3 TIPOS DEDATOS. ees ee 219 6.3.4 Tipos te datos bdsleas. a0 iecerstounestsceohosisseitntfemesbeeesinu Ep 64 VARIABLES... secs siaatn a — 1224 6.4.1 Conceptos generates — 21 6.4.2 Asignacion de nombrés edicionaies a los tipos de datos «.... mn CT aa 6.4.3 Variables de tipo cardcter (char) ..s..eon 25 6.4.4 Modos de almacenamiento de variables ‘ acces 2227 6.5 CONSTANTES 228 6.6 OPERADORES 123 6.6.1 Operadores aritméticos. sonic ae gonstuneruninaritigataicna aouabeaceseiickes DMM 6.6.2 Operadores de comparacion 233 6.6.3 Operadores lgicos 2a 6.6.4 Opetadores bit a Dit -v...ssrssusnsnntnnsusinnnntiunnenetsusnisenesinncneennnnees 336 6.6.5 Operadores de sigibnnnsnnontannintnntninninninnennennennenninn 33D 6.6.6 Operador de tamatio. Hub alcliesanviasanecae baci BB 6.6.1 Operadores de gestisn de memoria 239 6.7 EXPRESIONES ...o-. a ae essen 239 6.7.1 Intioducetén a cansesahrenmsnnanennseattantsy 238 6.7-2 Prioridad y asociatividad de operadotes...-.....:.sv.nssvsteuenvivseesnenenseewesenee 240 6.7.3 Conversién automatica ¢e tipo de dato 243 6.7.4 Conversién explicita de tipo de dato... 24a 6.7.5 Combinacién de expresiones megiante el opetador Coma...v.ncr.sceitsvnesnneeneeees 244 6.8 INSTRUCCIONES DE CONTROL DE LA EJECUCION DEL PROGRAMA... cccuccsseeunreneeeueerneee 245) 6.8.1 Introduccién..... fonnnesnnenenenennnesnes 245 6.8.2 Instrucciones de bifurcacién 2246 6.6.21 inetrceien IF ue 6.8.2.2 Insteuecion IF. ELSE 247 6.8.2.3 Instruccion IFELSE matipte 252 6.8.2.4 Instruccion SWITCH 254 6.8.3 Instrucciones de control dé bucle 1258 6.8.3.1 Instruccion FOR ... 258 6.8.3.2 Instuccion WHILE ce See, tae 262 6.8.3.3 Instrucefon DO. WHILE 264 6.8.4 Instrucciones de salto, 266 6.5.41 Instruccion BREAK do ruptura de secuencia 266 6.8.4.2 Instruccion CONTINUE €@ reinicio.. 6.84.3 Instruccion GOTO de selto inconcicional. 6.9 FUNCIONES 6.9.1 Introduccion a 6.9.2 Declaracién y definicién de una funcien 6.10 VECTORES 6.10.1 Intraduecién 6.10.2 Vectores unidimensionales... 6.10.3 Vectores multidimensionates .. 6.11 PUNTEROS. 6.11.1 Relacien entre punteros y vectores 6.11.2 Vectores como pardmetros de funciones 6.11.3 Punteros como parametros de funciones. 6.11.4 Cadenas de caracteres. 6.12 TIPOS DE DATOS ESTRUCTURADOS .. 6.12.1 Introduccién ..... 6.12.2 Estructuras. 6.12.3 Campos de bits, 6.12.4 Uniones. 6.12.5 Enumeraciones. 6.13 FUNCIONES DE LA BIBLIOTECA NORMALIZADA ... BIBLIOGRAFIA CAPITULO 7... 7.4 INTRODUCCION 7:2 CARACTERISTICAS GENERALES DEL COMPILADOR CC5X 7.3 INSTALACION Y UTILIZACION. 7.3.1 Introduccion 2 apace sel oontace ‘CBX con la herramienta MPLAB... 7.3. BJERCICIOS EJERCICIO 7.1 EJERCICIO 7.2. EJERCICIO 7.3 EJERCICIO 7.4 EJERCICIO 7.5. EJERCICIO 7.6. EJERCICIO 7.7. EJERCICIO 7.8 EJERCICIO 7.9. EJERCICIO 7.10, EJERCICIO 7.11 EJERCICIO 7.12 EJERCICIO 7.13 EJERCICIO 7.14, EJERCICIO 7.15 BIBLIOGRAFIA ...... INDICE ALFABETICO Comversisn a BCD natural de un nimero codificado en binario natural. Conversisn de un digito codificado en 8CD natural a 7 segmentos.. Conversin de un niimero codificado en birario natural a 7 segmentes. Visualizacién mediante multiplexacién temporal Visualizacién mediante multiplexacién temporal de un contador en binario natural... Utilizacién de los conmutadores. Realizacion de un juego de luces. Parpadeo periddica de los diodos luminiccentes Realizacién de un segundero, Conteo de impulsos externos. coe Salica mediante visualizador de cristal liquido. Entrada por teclado, Utitizacion del convertidor analégico- digital... Gestién de un médulo de entradas y salidas digitales. Gestion de un médulo de entradas analdgicas mediante comunicacion serie. 169 1269 169 274 274 2275 2178 279 282 2283 186 288 288 11288 1289 292 293 2195 196 303 . 305 305 305 310 2310 310 314 314 2315 2316 Ma 2320 2-322 2323 y4 326 2327 2328 331 1333 36 340 M5 . 347 INTRODUCCION Un microcontrolador es un circuito integrado digital monolitico que contiene todos los elementos de un procesador digital secuencial sincrono programable y que se caracteriza porque su sistema fisico se puede configurar, es decir, se adapta a las caracteristicas del sistema al que se conecta cuando se le aplican las sefales eléctricas adecuadas. Su pequetio tamafio y su capacidad de configuracién han hecho que su campo de aplicacién se haya ampliado extensamente a lo largo de la tltima década del siglo XX y que sean numerosos los productos industtiales de todo tipo en los que se empotran en la actualidad para mejorar sus prestaciones. Pero la elevada complejidad de los microcontroladores hace que estén asociados a nu- merosos conceptos interrelacionados que dificultan su analisis y el disefo de sistemas elec- trénicos de control y de comunicaciones basados en ellos. A ello contribuye ademas la falta de normalizacién que hace que los distintos fabricantes utilicen nombres diferentes para denominar a los mismos conceptos. Conscientes de ello, el Instituto de Electronica Aplicada Pedro Barrié de la Maza de la Universidad de Vigo y la empresa Técnicas Formativas S. L. han desarrollado un sistema integrado de ensefianza/aprendizaje de los microcontroladores que combina la formacion teérica con el aprendizaje practico. El sistema consta de un libro, un disco compacto, y una placa de desarrollo acoplable a un computador personal mediante la conexign setie USB, para llevar a cabo un conjunto de actividades pricticas que contribuyan a la consolidacién de los conceptos teéricos, El libro consta de cinco capitulos. En el capitulo 1 se presentan los principales concep- tos asociados con los microcontroladores que han dado lugar a numerosas familias que se diferencian por sus prestaciones adaptadas a los distintos campos de aplicacion. En el capitulo 2 se describe la familia de microcontroladores PIC de Microchip y las principales caracteristicas de los elementos que la componen el capitulo 3 se estudia el proceso de disefio asistido por computador de los sistemas electrénicos basados en microcontroladores y se describen los diferentes tipos de herra- mientas tanto hardware (depuradores, emuladores, etc.) como software (editores, ensam- bladores, emuladores, etc. ). En el capitulo 4 se describe el sistema de desarrollo de aplicaciones SiDePIC-USB aso- ciado al libro y al disco compacto que se caracteriza por facilitar el desarrollo rapido de prototipos y la verificacién del correcto funcionamiento de la aplicacion con un coste mi- nimo. En el capitulo $ se incluye un conjunto de ejercicios resueltos de complejidad creciente, programados en lenguaje ensamblador, para facilitar el aprendizaje del disefio sistemas basados en los microcontroladares PIC y la utilizacién del sistema SiDePIC-USB descrito enel capitulo 4 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 1. Fundamentos de los microcontroladores 1" CAPITULO 1 FUNDAMENTOS DE LOS MICROCONTROLADORES 4.1 INTRODUCCION Un microcontrolador (Mi exocor ‘ollex) es un circuito integrado digital monolitico que contiene todos los elementos de un procesador digital secuencial sincrono programable de arquitectura Harvard o Princeton (Von Neumann). Se le suele denominar también mi- crocomputador integrado 0 empoirado (Embedded processor) y esta especialmente orientado a tareas de control y comunicaciones. Por su pequefio tamaiio, los microcontroladores permiten empotrar un procesador pro- gramable en muchos productos industriales. Su coste reducido y su consumo de energia y velocidad adaptables, resultan apropiados para numerosas aplicaciones. Ademés, poseen mecanismos de seguridad de funcionamiento (Safety) y proporcionan proteccién del equi- po electrénico contra copias y modificaciones del programa no autorizadas (Security). Los microcontroladores se utilizan para la realizacién de sistemas electrénicos empotra- dos en otros sistemas (eléctricos, mecanicos, etc.) como por ejemplo electrodomeésticos (tele- visor, lavadora, microondas, etc.), sistemas informaticos (raton, impresora, etc,), sistemas de telecomunicaciones (teléfono mévil, circuito de control de una red, etc.), sistemas de control de maquinaria (circuito de control del brazo de un robot, etc.) o sistemas de automocién (cit- cuito de control de frenado, circuito de control de la climatizacién, etc.) (Figura 1.1). En to- das estas aplicaciones los microcontroladores emulan a (se comportan igual que) umerosos sistemas digitales que antes se realizaban con circuitos integrados MSI (escala de integracion media) y LSI (gran escala de integracion) como por ejemplo circuitos contadores, compara- dotes, etc Mediante la introduccion de los microcontroladores en los productos industriales se logra: - Coneebir y fabricar nuevos productos que no podrian existir sin electronica, como por ejemplo los reproductores de sonido en formato MP3 - Mejorar las prestaciones de productos ya existentes mediante 1a introduccion de nuevas prestaciones y Ia elevacion de las actuales, lo cual produce un gran valor afladido, Un ejemplo de ello es el sistema electronico SiDePIC-USB descrito en el capitulo 4. - Facilitar la utilizacion de equipos complejos haciendo mas sencilla la integracién con el ser humano 2 Microcontroladores PIC. Sistema integrado para el autoaprendizaje Figura 1.1 Campos de aplicacién de los microcontroladores. 1.2 FUNDAMENTOS DE LOS PROCESADORES DIGITALES SECUENCIALES 1.2.1 Introduccién Por ser los microcontroladores procesadores digitales secuenciales sincronos, para ana- lizarlos es necesario conocer los conceptos basicos de los mismos, que se describen a con- tinuacion Los procesadores digitales secuenciales sincronos tienen asociados tres conceptos prin- cipales que son - Le arquitectura intema = Eljuego de instrucciones - Las interfaces de entrada/salida 1.2.2 Arquitectura interna Se define la arquitectura interna de un procesador digital como el conjunto de atributos que tienen un impacto directo en la ejecucion del proceso que llevan a cabo. En la figura 1.2 se muestra el esquema de bloques de un procesador digital secuencial sincrono, forma do por una unidad de control y una unidad operativa [que algunos autores denominan ca- mino o ruta de datos (Datapath) [FERN 03] [TANE 99] [MIGU 04] compuesta por una unidad de memoria y una unidad aritmética y logica Capitulo 1. Fundamentos de los microcontroladores 13 SISTIMA > Resultados ENC SiNCRONO. R-20 = 20-28 » 28-44 = 44-68 > 68 — 100 100 o mas, Tamafio de la memoria de programa Sin ROM I kpalabras 2 kpalabras Akpalabras 8 kpalabras 16 kpalabras 32 kpalabras 64 kpalabras 128 kpalabras 256 kpalabras cD Digitos aleatorios Tabla 2.2 Nomenclatura de los PIC de la gama mejorada. Por otra parte, Microchip también clasifica los microcontroladores que produce segiin alguna funcion especifica de sus periféricos, En la tabla 2.4 se especifica esta clasificacién con ejemplos de algun: 105 dispositivos Capitulo 2. Los microcontroladores PIC de microchip 51 Denominacion | Tecnologia c OTP y EPROM CR ROM CE OTP (programa) y EEPROM (datos) F FLASH HV Alta tensién (15 V) LF Flash de baja tensién LC OTP de baja tension LCR ROM de baja tensidn Tabla 2.3 Simbolos utilizados para indicar el tipo de memoria no volatil en los PIC. 2.3.1 Gama baja La gama baja esti formada por un conjunto de microcontroladores PIC que poseen 8, 14, 18 y 28 terminales. Su tensién de alimentacién esta comprendida entre 2 y 6,25 voltios y tienen un consumo energético reducido, lo que los hace idneos para ser utilizados en aplicaciones en las que se alimentan mediante baterias. Tienen un juego de 33 instrucciones de 12 bits. Sus recursos hardware son limitados pe- ro tienen una buena relacién coste/prestaciones. No admiten el acoplamiento de periféricos por interrupcién y la memoria pila s6lo dispone de dos posiciones, por lo que en sus pro- gramas no se pueden anidar mas de dos subrutinas. Entre los recursos hardware que poseen hay que citar: - Un circuito de autoinicializacién, denominado POR (Power on Reset) que hace que al aplicarle la tension de alimentacion el microcontrolador se reinicie. - Untemporizador - Uncireuito de vigilancia o perro guardian (Watch-dog) Poseen ademas un modo o estado de funcionamiento de bajo consumo, que se inicia al ejecutarse la instruccién SLEEP, un circuito de proteccion de lectura del programa y ter- minales de entrada/salida capaces de controlar directamente determinados periféricos. 2.3.2 Gama media La gama media es la mas variada y completa de la familia de microcontroladores PIC El numero de terminales de sus elementos esta comprendido entre 8 y 68 y poseen nume- rosos periféricos internos como por ejemplo comparadores, convertidores analégi- co/digitales, puertos serie y diversos temporizadores. 52 Microcontroladores PIC. Sistema integrado para el autoaprendizaje Caracteristicas distintivas Familia Especificacion | Ejemplo dela farnitin ‘Memoria de Programa: 16K — 64 FI picisr2480 | mejorads (enhanced Flash) PICIS#4480 | Frecuencia de Trabajo max.: 4OMHZ may PICISEAG80 | R/T Configurables. 6 PICISFS680 | Penifeneos: USART, CAD, Comparado- res. BIS digitales “Memoria temporal Re/TN doble puerto de 8K —— Ethemet ENC28I60 Frecuencia de Trabajo max: 2SMIz oe Modos ée verificacidn en buele cerrado, f ‘Auto polaridad (Connectivity) USB PIc16c745 PIC18E2550 PIC1824550 Memoria de Programa. 14K — 32K (EPROM, OTP, Flash mejorada) Frecuencia de Trabajo max.: 48METz USB I.1y 20 16 puntos (Endpoints) ‘Memoria temporal USB 16 ~ 1024 pala bras Peniféricas: UART, USAR, SPI PC ADC, Comparadores, E/S digitale. Radio Frecuencia Transmnisores UH HIPICI24 HPICI2P6TSF ‘O9AP Memoria de Programa_ 1536 ~ 1792 par labras (OTP. Flash mejorada) Periftricas: 4x10 bits CAD, ‘Temporiza- dores, Comparadores, WDT Modulacion: ASK, FSK Rango de Frecuencia: 290 — 930MIz Codificadores- Transmisores UHF HHCS362% Longitud del Codigo Tx, 69 bits, Oseilador sintonizable Modulacién: ASK, FSK Protocolos: PWM, Manchester Rango de Frecuencia. 310 —440MHz, Receptores UHE rARXDO420 Rango de Frecunens: 300 — 930MHz Rango de FL 459KE 12 ~ 21 4MLz Modulacin: ASK. FSK.FM Control de disposi tivos Controladores de visualizador LCD PIC 16C925 PICI8E6390 PICI8E8490 “Memoria de Programa: TK — 16K (OTP. Flash estindar y mejorada) Peniféricos: USART. SPL, PC, CAD. Comparadores, Temporizadores Segmenios posibles: 60 192 Conesidn directa al visualizador Contiol de motores PICI8E2331 PICI8E2431 PICISP4331 PICISF4431 Memoria de Programa: 8K — 16K Flash mejorada Periféricos: CAD de 200 ksps, Tempori- zadores 3816 bity 1N8 bil, 2 Comparado- tes 10 bits, FUSARTT, SP], PC 6 Salidas PWM. Codificador de cuadratura Tabla 2.4 Clasificacién de los dispositivos de Microchip segiin su funcion Capitulo 2. Los microcontroladores PIC de microchip 53 Su juego de instrucciones es compatible con el de la gama baja y esté formado por 35 instrucciones de 14 bits. A diferencia de los de la gama baja admiten interrupciones y po- seen una memoria pila de ocho posiciones que permite el anidamiento de otras tantas sub- rutinas En esta gama se incluye el popular microcontrolador PICI6F84, que posee memoria de programa de tipo FLASH. 2.3.3 Gama alta Los microcontroladores PIC de la gama alta poseen $8 instrucciones de 16 bits y dispo- nen de un sistema de gestion de interrupciones avanzado, También incluyen diversos cir- cuitos controladores de periféricos, puertos de comunicacién serie y paralelo, un multipli- cador hardware de gran velocidad y tienen una elevada capacidad de memoria, que alcanza los 32Koctetos en la memoria de instrucciones y los 902 octetos en la de datos, La caracteristica principal de los elementos de esta gama es su expansibilidad 0 capaci- dad de ampliacion, ya que poseen un ntimero de terminales comprendido entre 40 y 84, a través de los cuales se conectan al exterior las lineas de los buses de datos y direcciones, y las sefiales de control 2.3.4 Gama mejorada En el aiio 2003 Microchip comenzé a comercializar varios microcontroladores de gran potencia y velocidad, con un niimero de terminales comprendido entre 18 y 84 y una me- moria de programa de un maximo de 64Koctetos, Los microcontroladores de esta gama se reservan para aplicaciones que exigen elevadas prestaciones al microcontrolador. 2.3.5 dsPIC (Digital Signal Controllers) En los ultimos anos Microchip se ha adentrado en el campo de los Procesadores Digita- les de Sefales, mediante el desarrollo de una nueva linea de productos que se denominan dsPIC® Se trata de procesadores de arquitectura Harvard que poseen una unidad de control de elevada velocidad de operacién y una unidad operativa cuya arquitectura esta espe mente disefiada para realizar sumas de multiplicaciones en el minimo tiempo posible. Su Introduccion en un iinico circuito integrado permite disefiar sistemas digitales empotrados de clevadas prestaciones En la tabla 2.5 se presenta un resumen de las caracteristicas més sobresalientes de este grupo de dispositivos, asi como su clasificacidn y algunos ejemplos de componentes. 54 Microcontroladores PIC. Sistema integrado para el autoaprendizaje Aplicacion Ejemplo Caracteristicas distintivas de la familia dsPIC30F2010 | Memoria de Prourama: 24K — 144K (Flash) dsPIC30F3010 | Terminales de E/S: 30 - 68 General dsPIC30F3011 | Entre 13 y 16 CAD 12 bits (100 ksps) dsPIC30F6010 | Entre 3 y 5 temporizadores de 16 bits Porifericos de comunicacién: UART. SPI °C. CAN. dsPIC3OF3014 | Memoria de Programa: 12K — 144K (Flash) dsPIC30F4013 | ‘Terminales de E/S: 20 - 68 Control de Motores y dsPIC30FSOI1 | Entre 6 y 16 CAD 10 bits (500 ksps) Conversion de Potencia | dsPIC30F60I1 | Entre 3 y 5 temporizadores de 16 bits dsPIC30F6013 | Salida PWM para cl control de motores dsPIC30F6014 _| Perifericos de comunicacion. UART. SPI, CAN, Tabla 2.5 Clasificacion de los dispositivos dsPIC de Microchip s 2.4 ENCAPSULADOS segiin su funcion, En las figuras 2.1 y 2.2 se muestran los encapsulados de los principales mictocontrola- dores PIC y la denominacién de cada uno de sus terminales, Es importante tener en cuenta esta informacion para programar los PIC. Tam n es imprescindible cuando se diseian zocalos para la adaptacion de las distintas familias de microcontroladores. vo sp» crvosconwvcrxort CALL, RETLW. 10 Pila: Nivel 2 Memoria de instru (Pagina 0) jones bon io Memoria 5 x 3] | aeinstrucciones JOR 00h g (Pagina 0) 8 Memoria ; g IEF § de instrueciones. | 65 5 20h 3 (Pagina 1) : Memiita 3 = de instrueciones. 3h : N (Pagina 1) : Memoria = de instrueeiones. 4] hi" Vector RESET 3FFh 8 (Pagina 2) Memoria de instrucciones (Pagina 3) Vector RESET TEFh Figura 2.4 Memoria de instrucciones de un PIC: a) 2 paginas en la gama baja; b) 4 paginas en la gama baja. Capitulo 2. Los microcontroladores PIC de microchip 59 Si el contador de programa direcciona la tltima posicién de una pagina y su contenido se incrementa, la siguiente instruccién direccionada esta situada en la primera posicion de la pagina siguiente. Si una instruccion de salto hace referencia a una posicién en otra pagi- na, se deben modificar los biestables PAO y PAI del registro de estado ya que, en caso contrario, la referencia se hace a la pagina en la que esta situada la instruccién de salto. El vector de inicializacién (Reset vector) esta situado en la iiltima posicién de la al- tima pagina de la memoria de instrucciones (apartado 2.5.6), por lo que su direccin de- pende del microcontrolador utilizado. Si el microcontrolador tiene 512 posiciones en su memoria de instrucciones, la direccion es la IFFy, si tiene 1024 posiciones es la 3FFy y si tiene 2048 es la 7FFy (Figura 2.4) 2.5.2.2 Memoria de datos Los datos y operandos de las instrucciones son de 8 bits y por ello ese es el tamafio de las posiciones de la memoria de datos y el numero de bits del bus de datos. La capacidad dela memoria de datos varia entre 25 y 73 posiciones y por tanto se direcciona mediante una combinacién binaria que varia entre 5 y 7 bits La memoria de datos se organiza en bancos, cayo mimero maximo es cuatro en los mo- delos de mayor capacidad. El banco 0 tiene un tamaio de 32 posiciones y esta incluido en todos los microcontroladores PIC. El tamaiio de los demas bancos es de 16 posiciones, ya que las 16 posiciones de menos peso son comunes a todos los bancos (si se direccionan las posiciones comprendidas entre la 00h y la OFh de cualquier banco se accede siempre al banco cero). Las posiciones de la memoria de datos implementan registros de aplicacién especifica y de aplicacion general, Las ocho primeras posiciones del banco cero consiituyen los regis- tros de aplicacion especifica o registros especiales [Special Function Registers (S#R)], que se indican en la figura 2.5 y se describen a continuacién Registro INDF El registro INDF ocupa la direccién 00h y no esta accesible directamente. Se utiliza en el direccionamiento indirecto de datos que se describe en el apartado 2.6.23 Registro TMRO (Timer 0) EL registro TMRO esta situado en la direccién O1h y es el registro del temporizador de los microcontroladores de la gama baja, descrito en el apartado 2.5.8. Registro PCL(Program Counter Low) Este registro esta situado en la direceién 02h y contiene los ocho biestables menos signi- ficativos del contador de programa (A0 a A7), que direcciona la memoria de instrucciones. 60 Microcontroladores PIC. Sistema integrado para el autoaprendizaje. 00h INDF Oth rMRO 02h PCL 03h STATUS O4h 05h PORTA 06h PORTB o7h PORTC 08h Registros de propésito general (GPR) IFh Figura 2.5 Registros especiales de los microcontroladores PIC de la gama baja. Regisiro de estado (Status Register) El registro de estado esta situado en la direccion 03h y como su nombre indica, esta formado por un conjunto de ocho biestables (fags) que identifican el estado de! procesa- dor. Dichos biestables, que se indican en la figura 2.6, son los siguientes: ‘A2| PAI | PAO D| Z |DC} Cc Figura 2.6 Registro de estado de los microcontroladores de la gama baja - Elbiestable C (Carry bit) que mediante el nivel uno de su salida indica que se ha producido acarreo al sumar dos octetos y mediante el nivel cero que se ha produ- cido acarreo en la resta. - Elbiestable DC (Digit Carzy bit) que mediante el nivel uno de su salida indica que se ha producido acarreo al sumar los cuatro bits de menor peso (cigito en BCD natural) y mediante el nivel cero que se ha producido acarreo al restarlos. Capitulo 2. Los microcontroladores PIC de microchip 61 = El biestable Z (Zero bit) que mediante el nivel uno de su salida indica que el re- sultado de la operacion es cero. = Elbiestable PD (Power Down bit) que se pone a uno al conectar la alimentacion © al ejecutar la instruceién especial “CTRWDT”, y se pone a cero al ejecutar la ins- truccién especial SLEEP. - Elbiestable TO (Timer Ovt dit) que se pone a uno al conectar la alimentacién 0 al ¢jecutar las instrucciones especiales “CTRWDT” 0 “SLEEP”, y se pone a cero cuando se produce el rebasamiento de la capacidad del temporizador del circuito de vigilancia, ~ Los biestables PAO y PAI que seleccionan Ia pagina de la memoria de programa de los mierocontroladores PIC que tienen mas de una pagina. Son los biestables mas nificativos del contador de programa - El biestable PA2 no se utiliza Es conveniente resaltar que todos los biestables (excepto TO y PD) se pueden poner a cero 0 a uno mediante la ejecucidn de instrucciones de transferencia entre registros y de modificacién del estado de biestables. La combinacién binaria formada por el estado de estos dos biestables, tras una inicializacién, indica la causa que la ha producido (apartado 2.56). Registro FSR (Bile Select Register) El registro FSR. es un regisiro de 8 bits, situado en la direccién O4h, que esti formado solamente por siete biestables. Su bit de mayor peso vale siempre uno. Se utiliza en el di- reccionamiento directo ¢ indirecto. En el direccionamiento directo (apartado 2.6.2.2) sus biestables 6 y 5, denominados RAO y RAL, seleccionan el banco en el que esta contenido el dato. En el direccionamiento indirecto (apariado 2.6.2.3) el registro FSR se utiliza para con- tener la direccion de! dato. Sus cinco biestables menos significativos direccionan el dato y se pueden utilizar también para memorizar eperandos. Los biestables RAO y RAI selec- cionan el banco. Puertos de entrada salida A, By C Las direcciones 05h, OGh y 07h contienen los registros de datos (Data latch) aso- ciados a los puertos de entrada/salida (£/0 ports) A, B y C, que se deseriben en el apar~ tado 2.5.11. En ciertos microcontroladores de la gama baja el puerto C no est implemen- tado y la posicion 07, contiene un registro de aplicacion general Por ser posiciones de la memoria de datos, los puertos se pueden leer y escribir sin ne- cesidad de utilizar instrucciones especificas. 62 Microcontrotadores PIC. Sistema integrado para el autoaprendizaje 2.5.3 Registro de trabajo (W) o acumulador Los microcontroladores PIC poseen un registro de trabajo o acumulador denominado W (Working register), Las transferencias de informacién a este registro se realizan me- diante instrucciones en las que esta seleccionado de forma implicita. 2.5.4 Memoria pila La memoria pila (Stack) también denominada LIFO (Last In First Out) tiene dos posiciones. Al ejecutarse una instruccién de salto a subrutina CALL se almacena en ella el contenido del contador de programa incrementado en una unidad, Dicho contenido se transfiere nuevamente al contador de programa al ejecutarse la instruccién de retorno de subrutina RET Debido a que la memoria pila s6lo posee dos posiciones, no se pueden anidar mas de dos subrutinas en un programa 2.5.5 Circuito generador de impulsos o reloj El generador de impulsos 0 reloj esté integrado en los microcontroladores PIC. Su fre- cuencia maxima es de 20 MHz (periodo de 50 ns), La mayoria de las instrucciones se eje- cutan en cuatro ciclos de reloj, que constituyen el ciclo de instruccién. Debido a la existen- cia de un registro de instruccion (estructura segmentada), la fase de ejecucion de una ins truccién y la de biisqueda de la siguiente instruccién se gecutan simultineamente en un nico ciclo de instruccin, excepto en las de salto, que necesitan dos. Ello es debido a que en éstas la direccion de la siguiente instruccion no se conoce hasta que se completa la eje- cucidn, y la fase de biisqueda se sustituye por una operacién nula. La frecuencia de trabajo del microcontrolador se establece mediante componentes ex- temos. Los microcontroladores de la gama baja poseen dos terminales, OSCI/CLKIN y OSC2/CLKOUT, para conectar dichos componentes, Se pueden utilizar cuatro tipos de osciladores. Cada tipo posee un codigo que se ha de grabar en un registro denominado palabra de configuracién (Configuration word). La palabra de configuracion se escribe durante el proceso de grabacion en la posicién de me- moria reservada OxFFFh, Dicha posicion posee 12 biestables de los que s6lo se utilizan los 4 menos significativos, indicados en la figura 2.7. -- | - |= | CP | WDTE | FOSCI | FOSCO Figura 2.7 Palabra de configuracién de los microcontroladores de la gama baja. La combina 11: Oscilador RC 10: Oscilador de alta velocidad (HS, 8 - 20 MHz) ion de los biestables FOSC1 y FOSCO determina el tipo de oscilador Capitulo 2. Los microcontroladores PIC de microchip 63 01: Oscilador de cuarzo estandar o resonador ceramico (XT, 100 KHz - 4 MHz) 00: Oscilador de cuarzo 0 resonador de bajo consumo (LP, 32 - 200 KHz) El biestable WDTE (Watch Dog Timex Enable bit) es el de desinhibicion del cir- cuito de vigilancia (desinhibido con nivel alto) y el biestable CP (Code Protection bit) es el de proteccién del programa (protegido con nivel alto). 2.5.6 Circuito de inicializacion Los microcontroladores PIC de la gama baja poseen el terminal MCLR (Master ‘1ear) para provocar de forma externa la inicializacién (Reset) del sistema, En la gama baja la inicializacién se puede producir por tres causas. - Al conectarse la alimentacién, mediante el circuito de autoinicializacion denomina- do POR (Power On Reset) = Al poner a cero el terminal MCLR durante el funcionamiento « el estado de reposo del microcontrolador. - Al rebasar su capacidad el temporizador del circuito de vigilancia o WDT (Watch- Dog Timer) Tal como se indica en el apartado 2.5.2.2 las combinaciones de los biestables TO y PD del registro de estado identifican la causa que origind la inicializacion, de acuerdo con la tabla 2.6. Si la inicializacién es debida a la puesta a cero del terminal MCLR durante el funcionamiento normal del microcontrolador, no se modifica el estado de los biestables TO y PD. La instruccién CLRWDT borra los biestables TO y PD ‘0 | Pp | Causa de la iniciatizacion 0 | 0 | Rebasamiento del circuito de vigilancia en estado de reposo 0 | 1 | Rebasamiento del cireuito de vigilancia en funcionamiento normal 1 | 0 | Pucsta acero del terminal MCR en estado de reposo 1 | 1 | Conexién de la alimentacion (POR) = | = | Puesta acero del terminal MCLR en funcionamiento normal Tabla 2.6 Estado de los biestebles TO y PD como resultado de une inicializacién. Al inicializar el microcontrolador, la mayoria de los registros se ponen en un estado de- terminado. Los terminales de los puertos de entrada y salida quedan configurados como entradas y el temporizador del circuito de vigilancia se pone a cero. Ademis, los biestables PAO y PAI del registro de estado se borran y todos los biestables del registro PCL se po- nen a uno. 64 Microcontrotadores PIC. Sistema integrado para el autoaprendizaje La posicién de la primera instruccién que se ejecuta tras una inicializacién, Hamada vec- tor de inivializacién (Reset vectoz), ¢s la tiltima de la ultima pagina de la memoria de instrucciones La forma habitual de redirigir la ejecucion del programa tras una inicializacién es colo- car una instruccion de salto incondicional (GOTO) en el vector de inicializacion, Dado que PAI y PAO estan a cero, dicha instruccién direcciona una posicién de la pagina cero. Si el microcontrolador tiene una memoria de instrucciones de S12 posiciones, el vector de ini- cializacién esta en la direccion LFFh, si tiene 1024 posiciones en Ia 3FFh y si tiene 2048 en la 7FFh 2.5.7 Divisor de frecuencia El divisor de frecuencia (WDT/TMRO PRESCALER de la figura 23) es un contador de capacidad variable que divide la frecuencia de los impulsos aplicados a su entrada por un factor especificado mediante los biestables PSE (Prescaler rate Select bits) PSO, PSI y PS2 del registro especial OPTION (Figura 2.8), cuyo contenido se modifica median- tela eecucién de la instruccién OPTION Figura 2.8 Registro OPTION de los microcontroladores PIC de la gama baja. El divisor se utiliza en combinacién con el temporizador TMRO y el circuito de vigilancia que se describen en sucesivos apartados a continuacion. Tal como se puede cbservar en la figu- ra2.3 los impulsos generades por el circuito de vigilancia WDT se pueden aplicar al divisor de frecuencia (postscaler) o los impulsos generados por éste iiltimo se pueden aplicar al tem- porizador TMRO (prescaler). La seleccion entre uno y otto modo de operacién se realiza asignando al biestable PSA (Prescaler Assignment) del registro OPTION un uno o un cero respectivamente, E! valor del factor por el cual se divide la frecuencia de los impulsos aplicados al divisor de frecuencia (en funcion del estado de los biestables PSE antes citados) es diferente cuando se combina con el TMRO que cuando lo hace con el circuito de vigilancia, tal como se indica en la tabla 2.7 2.5.8 Temporizador/Contador TMRO EL TMRO (Timex 0) es un contador ascendente de ocho biestables que puede fiuncionar como temporizador 0 como contador. Camo contador, cuenta los impulsos que recibe del exterior a través del terminal ‘TOCKI’. Como temporizador, cuenta los impulsos del reloj interno (CLKOUT), Por lo tanto cuando trabaja como temporizador su contenido se inere- Capitulo 2. Los microcontroladores PIC de microchip 65 menta en una unidad en cada ciclo de instruccién cuya frecuencia es la cuarta parte de la frecuencia del reloj Ps2 | Psi | PSO | Factor TMRO | Factor WOT o | o | o 1/2 I ofo fa lid 1/2 o {1 |o Lg 4 ofa fa 1/16 vs 1] o]o 1/32 1/16 1fofa 1/64 rfajo 1/128 1164 rfafa 1/256 1/128 Tabla 2.7 Configuracién del divisor de frecuencia, FI TMRO esta implementado como un registro de aplicacién especifica situado en la po- sicin 1 del banco 0 de la memoria de datos. Dado que este registro funciona como un con- tador ascendente, su contenido se debe inicializar con el niimero de impulsos a contar codi- ficado en complemento a 2 Tal como se indica en el apartado 2.5.7 su capacidad de conteo se puede aumentar, utili- zindolo en combinacion con el divisor de frecuencia, mediante la puesta en estado cero det bicstable PSA del registro OPTION (Figura 28), Ademis, el funcionamiento del TMRO se configura mediante el estado de los biestables TOCS (Timer 0 Clock Source) y TOSE (Timer 0 Signal Edge) del registro OPTION. TMRQ funciona como temporizador cuando el biestable TOCS esta en cero y co- mo contador cuando esta en uno, En este caso cuando el biestable TOSE esta en cero TMRO cuenta los flancos descendentes de los impulsos aplicados al terminal TOCKI y cuando esta en uno los ascendentes, El valor de la temporizacién de TMRO, cuando funciona en modo temporizador, se ex- presa mediante la formula: Temp = 4 * Tose * (256 - TMRO) * Factor de division Por ello, el valor que se debe cargar en el registro TMRO para obtener un determinado valor Temp de temporizacién es: TMR0 = 256 - [Temp /(4 * Tose * Factor de division] En las dos expresiones anteriores, Temp y Tose se expresan en segundos. 66 Microcontrotadores PIC. Sistema integrado para el autoaprendizaje 2.5.9 Circuito de vigilancia El circuito de vigilancia WDT (Watch-Dog Timer) es un contador ascendente de ocho biestables que actiia como temporizador para provocar una inicializacion del sistema cuando se rebasa el valor maximo de su contenido. El circuito de vigilancia se activa (con un uno) y se desactiva (con un cero) mediante el biestable WDIE (Watch-Dog Timer Enable) de la palabra de configuracion (Figura 2.7), El WDT cuenta los impulsos de un generador distinto del oscilador principal. El valor de la temporizacion es de 18 ms pero se puede ampliar mediante el divisor de frecuencia descrito en el apartado 2.5.7. Para ello hay que poner a uno el biestable PSA del registro OPTION (Figura 2.8) y configurar los biestables PSE de acuerdo con la tabla 2.7. El cireuito de vigilancia se utiliza para que el sistema se reinicie automaticamente cuan- do el programa deja de ejecutarse correctamente, Para evitar la reinicializacién durante una ejecucion correcta, se debe poner a cero el circuito de vigilancia antes de que se rebase su valor maximo, Esta operacion se realiza mediante la instruccion CLRWDT. 2.5.10 Estado de bajo consumo Mediante la ejecucién de a instruccién SLEEP los microcontroladores de la gama baja entran en un estado de funcionamiento de bajo consumo. Al ejecutarse esta instruccién el reloj deja de funcionar, los terminales de los puertos de entrada/salida mantienen el estado actual, el TMRO se detiene y se reinicia la temporizacién del circuito de vigilancia. Los biestables TO y PD del registro de estado (Figura 2.6) se ponen a | y a 0 respectivamente. Del estado de bajo consumo se sale al inicializar el microcontrolador mediante la acti- vacion del terminal MCLR o al producirse el rebasamiento del circuito de vigilancia. Al salir del estado de bajo consumo, la ejecucién del programa comienza de nuevo a partir de la posicién de la memoria que contiene el vector de inicializacion (apartado 2.5.5). La ins- truccién SLEEP pone a cero el contador del circuito de vigilancia antes de poner al miero- controlador en estado de bajo consumo porque en caso contratio al finalizar su temporiza- cion se inicializaria el sistema y se vuelve al estado de funcionamiento normal 2.5.11 Puertos de entrada/salida Los microcontroladores PIC de la gama baja poseen tres puertos de E/S (1/0 ports) digitales bidireccionales A, B y C (véase el apartado 1.3.4.1). El puerto A funciona como un registro de E/S en paralelo de 8 biestables y ocupa la po- sicion 5 de la memoria de datos. Sus 4 biestables de mayor peso no existen en realidad (al leer estos biestables del registro se obtienen ceros), y los 4 de menor peso estan asociados con los terminales RAO a RA3 del microcontrolador El puerto B funciona como un registro de E/S en paralelo de 8 biestables y ocupa la po- sicion 6 de la memoria de datos. Todos sus biestables estan accesibles a través de los ter- minales RBO a RB7. Capitulo 2. Los microcontroladores PIC de microchip 67 En los modelos de 28 terminales, el puerto C funciona como un registro de E/S en para- lelo de 8 biestables y ocupa la posicion 7 de la memoria de datos. En el resto de modelos de la gama baja, que no disponen de suficientes terminales, este registro es de aplicacion general Cada puerto esta formado por un registro de datos (Data latch) situado en la memo- ria de datos (apartado 2.2.5.2.2) y un registro de control (TRISA, TRISB y TRISC respec tivamente) que define el sentido de la transferencia (entrada o salida) a través de los termi- nales del puerto correspondiente. Un uno en el biestable i del registro de control TRISX hace que el terminal / correspondiente del puerto X sea un bit de entrada y un cero hace que sea un bit de salida, El estado de los registros IRISX se puede modificar mediante la instruccién TRIS. RD Port Data Bus Yop WR Pont TH : W Reg — es] 10 pin) N Vos ris ¢ Figura 2.9 Circuito de un terminal de un puerto de entrada/salida. En la figura 2.9 se muestra el circuito equivalente de un terminal cualquiera de un puer- to. En ella se puede observar que si el biestable TRIS esta en estado uno, Ia salida de la puerta OR esta en nivel uno y la de Ia puerta AND esté en cero. De esta forma tanto el transistor MOS de canal P como el de canal N estan cortados y el terminal esta configurado como entrada. Si por el conirario el biestable TRIS est en estado cero, se satura el transis- torde canal P si el dato Q=1 y se satura el transistor de canal N si Q=0. En esta situacién el terminal esta configurado como salida 68 Microcontroladores PIC. Sistema integrado para el autoaprendizaje Codificacion: 12 bits ic ms i ‘ ‘. Biestables Sintaxis | Operacion Ciclos | <5 s8utilizados ADDWF fd | Suma los registros W y £ 1 0000 11DF FFFF | C,DC,Z ANDWF fd Realiza una AND entre los regis- 1 0001 01DF FFFF z tros Wy f CLREF Ponte a.cero todos los biestables 1 0000 011F FEFF Zz del registro f CLRW _|Pone a cero todos ls biestables 7 OR OTDO OO. 7 del registro W COMF fd | Complementa el regisuo 1 0010 01DF FFFF z, DECF f,d | Decrementa en uno el registro f 1 0000 11DF FFFF Zz INGF f,d | Incrementa en uno el registro f 1 0010 10DF FFFF | Zz IORWF fd Realiza la funcion OR entre los 1 0001 OODF FFFF Zz registros Wy £ Move fa _ | Trasslicre el contenido del regis- 4 wie TUDE RRE tro Fal registro W Movwe 1 Tansfiere el contenido del regis- |, 0000 001F FFFE - tro W al registro £ Transfiere el contenido del regis- OPTION tro W al registro OPTION 4 0000 0000 0010 - RLF fd [Rota clregistro fala izquierda 1 0014 O1DF FFFF c RRF fd [Rota el registro fala derecha 1 Q01100DF FFFF | = C SUBWF f,d | Resta el registro W al registro [ 1 000010DF FFFF | C,DC,Z SWAPE fa |IMlercambie los cuartetos (nibbles) | 4 oaty HOBR EERE . del registro f Transfiere el contenido del regis- TRIS tro W al registro TRIS 1 0000 0000 OF FF - XORWF fd Realiza la funcion XOR entre los 4 0001 10DF FFFF Zz registros Wy Tabla 2.8 Instrucciones de los PIC de la gama baja que realizan transferencizs y operaciones con registro. Si un terminal acta como entrada, la informacién debe mantenerse en él hasta que sea leida, porque la sefial extema no se memoriza. Si el terminal actiia como salida, su valor permanece invariable en el biestable DATA correspondiente hasta que sea modificado. Durante Ia inicializacion del microcontrolador, todos los biestables de los registros TRIS se ponen a uno, para que las lineas de E/S queden configuradas como entrada. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. 76 Microcontroladores PIC. Sistema integrado para el autoaprendizaje 2.6.4.3 Instrucciones aritméticas ADDWE Sintaxis: Deseripeidn Ejemplo 1: Ejemplo 2: Deseripeién: Ejemplo 1: ADDWE f.d Os f s31,de [Ol] (WW) + (1) > Gostino) Suma el conterido del registro W al contenido del registro f y transfiere el resultado al registro W 0 al registro f, segiin el bit d esté en cero o en uno respectivamente. Modifica el estado de los biestables C, DC y Z. Realicese la suma de los niimeros OOF y Ox10 y almacénese el resultado en el registro W. MOVLW OxOF _; Carga Ja constante ONOF en el registro W MOVWF REG. Transfiere el contenido del registro W al registro REG. MOVLW 0x10; Carga la constants 0x10 en el registro W. ADDWF REG, 0. Suma el contenido del registro W y el contenido de! registre REG + y almacena e! resultado en el regisiro W Después de ejecutar la instrucciones: (W)=ONIF y (REG)=0N0F Realicese le suma de los nlimeros OxOF y Ox10y almacéneseel resultado en el zegistto REG. MOVLW OxOF _; Carga la constante ONO en el registro W, MOVWE REG; Transfiere el contenido de! registro W al registro REG MOVLW 0x10 _ Carga la constante OOF en el registro W ADDWF REG, 1, Suma el contenido del registro W y el contenido del registro REG + almacena el resultado en el regisieo REG Después de ejecutar las instrucciones: (W)=Ox10y (REG)=DxIF DECF fd Os f s31,de [Ol] ()~ 1 = Gestino) Decrementa en una unidad el contenido del regisiro fy transfiere ol resultado al registro W o al registro F, segin el bit d esté en cero 0 en uno respectivamente, Modifica el estado del biestable 7. Decreméntese en una unidad ef nimero ON05 v almacénese el resultado en el registro W. MOVLNW 0x05; Carga la constante 0x05 en el registro W. MOVWE REG _ ; Transfiere el contenido de! registro W al regist REG DEC REG, 0; Decrementa en una unidad el contenido del registro REG y almaceng el resullado en el registro W Después de ejecutar las instruceiones: (W Ik04, (REG)=ON0S y 2=0 Capitulo 2. Los microcontroladores PIC de microchip 7 Ejemplo 2: INCE Sintaxi Operandos: Operacion: Ejemplo 1: Ejemplo 2: Operandos: Operacién: Deseripeién: Ejemplo 1 Dezreméntese en una unidad el nimero Ox01 y almacénese el resultado en el registro REG. MOVLW 0x01; Carga Ta constante O01 en el registro W MOVWE REG _ ; Transfiere el contenido del registro W al registro REG. DECE REG, 1, Decrementa en una unidad el contenido del registro REG y Salmacena el resultado en el registro REG Despues de ejecutar las instrucciones: (W)=0N0L, (REGI=ON00 y Z=1 INCE fd Os f <31.de [0.1] (D+ 1 = Cestino) Inerementa en una unidad el contenido det registro fy transfiere el resultado al registro W © al registro f, segiin el bit d este en cero o en uno respectivamente, Modifica el estado del Diestable Z Increméntese en una unidad el nimero ONS y almavénes 1 resultado en el registro W MOVEW 0x05; Carge la constante 0X05 en el registro W MOVWE REG; Transliere el contenido del registro W al registro REG INCE REG, 0; Incrementa en una unidad el contenido det registro REG y + almacena el resultado en el registro W Después de ejecutar las instru ieciones, ——_(W)=0x06, (REG)=ONUIS y Z=0. Inereméntese en una unidad ef nimero ONEF y alma MOVLW OSPF; Carge la constante OXF en el regisito W MOVWF REG; Transfiere el contenido del registro W al registro REG INCE REG, 1 Incrementa en una unidad el contenido del registro REG y j almacena el resultado en el registro REG énese el resultado en ef registro REG. Despucs de ejecutar las instrucciones| —_ (W)=O8FF, (REG)=0N00 y 7: SUBWF fd O REG. MOVLW 0X05. Carga la constante 0X05 en el registro W SUBWE REG, 1. Al contenido del registro REG le re + almaceng el resullado en el registro REG contenido del regisito W y Después de ejesutar las instrucciones: (W)=0x05, (REG)“OSED y C=0 2.6.4.4 Instrucciones logicas Operaci Deseripeién: Ejemplo: ANDWE. Sintaxis: Operacis Deseripeién ANDLW K OsKs (W) AND K = (Ww) Realiza la funcidn ¥ logics entre el contenido del registro W y la constante K (8 bits) y transfiere el resultado al registro W. Modifica el estado del biestable Z. Realicese la funcion Y logica entre OSA2 y OXED y slmacgnese el resultado en el registro W. MOVLW OXA2_ ; Carga la constante OXA2 en el registro W, ANDLW OxFO_ , Realiza la funeion Y logica enire e! contenitlo del registto W y OxFO y almaveng el resultado en el registro W. Después de ejecutar Ia instruceion: (W)=ONAD. ANDWF fd Os fs3l.de [Ol] (W) AND (1) > (destino) Realiza la funcion Y légica entre el contenido del registro W y el contenido del registro fy transfiere el resultado al registro W o al registro f, segin el bit d esté en cero o en uno res: pectivamente. Modifica el estado del biestable Z. Dérguese el ntimero OxF0 en el registro REG, realicese Ia funcién Y logica entre si conte nido y el nimero Ox1A ¥ almacenese el resitlado en el registro W. MOVLW ONOF Carga la constante OXOF en el MOVWE REG; Transfiere el contenido det registro W al registro REG. MOVLW OXIA. Carga la constante Oxi A en el registro W. ANDWF REG, 0. Realiza la funcioa Y logica entre el contenido del registro W y el del regisiro REG y el resultado lo almacena en el registro W Después de ejecutar Jas instruceiones: (W KOAY (REG)=Ox0H aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 2. Los microcontroladores PIC de microchip 109 La finalizacién de la operacién de escriture de la memoria EEPROM puede generar una interrupcion. 2.9.5 Dispositivos periféricos El comportamiento del temporizador TMRO, del circuito de vigilancia y del circuito del estado de bajo consumo del microcontrolador PIC16F84 es idéntico al de los demas micro- controladores PIC de la gama media, descritos en los apartados 2.7.9, 2.7.10 y 2.7.11 res- pectivamente. Por ello, a continuacién se describen solamente las caracteristicas particula~ res del circuito de inicializacidn y de los puertos de entrada/salida 2.9.5.1 Circuito de inicializacion Las causas de la inicializacion del PIC 16F84, que coinciden con las de los microcontro- ladores de la gama baja, son la conexién de la alimentacion, la activacion del terminal MELR y el rebasamiento del temporizador del circuito de vigilancia. La combinacién bina- ria formada por el estado de los biestables TO y PD del registro de estado indica la causa de la inicializacién, tal como se indica en la tabla 2.22. EI microcontrolador PIC I6F84 no esté provisto de un circuito BOR, lo que hace que se ten- ‘ga que utilizar un circuito externo para inicializarlo cuando se produce una caida de tension TO | PD | Causa de la inicializacion 0 | 0 | Rebasamiento del cireuito de vigilancia (Hat chdog) en estado de reposo 0 | 1 | Rebasamiento del cireuito de vigilancia (Iva tchdog) en funcionamiento normal 1] 0 | Activacion del terminal MCLE en estado de reposo 1 | 1 | Conexion de la alimentacion (POR) = | = | Activacion del terminal MCLR en funcionamiento normal Tabla 2.22 Estado de los biestables TO y PD tras una inicializacion del PIC16F84. 2.9.5.2 Puertos de entrada/salida El PICI6F84 dispone de dos puertos de E/S. El puerto A (direccién 0Sh del banco 0) posee cinco terminales, RAO a RA4, El terminal RA4 puede actuar como terminal de E/S 0 como terminal de entrada (TOCK1) de los impulsos de contaje del TMRO, Fl puerto B (di- reccion Oh del banco 0) tiene ocho terminales, RBO a RB7. El terminal RBO puede actuar como terminal de entrada/salida o entrada de una interrupcién externa (INT) Tal como se indica en el apartado 2.7.12, cada terminal de entrada/salida se configura individualmente como entrada 0 salida, poniendo a | o a 0 respectivamente los biestables de los registros TRISA y TRISB (direcciones 85h y 86h del banco 1) de configuracion de los puertos A y B respectivamente. Al inicializar el microcontrolador. todos los biestables 110 Nicrocontroladores PIC. Sistema integrado para el autoaprendizaje de los registros TRIS se ponen a uno, lo que hace que los terminales queden configurados como entrada, Ademas, en el puerto B, las resistencias de carga (pul i-up) tienen un valor muy elevado. Cuando los cuatro terminales de mayor peso del puerto B, RB7 a RB4, estan configura- dos como entrada su cambio de nivel logico puede generar una interrupcion. Durante la operacién de grabacién en serie de la memoria FLASH de programa, el ter- minal RBO se utiliza como entrada de la sefial dereloj_y el RB7 como entrada de datos, 2.9.6 Interrupciones Al igual que en los demas microcontroladores PIC de la gama media, el vector de inte- rupcién esta situado en la direccién 04h de la memoria de programa. En general, en dicha posicién se coloca una instruccién de salto incandicional a la zona de programa que con- tiene la subrutina de atenci6n a la interrupcion. Como el vector de interrupcion es tinico, al principio de la subrutina de atencién a la interrupcién se deben consultar uno a uno los biestables de peticion de interrupcién para identificar cual es Ia causa de la interrupcién. E! biestable correspondiente a la interrupcién aceptada debe ser borrado por programa una vez atendida la misma. Mientras se atiende una interrupcion, se inhiben las demas fuentes, de intermupcién porque se pone a cero automaticamente el biestable GIE de inhibicion global de las interrupciones situado en el registro INTCON. La instruccién de retarno de interrupcion (RETFIE) desinhibe las interrupciones porque pone a uno el biestable GIE. El PICL6F84 posze cuatro fuentes de interrupeidn: - Activacién del terminal RBO/INT. - Rebasamiento del temporizador TMRO. = Cambio de estado de alguno de los terminales RB7 a RB4 del puerto B. - Finalizacién de la escritura en Ia memoria EEPROM de datos, El registro INTCON contiene los biestables que inhiben o desinhiben individualmente cada fuente de interrupeidn y los biestables de peticidn de interrupeién correspondientes, que se indican en la figura 2.20 Giz | BEIE | TOIE | INTE | RBIE | TOIF | INTF | RBIF Figura 2.20 Registro INTCON del microcontrolador PIC16F84. Como el PICI6F84 sélo pose cuatro fuentes de interrupcidn, carece de los registros PIE y PIR, Por ello el registro INTCON coincide con el de los microcontroladores de la gama media (Figura 2.14) excepto en el biestable PEIE que es sustituido por el biestable EEIE (EEPROM Interrupt Enable bit) de desinhibicion de la peticion de internup- cion al finalizar la operacion de escritura de la memoria EEPROM de datos. El bi Capitulo 2. Los microcontroladores PIC de microchip 14 EEIF (EEPROM Interrupt Flag bit) de peticion de interrupcion al finalizar la escri- tura de la memoria EEPROM de datos esta situado en el registro EECONI (Figura 2.19). 2.9.7 Encapsulado y hardware minimo 2.9.7.1 Encapsulado EI microcontrolador PIC16F84 posee 18 terminales y esta fabricado en tecnologia CMOS, por lo que su consumo es muy reducido (2 mA a 4MHz), En la figura 2.21 se muestra el en- capsulado y la denominacién de sus terminales, cuya funcidn se indica en la tabla 2.23 RA2 RAI RAB RAO RAAITOCK1 x OSC1/CLKIN ‘WLR fe OSC2/CLKOUT Ves cS Yoo RBO/INT iS} RB7 RBI & RBE RB2 RBS RB3 RB4 Figura 2.21 Encapsulado del PIC16F84, Para llevar a cabo la programacion en serie del PIC 16F84 se utilizan cinco terminals. - El terminal Vdd al que se aplica el positivo dela fuente de alimentaci6n = Elterminal Vss al que se aplica el negative de la fuente de alimentacién - Elterminal MCLR al que se aplica la tension especial de programacién Vpp. = El terminal RBG al que se aplican los impulsos del reloj de transmisién. - El terminal RB7 al que se aplica en formato serie la informacién a grabar. El microcontrolador se pone en estado de programacién al poner a nivel bajo los termi- nales RBG y RB7y aplicar la tension de programacién Vpp (de 12 a 14 voltios) al terminal MEER. A partir de ese instante los impulsos de reloj se aplican a RB7 y la informacién a grabar a RBG 2.9.7.2 Hardware minimo Para alimentar el PIC 16F84 y los circuitos conectados a él se suele utilizar una fuente imeniacién de SV y el cireuito de reloj externo suele ser de tipo XT (cristal de cuar- de aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. 128 Nicrocontroladores PIC. Sistema integrado para el autoaprendizaje toed echo Aeranenar Ave Go| 3) D1] Gl Hl RI Programa + 30a0 Hekeris de pros: Pic: 16F84A Estado: ACTVO feet cero Heramertss Aud | c3| DF] Be RP Ral iM) Figura 3.8 Barra de herramientas y ment de la interfaz de usuario de TFPROG. En la tabla 3.1 se describen las operaciones que se pueden realizar con el programa ‘TFPROG. En la zona inferior de la interfaz de usuario (Figura 3.7) se pueden observar tres ventanas - Ventana “Programa” (superior izquierda) Si se ejecuta la accion “Abrir archivo”, en esta ventana se muestra el programa en lenguaje maquina transferible a la memoria del microcontrolador. $i se gjecuta la accién “Leer la memoria del PIC”, en esta ventana se muestra el contenido de la memoria de programa de! microcontrolador. Capitulo 3. Herramientas hardware y software de disefo asistido por computador 129 ‘ Orden del Combinacion 5 Accién Boton | ond de teclas | Funcion Carga en la memoria de TFPROG un ar- ; chivo en formato Intel-HEX para su poste- a4 controlador colocado ea uno de los récalos de la plac. Guarda la informaeién almacenada en la memoria de TFPROG (dates y programs Guardar fa) | Archivo cuss | et Jenguaje maquina) en formato Intel- archivo, Guardar ‘ HEX, en cualquiera de los tipos de memo- ria ausiliar (disco duro, diseo extraibe, ete.) del computador. icibarme- Transfiere la informacion almacenada en la ‘ Herramientas- memoria de TFPROG a la memoria del moria del e Grabar PIC mierocontrolador colocado en uno de los ss zocalos dela placa Lee el contenido de la memoria del micro- vo tame | 56 | serramient conttlader colocado en uno de los zbealos moria dal siesta : elapse lo todo on lk eed oe" PIC SE | Leer Fic rrespondiente de la interfaz de usuario de TPPROG Verifica que el contenido de las memorias Ventiear a Herramientas- de programa y de coniguracion del micro- ‘memoria de! PIC Verificar Prox grama contraladar colacada en tino de los zéealos de la placa coincida con la informacién almacenada en la memoria de TFPROG. Bomar la ‘memoria de! Herramient Borrael contenido de la memona del mi- crocontrolador coloead en uno de los zocalos de la placa Esta opeién sélo se PIC Berra PIC activa para los modelos de mierocontrola- dor que posean memoria de tipo FLASH Verificar el " Herramientas- Verifica que ls memoria del microcontro- borrade de la memoria de! PIC \Verifiear Borsa do lador colocado en uno de les 26ealos de la placa esté borrada, Salir ne e ® Archivo-Salir Cul+E Finaliza 1a ejecucion del programa TEPROG, Tabla 3.1 Funcién de las drdenes del programa TFPROG. - Ventana “Configuracién” (superior derecha) Si se ejecuta la accién “Abrir archivo”, en esta ventana se muestran los datos trans- feribles ala memoria de configuracién del microcontrolador. Si se ejecuta la accion “Leer la memoria del PIC”, en esta ventana se muestra el contenido de la memoria de configuracién del microcontrolador. 130 Nicrocontroladores PIC. Sistema integrado para el autoaprendizaje - Ventana “Resultados” (inferior) Muesira los mensajes generados después de haber realizado alguna de las operacio- nes propias de la herramienta TFPROG. La primera operacién que realiza el programa TEPROG es la verificacion de la conexién entre la placa SiDePIC-USB y el computador. Si la placa esta conectada y funciona correc- tamente, se muestra el mensaje “ACTIVO” en color verde intenso en la zona inferior iz- quierda de la interfaz de usuario. A continuacion, TFPROG comprueba el modelo de micro- controlador que esta colocado en uno de los zécalos de la placa. Una vez reconocido el mi- crocontrolador, se visualiza la identificacién en la zona inferior izquierda de la interfaz de usuario y se ajustan los parametros para la grabacion y la lectura de ja memoria del mismo. Si se produce algin error en 1a comunicacién entre la placa SiDePIC-USB y el compu- tador, se muestra un mensaje de advertencia al usuario junto al mensaje “INACTIVO”, en color rojo intenso, en la zona inferior izquierda de la interfaz. de usuario BIBLIOGRAFIA [MAND 03a] E. Mandado, J. Alvarez, M.D. Valdés. “Dispositivos logicos programables y sus aplicaciones” Capitulo 5. Editorial Thomson Learning Paraninfo. 2003 [MAND 036] E. Mandado, F. J. Fernandez, M. Doiro. “La innovacion tecnoldgica en las organizaciones” Capitulo 7, Editorial Thomson Leaming Paraninfo, 2003. [PRED 98] _ M. Predko. “Handbook of Microcontrollers” Mc Graw-Hill, 1998. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. 140 Nicrocontroladores PIC. Sistema integrado para el autoaprendizaje JPt FEZ Vee pay ROO o« RBO_P Figura 4.10 Circuito del micropulsador del sistema SiDePIC-USB. Vieuaizadores 7 segmentes Diodes luminiscentes (LED) Figura 4.11 Periféricos de salida en paralelo de SiDe?IC-USB. Los microinterruptores | y 2 de MII controlan la barra de diodos Iuminiscentes y el conjunto de los tres visualizadores de 7 segmentos, respectivamente. Cada uno de los mi- crointerruptores activa el periférico en la posicién superior y lo desactiva en la inferior. Diodos luminiscentes (D6 - D13) Consta de ocho diodos laminiscentes conectados al puerto B del PIC a través de una de las resistencias del grupo R28- R35 (Figura 4.12). Los terminales RBO a RB7 estan unidos a los diodos D6 a DI3 (Tabla 4.3), de los que el D13 es el que esta situado en el extremo derecho del grupo. Para utilizar el diodo D13 con el terminal RBO/INT, el puente JP1 (Figura 4.10) debe esiar colocado entre sus terminales 2 y 3 (los situados a la izquierda en la fotografia de SiDePIC-USB de la figura 4.1). La conexion de los terminales RB6 y RB7 se realiza a tra- vés del multiplexor/demultiplexor dado que dichos terminales, ademés de poder funcionar como entrada/salida, se utilizan durante la programacién del PIC como entrada de datos y de la sefial de reloj, respectivamente (apartado 4.2.5.2) Capitulo 4. Sistema electrénico SiDePIC-USB 141 ap Para activar un determinado diodo se debe poner a puerto B el terminal correspondiente del rd [eee ‘cron Hoe Figura 4.12 Circuito de los periféricos visualizadores del sistema SiDePIC-USB. Terminal del PIC Diodo RBO (a través del puente JP1) DI3 RBI DI2 RB2 DIL RBS Dio RB4 D9 RBS ps RBB6 (a través del multiplevor/demaltiplexor) | D7 RB? (a través del multiplexor/demultiplexor) | D6 Tabla 4.3 Correspondencias entre los diodos luminiscentes y los terminales del PIC. 142 Nicrocontroladores PIC. Sistema integrado para el autoaprendizaje Visualizadores de 7 segmentos (U10, U11 y U12) Estan constituidos por tres elementos visualizadores (displays) de 7 segmentos (Figu- ra 4.13), cada uno de los cuales esta formado por 7 diodos luminiscentes cuyos anodos estan conectados entre si @ un terminal comin. Tal como se indica en la figura 4.12, el anodo de cada visualizador esta conectado a un transistor BC817 (Q2, Q3 y Q4) que actita como interruptor controlado mediante un terminal del puerto A, Los cétodos correspon- dientes al mismo segmento de cada visualizador se conectan entre si y estan controlados por un terminal del puerto B. Las resistencias del grupo R20 - R27 limitan la corriente que circula por los diodos luminiscentes, 5 i, _f. am’ @ Figura 4.13 Segmentos del visualizador. Los segmentos se activan mediante el nivel bajo (“0” ligico) y su correspondencia con los terminales del puerto B del PIC se indica en la tabla 4.4, Al igual que sucede en el caso de los diodos luminiscentes, descritos en el apartado anterior, el terminal RBO se conecta a través del puente conmutador JP (Figura 4,10), debido a que éste terminal es la entrada de interrupcidn externa y se utiliza también en combinacién con el pulsador PB2 tal como se indica en el apartado 42.6.4. Para utilizar el terminal RBO con el visualizador, el puente JPI debe estar colocado entre sus terminales 2 y 3 (los situados a la izquierdaen la fotogra- fia de SiDePIC-USB de la figura 4.1). La conexién de los terminales RB6 y RB7 se realiza también a través del multiplexoridemultiplexor dado que dichos terminales, ademas de poder funcionar como entrada/salida, se utilizan durante la programacion del PIC como entrada de datos y de la seital de reloj respectivamente (apartado 4.2.5.2) Terminal del PIC Segmento RIBO (a haves del puente PD a RBI b RB2 é RBS d RBA e RBS r RDS (a raves del multiplexordemuliplexop |e RB? (a waves del multipkexordemultiplexor) | __ punto Tabla 4.4 Correspondencia entre segmentos del visualizador y terminales det PIC. Capitulo 4. Sistema electrénico SiDePIC-USB 143 Tal como se indica en la tabla 4.5, los terminales RAO, RAI y RA2 del puerto A contro- lan los visualizadores U8, U9 y U10, a través de los transistores BC817. Ademas, estos terminales estan conectados a los conmutadores $6, $7 y S8 (apartado 4.2.6.2), Por ello el control de la visualizacion se puede realizar de dos formas: - Colocando cada uno de los conmutadores $6, $7 y $8 en su posicién superior o in- ferior para asignar a los terminales RAO, RAL y RA2 los niveles Vpp 0 masa res- peetivamente, De esta forma cualquier informacion binaria contenida en el puerto B de] PIC se puede visualizar en cualquiera de los tres visualizadores. Por ejemplo, para visualizar el digito 7 solamente en el visualizador U9 se debe 1. Configurar el puerto B como puerto de salida y activar la combinacién de seg ‘mentos adecuada, que en este caso se logra poniendo a “0” los terminales RBO, RB1y RB2,y a“1” RB3, RB4, RBS, RBO y RB7. 2. Colocar los conmutadores $6 y $8 en su posicidn inferior y el conmutador S7 en su posicién superior - Colocando los conmutadores en su posicidn central (al aire) y proporcionando por programa los valores adecuados en los terminales RA2, RAL y RAO. Por ejemplo, para visuslizar el digito 7 solamente en el visualizador U9, igual que en el ejemplo anterior, se debe 1. Configurar el puerto B_ como puerto de salida y poner a “0” los terminales RBO, RBI y RB2, ya “1” RB3, RB4, RBS, RB6 y RB. 2. Colocar los conmutadores $6, S7 y S8 en su posicion central, configurar el puerto A como puerto de salida y poner a uno por programa el terminal del puerto A correspondiente al visualizador U9. En este caso, se debe poner un “1” en RAL y un “O” en RAO y RAZ. Terminal del PIC Visualizador RAO ug RAL u9 RA? (a uaves del puente SW8) ul0 Tabla 4.5 Terminales del puerto 4 que controlan los visualizadores. Las dos opciones descritas anteriormente estin implementadas en el ejercicio 5.3.2 del capitulo 5. Ademés, dado que, tal coma se indica anteriormente, los segmentas de los tres visuali- zadores estan conectados entre si y a los terminales del puerto B (PORTB) a través del conjunto de resistencias R20 - R27, si se asigna el valor | aRAO, RAI y RA3, se visualiza el mismo digito en los tres, Para visualizar una combinacion de tres digitos diferentes es necesario realizar una multiplexacién temporal por programa (ejercicio 5.3.4, capitulo 5) aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. 146 Nicrocontroladores PIC. Sistema integrado para el autoaprendizaje Figura 4.16 Fotografia de los conectores de expansién J3y Jé de SiDePIC-USB. 4.2.8 Puentes de configuracién de los puertos Tal como se indica en el capitulo 2, algunos de los terminales de los puertos de los dife- rentes microcontroladores PIC tienen otras funciones ademas de la de entrada/salida. Por ello para proporcionar al usuario de SiDePIC-USB la posibilidad de utilizar la placa en diferentes tipos de aplicaciones, se ha colocado un conjunto de puentes interrupiores y conmutadores que se representan en la figura 4.17 y se describen a continua 4.2.8.1 Puente conmutador JP1 Dado que el terminal RBO del puerto B de los microcontroladores PIC es el terminal de en- trada INT de interrupcién extema, se precisa un puente para seleccionar su funcionamiento como entrada de interrupcién y como terminal de salida. Si el puente est colocado entre los terminales | y 2 (los situados a la derecha en la fotografia de SiDePIC-USB de la figura 4.1), el PIC puede recibir flancos generados por el pulsador (apartado 4.2.6.4) 0 a traves del conector BB. Si por el contrario esta colocado entre los terminales 2 y 3 (los situados a la izquierda), se utiliza como terminal de salida que controla uno de los segmentos de los visualizadores (el sezmento a) y el diodo luminiscente D6, descritos en el apartado 4.2.6.5, 4.2.8.2 Puente conmutador JPZ Dado que el terminal RAS del puerto A de los microcontroladores PICLOF873 y PICI6F876 es uno de los terminales de entrada de tensién analégica para el convertidor analdgicoldigital, se precisa de un puente para desconectarlo del potenciémetro R11 que proporciona la tensién analogica a dicho terminal. $i el puente est colocado entre los ter- minales 1 y 2 (los situados a la derecha en la fotografia de SiDePIC-USB de la figura 4.1), el terminal RAS esti conectado al conmutador $5. Si por el contrario esta colocado entre los terminales 2 y 3 (os situados a la izquierda), el terminal RAS recibe la tension propor- cionada por el potenciémetro R11 Capitulo 4. Sistema electrénico SiDePIC-USB 147 Figura 4.17 Fotografia de los puentes de configuracién de los puertos. 4.2.8.3 Puente interruptor JP3 Dado que el terminal RA4 del puerto A de los microcontroladores PIC es el terminal de entrada TOCKI de impulsos del temporizador TMRO cuando trabaja en modo contador, se precise un puente para desconectarlo del conmutador al que esta asociado como terminal de entrada a fin de poder utilizar la entrada TOCKI no sdlo con los conmutadores sino con otra finalidad. De esta forma si el puente interruptor JP3 esta colocado, el terminal RA4/TOCK I es la entrada del estado del conmutador $4 (apartado 4.2.6.3) y si se extrac el puente, el terminal queda disponible a través del conector de expansion J3 4.2.8.4 Puentes interruptores JP4 y JP5 Los terminales RA2 y RA3 del puerto A son, en los modelos PIC16F873 y PICI6F876. terminales de entrada de una tension analogica externa (Verr) negativa y positive respecti- vamente. Por ello es necesario un puente para seleccionar su funcionamiento como termi- nales de entrada de tension exierna a través del conector de expansion J3 (sin puente) 0 como terminales de entrada del esiado de los conmutadores $6 y $5 (puentes colocades), descritos en el apartado 4.2.6.3 4.3, PERIFERICOS EXTERNOS Para ampliar la capacidad de entrada/salida de la placa SiDePIC-USB y facilitar la im- plementacion rapida del prototipo de cualquier sistema electronico de control basado en ella, se dispone de un conjunto de placas de interfaz que acoplan SiDePIC-USB a sensores y actuadores, asi como a dispositivos de entrada y visualizacion de datos. Dichas placas se conectan a SiDePIC-USB a través de los conectores de expansion J3 y J4, descritos en el apartado 4.2.7 148 Nicrocontroladores PIC. Sistema integrado para el autoaprendizaje 4.3.1 Placa de entrada y visualizacion de datos Esta placa contiene un teclado matricial de 16 teclas y un médulo visualizador alfanu- mérico de cristal liquido (LCD Medtse), que se describen en sucesivos apartados 4.3.1.1 Teclado matricial Un teclado, que es el periférico mas utilizado actualmente para proporcionar datos y dar érdenes a un procesador digital, esti formado por un conjunto de pulsadores de los que, en general, sdlo se acciona uno en cada instante, Esto hace que se deba realizar un proceso de conversién de la informacion para almacenarla en un c6digo binario numérico (binario natural 0 BCD natural) o alfanumérico (ASCII) Cuando el numero de teclas de un teclado es pequefto (inferior a 16), éstas se pueden conectar al procesador de forma independiente, es decir, mediante un terminal para cada tecla. Pero cuando dicho nimero es elevado, camo por ejemplo en el caso de un teclado alfanumérico, esta forma de conexién es imposible y se hace necesario conectar las teclas mediante una matriz de hilos conductores tal como se indica en la figura 4.18a para el caso de 16 teclas eo ‘ & A a) b) Figura 4.18 Teclado matricial de 4x4 teclas: a) Conexién de las teclas; b) Fotografia del teclado, La lectura de las teclas de un teclado matricial se realiza activando (aplicando o quitan- do tensién) secuencialmente las filas 0 1as columnas de 1a matriz de hilos conductores. Si este proceso, que recibe el nombre de exploracién, se hace por filas, se deben observar secuencialmente todas las columnas durante el tiempo en que cada fila esta activada, La activacién de alguna columna indica que ha sido accionada la tecla situada entre la fila y la columna correspondiente, La exploracién debe realizarse a una frecuencia tal que sea prac- ticamente imposible que dos teclas se puedan accionar de forma consecutiva en un solo cielo de exploracién, porque en este caso la segunda no seria detectada Capitulo 4. Sistema electrénico SiDePIC-USB 149 La exploracion se puede llevar a cabo de dos formas: - Mediante un sistema electronico, es decir mediante un circuito fisico ("hardware") que se encarga de realizar la exploracién del teclado y de proporcionar al procesa~ dor el cédigo correspondiente @ la tecla pulsada, Esta forma de exploracién se utili- za en aquellos casos en los que se desea descargar de ambas tareas al procesador. - Mediante una secuencia de acciones, es decir, mediante un programa ("software"), Esta secuencia es ejecutada por el procesador al que se acopla el teclado, a través de un puerto de salida y otro de entrada (Figura 4.19). Una vez detectada la pulsacion de una tecla, el procesador tiene que generar el c6digo binario correspondiente Esta forma de exploracién se caracteriza por utilizar el sistema fisico ("hardware") més sencillo posible, pero slo se puede emplear cuando la tarea principal del pro- cesador es sencilla y le deja tiempo disponible para explorar el teclado. Un ejemplo practico tipico es el del teclado de un aparato de microondas controlado mediante un microcontrolador, que debe esperar las Ordenes introducidas por el usuario me- diante el teclado. En el teclado utilizado, las filas se designan con las letras A a la D de arriba hacia abajo y las columnas con los ntimeros 1 al 4 de izquierda a derecha, tal como se muestra en la figura 4,2la, El microcontrolador colocado en uno de los zécalos de la placa SiDePIC- USB realiza el barrido de las filas a través de los terminales 0 2 3 de! puerto B y la lectura de las columnas a través de los terminales 4 a7 del mismo puerto. En el eercicio 7.12 se desarrolla, en lengugje C, el programa que debe ejecutar el micro- controlador PIC para recibir informacion a través del teclado representado en la figura 4.18, 4.3.1.2 Médulo visualizador alfanumérico de cristal liquido Este periférico, cuyo esquema de bloques se representa en la figura 4.20, consta de un visualizador de cristal liquido, conocido como LCD (Liquid Crystal Display). Di- cho visualizador contiene un microcontrolador de aplicacién especifica y esté retroilumi- nado mediante diodos luminiscentes. Sus hojas de caracteristicas se incluyen en el disco compacto adjunte. El microcontrolador de aplicacion especifica posee: - Una memoria activa de acceso aleatorio DDRAM (Display Data RAM) en la que el procesador extemo (en nuestro caso el microcontrolador PIC colocado en uno de los z6calos de la placa) escribe los caracteres que se tienen que visualizar - Una memoria pasiva CGROM (Characters Generator ROM) que convierte los caracteres ASCII en el cédigo de 5x8 6 5x11 puntos utilizado por el visualiza- dor de cristal liquido. 150 Microcontroladores PIC. Sistema integrado para el autoaprendizaje Teclado matricial ba 4 6 a 4 (+ bt be he he |b |b }a [4 bs [4 Puerto de salida Puerto de entrada“ 4 Figura 4.19 Acoplamiento de un teclado matricial al micracontrolador colocado en uno de los zécalos de la placa SiDePIC-USB. SEG 41-80 igura 4.20 Esquema de bloques de médulo visualizador de cristal liquido. - Una memoria activa de acceso aleatorio CGRAM (Characters Generator RAM) que almacena el c6digo de 5x8 puntos de 8 caracteres programables por el usuario. Copyrighted material aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 4. Sistema electrénico SiDePIC-USB 163 Figura 4.31 Fotografia de la placa de interfaz de entrada de variables analogicas (Cortesia de Noventia Ingenieros, S.L.). 4.4, NORMAS DE INSTALACION El sistema SiDePIC-USB consta de los siguientes elementos: - La placa de desarrollo de sistemas electrénicos basados en los microcontroladores PIC descrita en los apartados anteriores. = Unalimentador que convierte de 220 V de tensién alterna a 9 V de tensién continua o alterna. - Uncable para conectar le placa al puerto USB del computador personal. - El software TFPROG para la grabacién del programa en el PIC colocado en el zécalo. 4.4.1 Colocacién de los puentes y otros elementos Para que la placa funcione con los periféricos internos es necesario que los puentes in- teruptores y conmutadores estén colocados correctamente. Compruébese que los puentes JP1 y JP2 estan colocados entre los dos terminales situados a la derecha en la fotografia de SiDePIC-USB de la figura 4.20, y que los puentes JP3, JP4 y JPS estan colocados. Los puentes interruptores JP6 y JP7 que se encuentran en La parte inferior izquierda de la placa, proximos al conector DB9, deben estar colocados si se va a utilizar el procesador de comunicaciones del microcontrolador colocado en uno de los 2écalos de la placa. Los microinterruptores MII de la parte superior derecha de la placa (Figuras 4.1 y 44) deben estar en su posicién superior si se necesita visualizar alguna informacién en los peri- féricos comrespondientes. 164 Nicrocontroladores PIC. Sistema integrado para el autoaprendizaje Terminal | Conector CN1 | Conector CN3 2 Il Vas = 2 ADO : 3 ADI : 4 AD2 . 5 AD3 SELECT 6 AD4 : 7 ADS SCK 8 ADG : 9 ADT SDI 10 Masa : ul - spo 7 : Masa 19 = Masa 23 - Vee Tabla 4.12 Funcidn de los tetminales de los conectores CN1 y CN3 de la placa de interfaz de variables de entrada analégicas. Sélo puede haber un microcontrolador colocado en la placa porque en caso contrario se destruye alguno. Se recomienda al usuario que inserte el PIC con el sistema desconectado de la fuente de alimentacion. La muesca del circuito integrado debe quedar situada proxi- ma al conector J3. 4.4.2 Alimentacion Una vez efeciuadas las comprobaciones indicades en el apartado anterior, la placa esta en condiciones de ser alimentada. Enchufese el alimentadar al conector J2 situado en Ia parte superior de la placa, A con- tinuacién conéctese el alimentador a la red de 220 V de alterna. En este instante se debe iluminar el diodo luminiscente D4 de color verde situado en la parte superior izquierda de SiDePIC-USB, proximo a J2. Si dicho diodo no se ilumina, es sintoma de averia El diodo luminiscente rojo DS, situado a la derecha del PIC 16C745 (ver la fotografia de la figura 4.22) indica programacién o lectura. Cuando esti iluminado indica que se esta efectuando una operacién de grabacion o lectura de la memoria del microcontrolador co- nectado en uno de los zocalos de la placa Capitulo 4. Sistema electrénico SiDePIC-USB 165 4.4.3 Conexion al computador personal y programacién del PIC Conéctese el cable USB suministrado, a uno de los puertos USB del computador perso- nal y al conector USB (JI) de la parte izquierda de SiDePIC-USB. Para que se establezca la comunicacién entre la placa SiDePIC-USB y el ordenador hay que instalar un controlador de dispositiv (driver) en este ultimo. En el disco compacto adjunto se proporciona el archivo HIDCOMM.EXE que constituye e! controlador de dis- positivo para los sistemas operativos Windows 2000/NT/XP. Una vez instalado el controlador antes mencionado, la placa ya esta lista para su utiliza- cin. A continuacién, se debe instalar el programa TFPROG para grabar la memoria del PIC, La forma de utilizarlo se describe en el apartado 3.3.2.2 del capitulo 3 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. 168 Nicrocontroladores PIC. Sistema integrado para el autoaprendizaje Seleccionar el microcontrolador PIC que va a ejecutar el programa Mediante la orden LIST se especifica el modelo de microcontrolador PIC que va a ejecutar el programa. Como en todas las practicas se utiliza el PICI6F84A, la orden a utilizar es rea y por ello nose incluye en el listado del programa de cada ejercicio Incluir ficheros externos Las funciones mas utilizadas @ lo largo del programa se suelen implementar como subrutinas en ficheros externos (se utiliza Ia extensién inc) que se incorporan al programa a través de la orden INCLUDE. Por ejemplo: INCLUDE “multiplicacion.ine" Mediante la orden INCLUDE se incluyen también los archivos de definicién de las palabras reservadas que utiliza el ensamblador de Microchip, como por ejemplo los nombres asignados a los diferentes registros del microcontrolador (STATUS, CONFIG_REG, PORTA, etc.) asi como determinados biestables (Z, GIE, RD, etc.) que forman parte de ellos. Par ejemplo, si se utiliza el microcontrolador PIC16F84, se debe incluir en el pro- grama la orden INCLUDE “pisre4 inc La utilizacion de esta orden hace que no haya que conocer la direccién de los regis- tos y la posicion de los biestables en ellos (aunque hay que conocer el banco en el que estan situados), Como en todas las practicas de este capitulo se utiliza el microcontrolador PIC16F84, esta orden no se incluye en el listado del programa de cada ejercicio. Establecer el valor adecuado de la palabra de configuracion Mediante la orden _ CONFIG se especifica el valor que se asigna a la palabra de configuracién durante el proceso de grabacién. En general, y salvo indicacién ex- presa, se utiliza el microcoatrolador sin proteccion del programa y con los circuitos de vigilancia y de retardo del circuito de autoinicializacién POR desactivados. El generador de impulsos empleado en el sistema SiDePIC-USB esta realizado con un cristal de cuarzo (XT). Teniendo en cuenta todo ello, el valor de la palabra de con- figuracién es h’3FF1” (Véase la palabra de configuracién en el apartado 2.9.7.2 del capitulo 2), Por lo tanto la orden que se debe utilizar es CONFIG’ 35FL Esta orden sélo se incluye en el listado del programa de cada gjercicio si el valor a utilizar es diferente. Capitulo 5. Practicas de microcontroladores PIC en tenguaje ensamblador 169 El efecto de las demas drdenes incluidas en los programas se explica brevemente a me- dida que se utilizan en los ejercicios. Dichas drdenes se describen en el apartado 3.3.2.1 y se detallan en la documentacion de la herramienta MPLAB. En la gecucidn de los programas en la placa SiDePIC-USB, se supone que todos los puentes (Jumpers, y otros elementos, estan situados inicialmente tal y como se describe en el apartado 4.4.1 del capitulo 4, dedicado a las normas de instalacion, Si es necesario realizar algtin cambio se indica expresamente en cada ejercicio. Ademas, sdlo debe estar colocado en el zécalo correspondiente el microcontrolador PICI6F84 (US de la figura 4.3 del capitulo 4), 5.2 OPERACIONES BASICAS EJERCICIO 5.2.1. Suma de una tabla de numeros, Memoricense los niimeros 1, 2, 3 y 4 en una tabla situada en 4 posiciones consecutivas de la memoria de daios a partir de la direccion Ox0C (primera direccién libre de la memo- ria de datos), stimese el contenido de las 4 posiciones y almacénese el resultado en otra posicion de la memoria de datos Objetivo Familiarizarse con el uso del direccionamiento indirecto y con el tratamiento de tablas situadas en Ia memoria de datos. Solucién Reserva de posiciones de memoria Las ordenes correspondientes se indican en la tabla 5.2.1.1. En primer lugar, mediante la orden EQU se define la direccion ‘abla’, a partir de la cual se almacenan los datos. Segui- damente se define la direccién ‘dato’ utilizada para generar los valores de los nimeros, y finalmente se define la direccién ‘result’ para almacenar el resultado de la suma. Toa tabla comienza en Ta dereccion OXOC QU oxI0 “dato” es la direecion 0x10 ox 7 resull” es la direcci6n 0x11 Tabla 5.2.1.1 Ordenes del ejercicio 5.2.1 que reservan posiciones de memoria. icin de los mimeros Asignacién de direcciones de memoria y memor La secuencia de instrucciones que asigna direcciones de memoria se indica en la tabla 5.2.1.2. En la posicion 0x00 de a memoria de instrucciones se coloca una instruccion de salto incondicional (goto) ala direccién ‘inicio’, Se asigna a ‘inicio’ Ia direccién 0x05 (la posicion (x04 esié reservada para el vector de interrupcién). A continuacién se introduce en el registro FSR (puntero del direccionamiento indirecto) la direccion de la primera posi- cién de la tabla de datos 170 Nicrocontroladores PIC. Sistema integrado para el autoaprendizaje goto inicio ORG 0x08 f ablece el inicio de! programa en Ia direceién OX0S movlw tabla Introduce la dircceion de la prmera posieidn de La tablaen el registro W 2 eleonienido del registro W al registro PSR Tabla 5.2.1.2 Secuencia de instrucciones del ejercicio §.2.1 que introduce en el registro FSR la direccién del primer elemento de la tabla. Ena tabla 5.2.13 se incluye la secuencia de instrucciones que lleva a cabo la memori- zacién de los nimeros. Se utiliza el direccionamiento inmediato para cargar el numero 1 (primer nimero) en la posicién de memoria ‘dato’ y se pone a cero la posicién en la que se almacena el resultado, Mediante el bucle que comienza en la direccién ‘recorre’ se intro- ducen en la tabla los nimeros 2, 3 y 4. La palabra reservada /ND/’, en combinacién con la instruccién movwf, especifica que se utiliza direccionamiento indirecto con el contenido del registro FSR como puntero El estado uno del biestable 4 del registro FSR indica que se ha ejecutado el bucle cuatro veces, y que por tanto los cuatro niimeros estin memorizados en la tabla (el puntero con- tiene en ese momento la direccién 0x10). Se utiliza la instruccion dys para realizar un salto condicional simple (salto condicional de una sola instruccién, denominado en inglés skip) en funcién del estado del biestable 4 del registro FSR moviv 2 movi dato ga el numero | en el iegisro W [ransfiere e! contenido del registro W a la posicion de memoria “dato” elré xeault Bora el contenido de la posicién de memoria ‘result mové dato, Ww ; Transfiere e] contenido de la posicion ‘dato’ al registro W movwi INDF ‘Transfiere e] contenido del registro W a la posieién de memoria ;apuntada por el registro FSR inet ‘ncrementa el contenido de Ia posicién ‘dato’ ince Inerementa el contenido del registro FSR brfes Salto simpleen funcidn del estado del biestable 4 del regisiro FSR goto ;Salto incondicional ala direccién ‘recorre Tabla 5.2.1.3 Secuencia de instrucciones del ejercicio 5.2.1 que memoriza los numeros en la tabla. Kjecucién de la suma Las instrucciones correspondientes se muestran en la tabla 5.2.1.4. El bucle ‘swma’ rea- liza la suma del contenido de las cuatro posiciones de la tabla y almacena el resultado en la posicion de memoria ‘resuit’ (en este caso el resultado de la suma es OxOA), En la primera columna de la tabla 5.2.1.5 se muestra el programa completo que ejecuta las acciones especificadas en el enunciado. En la segunda columna de la citada tabla se indica el programa escrito en el lenguaje RTL, deserito en el apartado 2,63 del capitulo 2. Enla tabla 5.2.1.5 se presenta e! programa completo. Capitulo 5. Practicas de microcontroladores PIC en lenguaje ensamblador 171 tin noviw tabla mov FSR movi INDF, Transl addvé reoule,F inct FSR,F btfss FSR,4 goto suma goto rin END) Introduce Ta direceion de Ta primera pos 7 Transfiere el contenido del regisiro W al registro FSR reel contenido de le posicién apuntada por el registro FSR zal registro W, Suma el contenido del regisiro W con el de la posicién “result” y guarda el resultado en esta titima zInerementa el contenido del registro FSR 7 Salto simple en fune’ ; Salto ineondicional a la di ;Bucle infinite ‘on de la tabla en W ndel estado del biestable 4 del registro FSR Tabla 5.2.1.4 Secuencia de instrucciones del ejercicio 5.2.1 que ejecuta la suma. Instrucciones Lenguaje RTL tabla Egy oxoc dato ROU oxi0 result EQU — Ox12 goto inicio oRG 0x95 movlw tabla movw£ FER movlw 2. movwi dato clrf result move dato, movwf INDP ance dato,? incf FSR, F btfes FSR,4 movlw tabl movwE FER mové IND, # adawf emule, F FSR, F FSR, 4 Fin gote fin inicio -> (cP) tabla -> (W) (a) -> Fo Li-> (m) (a) ->(aato) 0 ->(result) (asto) (ay => ( (dato) + 1 -> (ate) FSR +1 -> FSR salto simple recorre -> (CP) tabla -> (W) (a) => FSx [esrees: (esr) -> Cw) (ay 6 (reaw: FSR +1 -> Salto simple si [PsR<4>=0] suna -> (CP) fins (cP) Tabla 5.2.1.5 Programa completo del ejercicio 5.2.1. syright 12 Nicrocontroladores PIC. Sistema integrado para el autoaprendizaje EJERCICIO 5.2.2. Resta de dos operandos. Memoricense los nimeros A=OxOA y B=0x04 en dos posiciones de la memoria de datos y realicese la resta entre los dos (A-B). Memoricese el resultado y un numero binario que indique si AB, AB en ota posicion de la memoria de datos Objetivo Realizar la operacion de resta y utilizar los biestables del registro de estado para indicar si el resultado es positivo, negativo o cero. Solucién Reserva de posiciones de memoria Las 6rdenes correspondientes se indican en la tabla 5.2.2.1. Mediante las drdenes CBLOCK y ENDC se definen las posiciones en las que se almacenan los datos. La posi- cién definida como ‘cédigo” indica mediante un 1 que A=B, mediante un 2 que A>B y mediante un 3 que A

También podría gustarte