Está en la página 1de 329
Lenguajesde = programacion Introduccion Pasos a seguir para a ONT aD) elaborar un proyecto Colombia: $ 5.500 el a Re US Te eg NOUS TCE Cara's) Curso practico sobre UE EL Scan Programacion, ech Brees A Percocet ner completos El Curso practico sobre MICROCONTROLADORES cle CEKITS. A. se publica ‘en forma de 40 fasciculos de aparicion semanal, encuaclernables en 3 voltimenes ‘Cada fasciculo consta de 4 paginas de cubiertas y 20 paginas de contenido a todo color. De e: imas, 8 estan dedicadas a la seccion de 4a PROGRAMACION y 8 la secciGn de PROYECTOS, Las paginas de cada secci6n son encuademables por separado, Por esta raz6n, al ar los volumenes, debe cuidarse de desprender previamente, de todos los iculos, las 8 paginas centrales de PROYECTOS, las 4 dle PROGRAMA y por tltimo las 8 paginas de Durante la publicaciGn de los fasciculos se pondrin a la venta ks tapas de los 3 voltimenes de la obra para su encuademnacion, CEKIT'S.A. garantiza la publicaciGn de la totalidad de la obra, el suministro de la tapas necesarias para su encuaclemaci6n y el servicio de ntimeros atrasados hasta un, ano después de terminada la circulaciGn del tikimo fasciculo, También garantiza la Fidelidad de la informacion tecxico-practica suministaca y el comecto funcionamiento de los programas includes como exemplos de la obra Motorola, Microchip, PIC, Intel, Aunel, Parallax, Zilog, Philips, son marcas registradas de lasclferertes empress ens Estados Unidos yen otras paises. Ouos productos y nombres de mencionackasen est obra pueden ser marcasregisrachs de sus propietarios. Ese cuno hastdocabondo segtindl plan del edtory de sis autores, y bap suresponsadd, porlossiguirte integrates del ‘departamentotonico de CEKIT'SA Distribucién internacional Argentina: importador: torial Conosur S.A. Av, Belgrano 355 10% Tel 4342:9029 Fax: 4312-9025, ‘email gconosur@speedy.com.ar Dist. Capital VACCARO SANCHES Y CIA, - Moreno 794, 97092) Buenos Aites. Dist Interior: DISTRIBUIDORA BERTRAN S.A. - Av. Vélez Sarsield 195001285) Buenos Aires, - Bolivia: AGENCIA MODERNA LTDA. - Chile: DISTRIBUIDORA ALFA S.A, ~ Colombia: DISTRIBLIDORAS UNIDAS. - Venezuela: DISTRIBUIDORA CONT NENTAL: México: CONSORCIO SAVROLS - Ecuador: DISTRIBUIDORA ANDES. - Panamé: PANAMEX S.A. - Pert: DISTRIBUIDORA BOLIVARIANA S.A. Paraguay: SELECCIONES S.A. Unuguay‘DISTRIBUIDORA CAREAGA, Suscripciones (no validas en Argentina), ntimeros atrasados y consultas técnicas en Colombia CEKIT S.A. Calle 22 N° 8 - 22, Piso 2, A.A. 194 Percira(Colombia) © a nuestro correo electrénico: ecekit@col2.telecom.com.co ISBN (Fasciculo §)958-657-510-1 ISBN (Volumen 1):958-657-198-9 ISBN (Obra completa): 958.657- Tes. Capacitamos para vivir major Calle 22 NPS - 22, Piso 2, Teens (© 3348179. 3348187. 3548189 - 3348193, Fax: (6) 3348020 Pereira Colombia, Carrera 13 N° 38-43, Piso L Telefonos: 2573086. 2573420 - 2577318 Boge - Colombia, email: ecekit@col2telecom.comco hitp://www.cekit.com.co GererteGenerab Jonge Hemin Alvarez Marcelo ARs Director Eitri Manuel Felipe Gonzlez G, a es Humberto Real Blanco. Autores JUAN ANDRES CASTANO W. MANUEL FELIPE GONZALEZ. G. ‘GILBERTO VARGAS C. JUAN DIEGO HERNANDEZ F. Proyectos JOHN JAIME ROBBY G. Disefo cardtula: Luz Angela Plata B. Dison Gloria Marcela GémezG. OCEKITS.A. 2001 Pereina-Colombla Tako derechos ead Pi pis crt del EDICION CONO SUR Inemacional Graphies& Printing Co. 2600 Douglas Road, Suite 400 Coral Gables, Flora 33134, USA Impreso y encuadernado por: RR Donnelley ‘América Latina Ruta Panamericana Kim. 38.700 Buenos Aires Argentina Impreso en Ang Jhmto 2002 fee] cou Macr ieee econ ed Estudie, con el método de CEKIT de “Aprender haciendo”, la tecnolo- ga de los Microcontroladores, una de las que més han cambiado el mundo en los tiltimos aos y gane milcho dinero. Estos pequefios cerebros clectrénicos se encuentran en todas partes: au- Wméviles,/éomphtadoras, electrodomésticos alarmas, jueBos de huces, instrumentos, equipos de cofmunicaciones, etc. 1n este curso incluimos los principios teéri cos, los fundamentos de su programacién, tua gran cantidad de actividades précticas y proyectos completos para chsamblar. Los mieroconttoladores son los elementos bi- sicos y fundamentales de una nueva revollicién, _ lninterconexién de todo con.todorentuna red mundial. de ae control. Esto"per- CR ee eT TU ier Seco re mitird la comunicacién de hechos y datos entre personas y objetos formando la red del conoci- miento, base de la economia del nuevo milenio Capacitese y forme parte activa de la nue- va economia. Las personas con buenos conocimientos de esta tecnologia, tendrén muchas oportunida- des laborales 0 podrin fabricar sus propios aparatos en forma industrial, lo que puede ser la base para una empresa muy rentable. Cont eSta estructurado el curso El Curso practico sobre Microcontoladores de CEKIT S.A. se publicaré en 40 fasciculos con tres secciones cada uno, y al final, se agrupard en tres to- mos de pasta dura con cada uno de los temas princi- pales, Para su f ciones tiene un color diferente. La distribucién de los tomos es la siguiente: cil identificacién, cada una de las se Tomo 2: Programacién 160 paginas (1 a 160) Tomo 8: Proyectos 320 paginas (1 a 320) Seccion te Teoria componentes. Sc empieza con un repaso sobre el tema de los microprocesadores, los cuales dieron origen a los microcontroladores, y se desarrollan durante las lecciones, los diferentes aspectos técnicos de esta tecnologia. Ws. Capacttamon para vive major En la seccién de teorfa, se estudian los fundamentos tedricos y funcionales de los microcontroladores. Esto se refiere a la estructura o arquitectura interna de los mismos, asi como a la funcién de cada uno de los terminales © pines de los diferentes dispositivos tratados en el curso cuyo conocimiento es ne- cesario para disefiar circuitos con estos Arquit La CPU y la ALU Los Organizacién de la memoria La EPROM de datos Las interrupciones Los puertos de entrada/salida (UO) Los temporizadores (Timers) Las opciones Comparacién/Captura/PWM El puerto serial sincrono SSP, bssp La USART Las referencias de voltaje Los comparadores Los conversores A/D Modos de bajo consumo (sleep y watchdog) Bits de configuracion Programacién en el citcuito (in circuit) El conjunto (ser) de instrucciones Las comunicaciones seriales Otros microcontroladores Parallax (Basic Stamp) Intel Atmel ‘Todo aparato o proyecto con microcontroladores i cuitos, uno 0 varios programas que se deben encri tipo de microcontrolador utilizado. Este curso le pr iar sarios para que adquiera la habilidad de programarlos. Los principales temas tratados son: Neccion te proyectos Indicador binario de 4 bits Alarma para el hogar y el auromévil Reloj digital y calendario Secuenciador de luces programable Cerradura codificada Activacién de aparatos via telefénica ‘Temporizador universal Aviso luminoso con diodes LED Luces ritmicas ‘Convertidor paralelo-serial Punta logica Temporizador miniatura Frecuencimetro Generador de sefiales Progeamador de memorias Adquisicion de datos en 16 bits Minirobot con microcontrolador_ on de + Programacién de un microcontrolador El ciclo de desarrollo de un programa Herramientas de software Programacién en modo inmediato Programacién orientada a registros Control de flujo de un programa Puertos de entrada/salida Subrutinas Interrupciones Programacién en lenguaje estructurado Temporizadores Programacién serial Programando los conversores A/D y D/A. Programacién en lenguaje C ‘Tépicos avanzados de programacién ineaiiwial pat pis or aneie En esta importante seccién del curso, se entrega una amplia informacién con la cual el alumno podré ensamblar una buena cantidad de proyec- tos. Para cada uno de ellos se incluye la teoria de funcionamiento, el diagrama esquematico, la lis- ta de materiales, las instrucciones para el ensam- blaje y el listado del programa. ‘ie eneme Teor hmm A quienes va dirigido el curso El tema de los microcontroladores es de gran utilidad para un grupo muy amplio de perso- nas que requiieran conocer esta tecnologia por su gran cantidad de aplicaciones. a Los principales grupos de usuarios son: Estudiantes y profesionales de Ingenierfa y Tecnologias: + Electréni * Electrica * Mecénica * Sistemas * Bioingenierfa * Mecatrénica * Automatizacién Técnicos en: Electrdnica industrial * Automatizacién * Electrénicos en general + Alumnos de los cursos de CEKIT S.A. * Estudiantes y profesionales en FISICA, para sus necesidades de instrumentacién Autodidactas o aficionados con conocimientos en: * Electrénica Digital * Microprocesadores : eet Certificado mane oot code onal Una vez terminado el curso y aprobada la evaluacién que se publi- card al finalizar la obra, el alumno recibird un Certificado de Apti tud Ocupacional otorgado por CEKIT S.A. y aprobado por las respectivas autoridades educativas. Este certificado ler permitira acceder a puestos calificados de trabajo. KIT @ i mene) Es muy placentero y satisfactorio para CEKIT S.A. presentar a todos nuestros lectores y amigos, estudiantes, profesores, aficionados, técnicos, profesionales y en general ala comunidad técnica internacional, una nueva obra didéctica en el campo de la electré- nica con el estilo propio y la metodologfa de “Aprender haciendo” que nos ha caracteriza- do por tantos afios. Se trata del Curso prdctico sobre MICROCONTROLADOKES, el cual tiene como objetivo principal dar a conocer y enseftar, de una manera ficil y agradable, esta maravillosa tecnologia. Los microcontroladores, que pueden considerarse como una microcomputadora en un sélo empaque, han permitido un avance sin par en los iltimos afios en el disefio ya fabricacién de todo tipo de aparatos y aplicaciones clectrdnicas. Haciendo un s{mil con el ser humano, podemos decir que un microcontrolador es un pequefio cerebro electrénico formado por muchos transistores interconectados entre si tal como las neu- ronas y que tiene vatias zonas con funciones especializadas como la memoria, uno 0 varios circuitos para recibir informacién de teclados, interruptores y sensores, entre otros, y secciones para activar elementos externos como motores, relés, indicadores sonoros, pantallas, etc.; todo esto coordinado por medio de un programa o conjunto de instrucciones. Nunca antes, en la historia de la electrdnica, un componente habia permitido tanta creatividad y desarrollo de productos de una forma tan ficil, en tan corto tiempo ya costos tan reducidos. Con los microcontroladores es posible disefiar y fabricar casi cualquier aparato que se nos ocurra; el limite est4 dado sélo por la imaginacién y nuestra capacidad de hacerlo. ‘Aunque el tema parece dificil y complejo, realmente no lo es y para demostrar lo contrario, lo iremos explicando paso a paso en un lenguaje simple acompafiado de muchas figuras, diagramas ¢ ilustraciones de tal forma que los lectores lo puedan ir asimilando a su propio ritmo de aprendizaje sin mayores dificultades. Para entender y aplicar esta tecnologia, se requieren conocimientos de Electr6nica Digital, de los siste- mas de numeracién, especialmente del sistema binario y hexadecimal, y nociones bési- cas sobre los microprocesadores. Sin embargo, durante el curso repasaremos algunos de los conceptos fundamentales de estos temas con el fin de que los lectores que no los conozean, puedan comprender mejor cada una de las lecciones. La mayoria de los aparatos electrdnicos modernos incluyen uno o varios micro- controladores y de ahi la importancia y necesidad de este curso en este mundo tecnolé- gico en el cual nos encontramos. Un reloj digital de pulsera lo utiliza para contabilizar el tiempo, mostrarlo en una pequefia pantalla y recibir las érdenes en los botones para ejecutar diferentes funciones, Una videogeabadora lo utiliza para coordinar sus princi- pales funciones como el encendido y el apagado, el cambio de los canales, el avance y retroceso de la cinta, las funciones del control remoto, etc. En un horno microondas el microcontrolador se encarga de recibir las 6rdenes que le damos en el teclado, mostrarlas cn la pantalla y accionar el elemento que produce el calor en los alimentos. ‘curs prictico sobre Merocontoladores AREA: Cede Pero sin restarle importancia a este tipo de aplicaciones, es en otro campo a donde queremos oriencar este curso. Se trata de la utilizacidn de los microcontroladores en siste- mas de control y en el disefio de aparatos aparentemente sencillos pero con una gran cantidad de usos en la vida diaria ya sea en el hogar, en la industria, en la oficina, en el campo o a nivel experimental y sobre todo para ensefiarles a nuestros lectores cémo desa- rrollar su propia aplicacién partiendo de sus necesidades particulares. Para enseftar y explicar mejor esta tecnologia, hemos dividido este curso en varia secciones asi + Una seccién de Teoria en donde se presentan los conceptos bisicos de los microcon- troladores iniciando con su origen basado en los microprocesadores, su estructura 0 arquitectura interna, su funcionamiento eléctrico y I6gico, la operacién de sus blo- ques internos, etc. En fin, toda la informacién necesaria para poder configurar un Circuito con un microcontrolador y entender su funcionamiento. + Una seccidn de Programacién en donde se explicard qué ¢s un programa de micro- controlador, los diferentes lenguajes que se utilizan, las técnicas adecuadas para cla- borar programas eficientes, c6mo se leva al interior del microcontrolador y las prin- cipales herramientas de software y hardware para elaborarlos. Esta es una seccidn de mucha importancia dentro del curso ya que la programacién es donde radica la mayor dificultad de muchas personas para acceder a esta tecnologia y por ello, dedi- caremos un gran esfuerzo didctico para que todos nuestros alumnos puedan escribir sus propios programas de una forma correcta. + Y para completar la estructura del curso, de acuerdo a la metodologia de CEKIT S.A., hay una secccién de Proyectos y actividades practicas en donde se presentan ejemplos compleros con aplicaciones de diferentes tipos de esta seccién también se incluirdn los diagramas de pines y las caracteristicas de los microcontroladores més representativos de las principales marcas o fabricantes y una explicacién de los componentes y circuitos que los acompafian, desde un simple LED, hasta pantallas de cristal liquido (LCD), sensores, conversores A/D, acondi- cionadores de sefal, etc. rocontroladores. En Aunque existen en el mercado una buena cantidad de fabricantes de micro- controladores, cada uno con una gran variedad de modelos, hemos seleccionado ‘como ejemplos para este curso principalmente los de Motorola y Microchip (PIC) por ser los de mayor difusién y aplicacién actualmente; con un menor cubri- miento, los de INTEL, ATMEL, PARALLAX y otros, los cuales esperamos tra- tar en un prdximo curso, Felipe Gonzalez G. Editor General RICIT: cwrs0 13000 s0r Merocontatres INTRODUCCION A LOS MICROCONTROLADORES Un microcontrolador (microcontroller, en inglés) es un circuito integrado que contiene toda la estructura de una mi- crocomputadora, 0 sea, CPU (Unidad Central de Proceso), memoria RAM , memoria ROM, circuitos de entrada- salida (I/O) y otros médulos con apli- caciones especiales. Su nombre nos in- dica sus principales caracteristicas: mi- cto por lo pequefio y controlador por- que se utiliza principalmente para con- trolar otros circuitos 0 dispos tricos, mecénicos, etc ivos eléc- Curso préctic sobre Mcrocontroladres ARCH T: & Latte bE ROS Ole met ots Este maravilloso componente resume, en un solo circuito integrado, més de cuarenta afios de tecnolo- gia electrdnica. Es dificil encontrar en la actualidad tun aparato o una aplicacién que no lo utiice © no pueda utilizarlo para optimizar su operacién. Se ha mencionado y confirmado muchas veces que la electrénica es la tecnologia de los componentes. El desarrollo de cada nuevo dis- positivo de estado sélido trae consigo técnicas de disefio diferentes, por lo general, mds sir En los afios sesenta, para construir un reloj digi- tal, era necesario acoplar un buen ntimero de cit- cegrados légicos. Al mismo tiempo, el diseftador debfa poser conocimientos muy ca- ros sobre cada uno de los elementos, para reali- zar, con éxito, la integracién, cuitos i A partir de 1970, el panorama de la electr6- nica y especialmente el de la electrénica digital, cambié radicalmente cuando aparecié en el mer- cado un nuevo supercomponente: el micropro- cesador. Esto introdujo un concepto novedoso que en la actualidad se conserva y refuerza cada vex més, el de la ldgica programada. Antes de los microprocesadores, los circuitos electrdnicos se disefiaban para una funcién espe- cifica la cual no podfa modificarse sin cambiar fisicamente las co- Figura 1.1. Ejmplo de un circuit con Kica cableada @ eer: curso préctico sobre Mlcrocontroladores nexiones, el ntimero y la cantidad de los diferen- tes elementos que los formaban a lo cual se le llamé La légica cableada, figura 1.1 Con los microprocesadores y ahora con los circuitos légicos programables (FPGA), los mi- crocontroladores y los circuitos de DSP (Proce- samiento Digital de seffales), entre otros, es posi- ble modificar cuantas veces se requiera el progra ‘ma, atin en forma remota por la internet, y el Circuito 0 aparato en el cual estan instalados, tra- bajard de una forma completamente diferente sin modificar fisicamente una sola conexidn. De esta forma, el limite de los disefios solo lo establece la imaginacién de los programadores y la capaci- dad de los dispositivos que lancen al mercado los. fabricantes especializados en estas tecnologias Consolidadas las técnicas digicales de los afios sesenta, se creé entonces la necesidad de profundizar en el estudio y desarrollo de las aplicaciones para los microprocesadores y la programacién en lenguaje de mquina o assembler. Fué la época de oro del 8080, el 8086, cl Z-80, el 6809, el 6502, el 68000 y otros micropro- cesadores, utilizados como circuitos centrales en las aplicaciones de control. En 1980, aproximadamente, los fabri- cantes de circuitos integrados iniciaron la difusién de un nuevo circuito con aplica- ciones para control, medicién e inserumen- tacién, al que llamaron “microcomputa- dor en un slo chip” 0, de manera més exacta y concisa: microcontrolador. Para entender mejor a estructura interna, el fu- cionamiento y los origenes de los micro- controladores, repasaremos primero el tema de los microprocesadores. Los microprocesadores: Desde el punto de vista funcional, un mi- croprocesador¢s un circuito integrado, fi gura 1.2, que incorpora en su interior una uunidad central de proceso (CPU) y todo tun conjunto de clementos ligicos que per- ‘Figura 1.2. Microprocesdor 8085 miten enlazar otros dispositivos como memorias y puertos de entrada o de salida (I/O), formando tun sistema completo para cumplir con tuna aplicacién especifica dentro del mundo real. Para que el sistema pueda realizar su labor debe ejecutar paso a paso un programa que consiste en una secuencia de mimeros binarios o ins- trucciones, almacenadas en uno o més elementos de memoria, generalmente externos al mismo. La aplicacién més _— importante de los microprocesadores y que cambié totalmente la forma de tra- bajar, ha sido la computadora personal © microcomputadora Curso préctico sobre Microcontroladores LG Suitolto) barrett geasy El microprocesador, corazén de las computadoras Una computadora digital es un equipo especiali- zado en el procesamiento de informacién, cuyo principio de funcionamiento es relativamente sencillo, si lo vemos desde el punto de vista de Jos bloques que lo conforman. Cada uno de esos bloques esté formado por varios circuitos inte- grados ficiles de entender, la parte compleja la encontramos cuando estudiamos el interior de dichos circuitos, pero esto en realidad no es de mucho interés para el usuario comin, Una computadora digital se compone de tres bloques fundamentales, figura 2.1: una unidad de entradas y salidas, una CPU y una memoria. Asu ver, la unidad de entradas y salidas se divide en un bloque de entrada y otto de salida, Del mismo modo, la CPU se divide en una unidad aritmético-Iégica (ALU), y una unidad de con- trol yel bloque de memoria en memoria RAM y memoria ROM, obteniéndose seis bloques 0 uni- dades con funciones muy especificas, figura 2.2, cuyas funciones describiremos a continuacién. La unidad de entrada es quien recibe infor- macién del mundo exterior, ya sea de un opera- dor humano o un fenémeno fisico; esta unidad permite Hevar esa informacién hacia la unidad cde memoria para poder procesarla posteriormen- te; dispositivos de entrada son, por ejemplo, los teclados y el ratén. La unidad de salida entrega los resultados del procesamiento al mundo exte- ‘Figura 2.1. Bloques principales de una computacora ogital Unidad de Entrada/Salida 0 CPU et) Unidad eo de Cr Co) Rs Ce de ar Figura 2.2 Estructura general de una computadora oil rior. Esta informacién se lleva desde la unidad central de proceso 0 CPU, hacia circuitos o apa- ratos externos llamados periféricos que se encuen- tran fuera de la computadora, por ejemplo mo- nitores, impresoras o parlantes. La unidad de memoria se encarga de alma- cenar los datos y los programas que operan sobre esos datos y es una de las mas importantes de una computadora. Se distinguen dos sistemas diferentes de memoria: la de almacenamiento primario y la de almacenamiento secundario. La ‘memoria de almacenamiento primario se refiere alos circuitos que guardan los programas que se van a ejecutar y los datos que se necesitan duran- te la ejecucién de estos programas, y la memoria de almacenamiento secundario, se utiliza para almacenar grandes cantidades de datos que no se requieran con frecuencia para la operacién de la computadora. Sistemas de este tipo son los dis- os duros y los discos de 3.5”. Dentro de la memoria de almacenamiento secundario se distinguen tres categorfas: la ROM (Read Only Memory) 0 memoria de solo lectura, donde se almacenan cierto tipo de programas como el del sistema de arranque de una compu- tadora (BIOS); la RAM (Random Access Memory) ‘o memoria de lectura y escritura, donde se alma- > Leber e, conviction cenan los datos que los programas van generan- doyla cache que es una memoria RAM con tiem- po de acceso muy rapido donde se mantienen Jos datos mas utilizados durante la ejecucién de un programa Launidad central de proceso (CPU: Central Processing Unit) retine la unidad de control y la unidad aritmético-Iégica en un solo bloque. Esta tiltima también se conoce como ALU (Arithme- tic Logic Unit). En la practica, la unidad central ‘© CPU se encuentra en forma de un circuito in- tegrado llamado microprocesador. Dentro de esta CPU, la unidad de control se encarga de la interpretacién y ejecucién de las instrucciones del programa. También controla todos los componentes de una computadora por medio de lineas de conexién llamadas buses. La ALU se encarga de realizar las operaciones logi- cas y aritméticas. Las principales funciones arit- méticas realizadas en la ALU incluyen la AND, la OR, la EXOR y la comparacién. Como he- mos visto, el microprocesador es quien lleva a cabo las principales funciones de un sistema de cémputo, y quien integra a los demés compo- nentes y ejecuta las instrucciones. Es por eso el principal componente de una computadora. Funcionamiento del microprocesador Desde un punto de vista conceptual, un micro- procesador ideal es un dispositivo digital que acepta o lee datos aplicados a un cierto niimero imiepcssatr a 5 isto ren oe na Tomas oats yur ova Figura 2.3 | mlcroprocesador ideal Alc) de Iineas de entrada (N); los procesa de acuerdo a las inserucciones secuenciales de un programa almacenado en su memoria, y suministra o eseri- be los resultados del proceso en un cierto niime- ro de lineas de salida (M), figura 2.3 Los datos de entrada pueden provenir de inte- ruptores, sensores, convertidores A/D, teclados, etc. Los datos de salida pueden estar dirigidos a actua- dores, indicadores o displays, pantallas, convertido- res D/A, alarmas, impresoras, ec. El programa al- macenado determina como deben ser procesados los datos de entrada y, en consecuencia, que infor- macién debe enviarse alas lineas de salida. El soporte fisico de las instrucciones del pro- grama es la memoria, la cual almacena los datos para que sean procesados. En un momento dado, los niveles légicos (unos y ceros) de las lineas de salida de un microprocesador, dependen no sola- mente del programa en s{ sino también de la his- toria de las sefiales de entrada hasta ese momento, Mientras queen un microprocesador ideal no exis- ten restricciones respecto al mimero de entradas y salidas, los microprocesadores reales sélo pueden acomodar un niimero limitado de terminales 0 pines para estas funciones. Como veremos mas adelante, pata simplificar el ntimero de pines, la mayoria de microprocesadores utlizan las mismas lineas para la entrada y salida de datos. De otro lado, mientras que un microprocesa- dor ideal tiene, teéricamente, una memoria inter- na ilimitada, los microprocesadores reales solo dis- ponen de una cantidad limitada para almacenar Repistro de ‘Bits Registro de 16 bts Figura 2.4 Registros de un microprocesador curso prio sotre Merocontolaioes AGREE: ® OS microprocesadores datos ¢ instrucciones. Por esta razén, un micro procesador debe tener la posibilidad de comuni- carse con una memoria externa. Para lograrlo, ne- cesita disponer también de un conjunto de lineas de seleccién o direccionamiento adicionales. Finalmente, para sincronizar su operacién con la de los componentes externos conectados al mismo y tener un control global de los buses de datos y direcciones, un microprocesador ne- cesita disponer también de un conjunto de It neas de control. Por tanto, un microprocesador pres me mm A ast 55 rot78 us| x our Dee requiere de un bus de datos, un bus de direccio- nes y un bus de control para comunicarse con los demas componentes. Naturalmente, el microprocesador ideal (un dispositive con sélo entradas y salidas y un programa almacenado en él) no existe. Sin embargo, la tendencia de los nuevos disefios es incluir cada vez mds funciones en una mis- ‘ma pastilla, incluyendo unidades de memoria ¢ interfaces entrada/salida como en el caso de los microcontroladores. sp sp coe Cae oT aba ese oot mn ‘Figura 2.5 Arquitactura interna de un microprocesador 8085 de Intel @ Gexrr: (oreo prictca sobre Micrecontroladerea ‘Organizacién interna de un microprocesador La organizacién interna de un microprocesador, es decir, su arquitectura, varia notablemente de un dispositive a otro. Por esta raz6n, es dificil definir tun modelo de microprocesador que represente to- das las alternativas posibles puesto que cada uno tiene una ldgica de funcionamiento propia. La ar- quitectura, y especialmente el tipo, niimero y orga- nizacién de los registros internos, es una considera- cin importante a la hora de elegir un microproce- sador para una aplicacién determinada. Un registro es una posicién de memoria co- nectada a la CPU donde se pueden retener cifras binarias. Esté formado por elementos légicos (compuertas, flip-flops, et.) que, al ser tomados cen conjunto, pueden almacenar ntimeros binarios de 4,8, 16 6 més bits, figura 2.4, Se utilizan esen- Gialmente para almacenamiento temporal, en el que el contenido cambia continuamente. Esto no implica que se deba conocer con de- ‘masiado detalle, emo funciona internamente un microprocesador para poder utilizarlo. Existen partes y funciones que normalmente deben estar presentes: un reloj, una ALU, varios registros, un contador de programa, etc, En la figura 2.5 se muestra un ejemplo de la arquitectura interna de un microprocesador simple, el 8085 de Intel. Por ejemplo, el reloj o circuito de oscilacién puede estar 0 no incorporado en el microproce- sador, pero es absolutamente necesario puesto que tiene la misién de sincronizar todas las operacio- nes de debe realizar el dispositivo. Del mismo modo, para ejecutar un programa, un micropro- cesador debe tener en su interior registros que le permitan almacenar informacién, realizar lectu- ras, modificaciones a los datos, etc. Operacién basica de un microprocesador Analizando un sistema de cémputo, nos da- mos cuenta que el microprocesador 0 CPU es la parte del sistema encargada de leer, inter- pretar y ejecutar las instrucciones del progra- ma almacenado en la memoria. Desde un punto de vista conceptual, la ac- cidn de leer c interpretar las instrucciones la rea- liza una parte del microprocesador denominada unidad de instruccién y su ejecucién corre a car- {g0 de otro circuito especializado dentro del mis- mo denominado unidad de ejecucién, figura 2.6 Unidad central de procesamiento (CPU) 0 ‘microprocesador od Caen pro Coot cy ed Figura 2.8: Unidades de instuccion yejecuctn Launidad de ejecucién, a su vee, contiene una unidad aritmético-logica o ALU y un conjunto de registros auniliares. La ALU se encarga de realizar tuna gran variedad de operaciones aritméticas y Is- gicas, y los registros de almacenar temporalmente informacién, Las distintas funciones realizadas por el microprocesador quedan especificadas por su conjunto de instrucciones. Curso prcto sotre Merocontoadoes CARCI @ Los microprocesador La unidad de instruecién lleva la cuenta de las posiciones © direcciones de memoria donde se encuentran las nstrucciones que el microprocesador necesita en cada instante. Normalmen- te, las instrucciones se leen y ejecuran cen el mismo orden en que fueron alma- cenadas en la memoria. Sin embargo, la presencia de instrucciones de control de programa puede altera la secuencia de ejecucién de estas instrucciones. Para Ilevar Ia cuenta de las di- recciones de las instrucciones, la unidad de instruccién incorpora un registro especial llamado contador de programa 0 PC (Program Coun- ter). Cada ver que se lee una ins- truccién, el contador de programa se incrementa automdticamente para suministrar la direccién de la posicién de memoria donde se en- cuentra la siguiente instruccién 0 dato del programa. Cada ver que un microprocesador recibe una instruccién, a almacena en un registro interno del mismo llamado registro de ins- trucciones con el fin de proceder a su deco- dificacidn o interpretacién y buscar en la memoria ROM el conjunto de microinstruc- ciones necesarios para su ejecucién. Esta fun- cién la realiza un circuito denominado de- codificador de instrucciones. Ademés del contador de programa y el registro de instrucciones, un microprocesa- dor contiene usualmente otros registros para facilitar el acceso a las instrucciones y a los datos. Algunos de estos registros son progra- mables en el sentido de que su contenido puede ser alterado por software (instruccio- nes) mientras que otros son inaccesibles des- de el punto de vista de programacién y su contenido sélo lo puede determinar y con- sultar el microprocesador. Registro de status ‘condicion de estado} ‘Acumutador (Contador del programa temo td Registr intermedi Bus de decriones Bus de control Bus dl sistema hacia a memoria principal ¥ dispostves de E'S Figura 2.7. Arqitectura de ui microprocesadr genérico La mayorfa de los microprocesadores, por ejemplo, incluyen un registro especial llamado acumulador (Registro A) que es utilizado por muchas instrucciones como fuente o destino de datos. También es muy comiin la presencia de tun registro de estado que suministra informa- cidn relativa a la ejecucién de ciertas instruc- ciones como sobreflujo, paridad, generacién de acarteo, resultado negativo 0 cero, etc Muchos microprocesadores poseen también tun conjunto de registros de propésito general que pueden ser utilizados para almacenar direccio- nes de memoria, datos, resultados intermedios y otros propésitos. El nimero y tipos de registros que posee un microprocesador, es una parte muy importante de su arquitectura y programacisn, En la figura 2.7 se muestra un modelo ge- nético de microprocesador que ilustea los con- cepts anteriores. & ICI: C100 pricic sore Miroconroladeres Estructura de buses de un microprocesador En la figura 2.8 se muestra la estructura de buses generalizada de un microprocesador. Externamente, el dispositivo cuenta con un bus de datos, un bus de direcciones y un bus de control. En las siguientes secciones decribiremos la funcién y las caracteristicas de cada uno, Ademds de estos tres buses principales, tun microprocesador debe disponer también de un bus de alimentacién, el cual hace llegar la corriente de la fuente a sus distintos componentes internes. : Bs sas el at 32 ws ven = 4 Figura 2.8 Estructura de buses goneralizeda Las lineas de los buses de un microprocesador transportan voltajes que representan niimeros bina- rios (1's y 09). El microprocesador, los puertos de centrada/salia y la memoria, responden tinicamente a «<0s mtimeros binarios codificados electnicamente. El bus de datos. Lineas bidireccionales EI bus de datos lleva datos ¢ instrucciones hacia y desde el microprocesador. Las instrucciones pro- Data OUT Data sid @ 0) alg) ceden siempre de la memoria mientras que los datos que procesa u obtiene el programa de ins- trucciones, puede provenir de o ir hacia la memo- tia 0 los médulos de entrada/salida, Generalmente, el ntimero de lineas de en- trada es igual al nvimero de lineas de salida. Este niimero define la longitud de la palabra de da- tos del microprocesador. Son comunes longitu- des de palabra de 4, 8, 16, 32 y 64 bits. En la figura 2.4, por ejemplo, se muestra un micto- procesador de 8 bits. En este caso, tanto el bus de datos de entrada como el bus de datos de salida con de un byte, es decir de ocho (8) bits. El imero total de pines asignado en el cicuito integrado del bus de datos puede reductse prictica- mente en un 50% si se utilizan los mismos puntos de conexién tanto para los datos de entrada como ppara los datos de salida, pero no para ambos simulté- rneamente. El bus de datos ai constituido es bidiree- cional en el sentido de que a informacién puede circu- Jar entrando o saliendo del microprocesador. La for- ‘made representarun busde datos bidireccional para un :microprocesador de N bits se ilusa en la figura 2.9 Unbusbidireccional puede construirse con com- ppuertassr-tave para controlar la direccién del flujo de informacién. La figura 2.9 (a) representa un micro- procesador de cuatro bits con un bus de datos bidirec- ional, En la figura 2.9 (b) se muestra la configura- cién de una linea de bus bidireccional. Las Kineas de seleccién S1 y $0 proceden del bus de control. BOUT BoB, ‘pan BOB: Linea de bus direcional de datos BOUT: Control de salida de datos ‘BIN: Control de entrada de datos ovo, — $1, 80: Conta de bus. HOLDA: Contral de garantia de bus (lta impedancia) Figura 2.9 (2) Meroprocesador de 4 bits con bus de datos bidrecconal (0) Linea de bus bidreccional. aerate totes Aigice: > spit Cole onl La transferencia de datos de entrada o salida desde o hacia el bus de datos se realiza, respecti- vamente, con $1S0 = 10 y $1S0= 01. La lineade itarse con $180 = 00 para im- twansferencia de informacién en- tre el bus de datos y el microprocesador. Las ineas de seleccién pueden utilizarse para informar a los médulos externos que comparen el bus de datos el estado del bus bidireccional en un momento dado, Este es el propésito de las lineas marcadas como DBOUT (bus de datos en el modo de salida), DBIN (bus de datos en el modo de entrada) y HOLDA (bus de daros en estado de alta impedancia) en la figura 2.9 (b) La informacién contenida en el bus de datos puede representarse numéricamente de varias for- ‘mas: binaria, octal y hexadecimal, principalmente. Considérese, por ejemplo, un microprocesador de 8 bits con el bye 10111011 en las lineas D7 a DO del bus de datos, siendo D7 el bie mds significativo LSB y D0 el bit menos significativo o LSB. Esta palabra de datos representada como un niimero binatio es simplemente 10111011(B) 6 10111011(2), representada como nimero octal 5 273Q 6 2738 y como nimero hexadecimal (la més usada) es BBH 6 BBI6. La forma de conver- tir mimeros binarios en ocrales o hexadecimales y viceveresa se explicard en detalle en la seccién de programacién, Los sufijos B,Qy H, y los subindi- ces 2, 8y 16 enfatizan el sistema numérico (bina- rio, octal y hexadecimal) de cada presentacién, A pesar de que el sistema hexadecimal pro- porciona una forma muy compacta y concisa de expresar el contenido de un bus de datos, no podemos olvidarnos completamente de la re- presentacién binaria, En una aplicacién real, esta liltima nos permite identificar ficilmente, por ejemplo, cual interruptor ha de ser abierto 0 cerrado en un momento dado para obtener una condicién de entrada especifica 0 cual lampara ha de ser energizada para obtener un efecto de salida determinado. El bus de direcciones. Espacio de memoria El bus de direcciones contiene la informacién digital que envia el microprocesador a la me- motia y demds elementos direccionables del sis- tema para seleccionar una posicién de memo- ria, una unidad de entrada/salida 0 un registro particular de la misma. El mémero de lineas dis- ponible en el bus de direcciones (n) determina el tamafio maximo de memoria que puede ser acomodado en el sistema (2°). Asi, por ejemplo, un microprocesador con tun bus de datos de 8 bits y un bus de direccio- nes de 16 bits (tipico) tal como el Z-80 puede manejar directamente una memoria de 2!° 65536 (64K) posiciones, cada una contenien- do un byte (palabra de 8 bits). Naturalmente, una ver scleccionada una posicién de memoria, el microprocesador debe estar en capacidad tanto de almacenar informa- cidn en esa localizacién (operacién de escritu- ra) como de extraerla (operacién de lectura), La cantidad de memoria utilizada en un sistema con microprocesador depende de la aplicacién specifica y es a menudo inferior a la maxima que puede manejar el bus de di- recciones. El conjunto completo de localiza- ciones de memoria a las que puede tener ac- ces0 un microprocesador, se denomina espa- cio de memoria, Asi, por ejemplo, el espacio de memoria de un microprocesador de 8 bits con un bus de direcciones de 16 bits (por ejemplo el 8080) es simplemente 2" = 64K. En el caso de un microprocesador de 8 bits con un bus de direcciones de 16 bits, el espacio de memoria puede ser visualizado gré- ficamente como un mapa de 65536 direccio- nes de memoria, cada una conteniendo un byte, la mis baja de las cuales es 0000H y la mis alta FFFFH, figura 2.10 ®& icra a arena! aa 64k 002 z | Ey Note que la direccién de memoria seincremen- taen 1000H cada 4K (=4096) ditecciones de espa- cio de memoria. Observe también que cada 1K (=1024) posiciones de memoria, la direccién de me- moria se incrementa en 400H. La memoria puede dividirse también en péginas de memoria, cada una contiene 256 palabras y cubte 100H direcciones de ‘memoria, Hay, por tanto, 4 paginas en 1K de me- ‘moria, Las direcciones en la pagina de mis bajo or~ den van desde 0000H hasta 0OFFH, en la siguiente desde 0100H hasta 01FFH, y asf sucesivamente, El bus de control El bus de control contiene la in- formacién que enviael micropro- cesador a los elementos del siste- mao bien larecibe de estos con el propésito desincronizarla opera- én de los circuitos extemos. EL rimero de lineas del bus de con- trol es variable y depende del mi- ‘croprocesador particular uiizado. Organizacién de un sistema basado en microprocesador En [a figura 2.11 se muestra la ‘estructura organizativa de un sis- Figura 2.10. Espacio de memoria Teoria tema tipico basado en mi- croprocesador. Note que consta de cuatro elementos principales: una memoria, un microprocesador, un puerto de entrada y un puerto de salida, El microprocesador ‘est4 conectado a todos los otros componentes a tra- vés del Bus de datos. Las sefiales del Bus de control, conjuntamente con las del Bus de direcciones, deter- minan que elementos se comunican con el micro- procesadoren un momen- to dado, Estos tres buses configuran el bus del sis tema y el gobierno del mismo es responsabilidad del mictoprocesador. 0100: 0000! La secuencia de instrucciones que cons- tituyen el programa que debe ejecutar el mi- croprocesador estan almacenadas en un drea de la memoria, En el momento de iniciar el sistema, el microprocesador sitia en el bus de direcciones la direccidn de la posicién de memoria donde se encuentra la primera ins- truccién. Como resultado, la memoria entrega y Desde ispsitivos ‘de entrada Figura 2.11. Diagrama de bloques de un sistema basado en un microprocesadar cur prion srs wrote AGRE 7: @> mee Los microprocesadores esta informacién en el bus de datos. Después de interpretar y ejecutar la primera instruc- cién, el microprocesador busca la siguiente instruccidn, la ejecuta y asi sucesivamente, La generacién de la serie de instrucciones nece- sarias para que el microprocesador realice una tarea determinada, es lo que se denomina su programacién, Secuencia de operacién de un sistema basado en un microprocesador Hasta aqui hemos visto la arquitectura genéri- ca de un mictoprocesador y de un sistema ba- sado en uno de estos dispositivos; ahora anali- zaremos con mas detalle los pasos que sigue un sistema de esta naturaleza para ejecutar las instrucciones contenidas en un programa y aprenderemos como trabajan en conjunto cada uno de los bloques del sistema para desarrollar estas tareas. Un microprocesador es un diminuto con- junto de miles o millones de clementos 16 cos ¢ interconexiones disefiado para respon- der a las instrucciones de un programa, el cual le indica lo que debe hacer en cada instante, Sin un programa que le de vida, un micro- procesador y todo el hardware conectado a su alrededor, serfa una masa inerte de compo- nentes electrénicos sin un objetivo especifi- co. De hecho, la funcién primaria de un mi- croprocesador es ejecutar programas. Nom apoganacakulaun ion yanscem ere (DEA en psn se moma Pl Las instrucciones que constituyen un pro- grama se almacenan en la memoria del ma como patrones de unos y ceros, organiza- dos en grupos de 8, 16, 32 y més bits, depen- diendo de la longitud de la palabra de datos del microprocesador. ste PALABRA: Es un grupo de bits que se tratan como una sola unidad. El més comtin es el byte, el cual estd formado por ocho (8) bits. Cuando se trabaja con un microprocesador, s importante comprender su conjunto de ins- trucciones y ser capaz de utilizarlas en la elabo- racién de programas; se debe entender la forma como el mictoprocesador las ejecuta y adquirir la habilidad para emplealas eficientemente en Ja manipulacién de datos. Para ejecutar las operaciones indicadas por una instruccién, el microprocesador debe empezar por direccionar 0 encontrar la posi- cién de memoria donde se encuentra la ins- truccién, leerla y decodificarla o interpretar- la por medio de sus circuitos internos. Los pasos anteriores constituyen lo que se deno- mina ciclo de instruccién. Durante su opera cidn normal, un microprocesador no hace otra cosa que ejecutar repetidamente ciclos de instruccién. ‘Figura 2.12 Ejemplo de un programa en lenguaje de maquina @ Serr: sur tr ancients Figura 2.13 Ejomplo de un programa objeto Para ejecutar un programa, un micropro- cesador debe tenerlo almacenado en forma bi- naria (patrones de 1 y 0) en posiciones adya- centes de la memoria de programa del sistema. Esta forma binaria del programa se denomina Lenguaje de maquina y es el Ginico lenguaje que entiende el microprocesador. En la figura 2.12 se muestra un ejemplo de un programa en len- guaje de maquina para un microprocesador 8085, Para evitar la confusién que, desde el punto de vista del programador, puede gene- rar una larga lista de unos y ceros, estos cédi- {gos se pueden representar en forma hexadeci- mal, constituyendo lo que se denomina un pro- _grama o cédigo objeto. En otras palabras, un c6- digo objeto es, simplemente, una representa- cién abreviada de un programa en lenguaje de maquina, figura 2.13. Por ejemplo, 101111 01 se representa como BD, 0000 0001 como 01, 1110 0110 como E6, 0000 111 1como OF, etc. No todos los eddigos de un programa ob- jeto o en lenguaje de méquina, corresponden ainstrucciones ejecutables. Muchos de ellos co- rresponden a datos y direcciones que son uti- lizados por el programa para propésitos parti- culares. Los cédigos correspondientes a instruc- ciones ejecutables se denominan cominmen- te cédigos operacionales (opcodes). Por tanto, en un sistema de 8 its, los programas en len- guaje de maquina se reducen a unas cuantas secuencias de grupos de 8 bits (I byte) situados en algin lugar de la memoria. Estas secuencias representan a su vez una mezcla de instrucciones para el microprocesa- ria dor (opcodes) y datos sobre los cuales ha de ope- rar el mismo. Cada eddigo de operacién le in- dica, directa o indirectamente al microproce- sador, la direccién de memoria donde se en- cuentra almacenada la siguiente instruccién ejecutable, Al recibir un cédigo de operacién, los circuitos internos del microprocesador lo descifran. La informacién obtenida permite al ispositivo identificar la naturaleza de los bytes que siguen al opcode. El conjunto de cédigos de operacién (opco- des) alos cuales puede responder un microproce- sador, constituye su conjunto de instrucciones (Instruction Set) .Cada microprocesador tiene su propio conjunto de instrucciones, cada una re- presentada por un opcode diferente. El nimero maximo de cédigos de operacién que puede des- cifrar un microprocesador es igual a 2%, siendo N el tamafo de la palabra de datos del mismo. Las instrucciones de un microprocesador pueden agruparse en tres grandes categorias se- giin su funcién: la primera son las instruccio- nes de transferencia de datos, las cuales mue- ven informacién sin alterar su contenido de una parte a otra del sistema; la segunda categoria es la de procesamiento de datos; estas instruccio- nes transforman la informacién desde el punto de vista légico 0 aritmético; y la tercer catego- son las instrucciones de control de progra- ma, ellas determinan la secuencia de ejecucién de las instrucciones. En la figura 2.14, observamos un diagra- ma simplificado de la arquitectura de un siste- ma basado en un microprocesador, en el cual basaremos nuestro an dlisis de la interaccién en- tre cada una de las partes del sistema y la se- cucneia que presenta. En este diagrama se pueden notar cuatro bloques Fundamentales: la memoria, la unidad de control, la unidad operativa y cl médulo de entradas y salidas. Todos ellos conectados a tra- vés de los buses de direcciones, datos y control. ain racis Se minsmeumaen QI @ Us microprocesadores ‘Bus de datos, Unidad de control e Memoria instruciones Geeta ate ete oe) astccone Came: Decoifcador Fae oe ee ONCIHT Bus de dreciones or Caen ‘Bus de datos ¢ instrugho Modulos y sala cy Pertrcas del am ‘mundo exterior Figura 2.14 Diagrama de bloques simpicado de un sistema basado en un microprocesador ® AGRCIT: C100 tere sore meroconnotaeres El bloque 1 es la memoria; en clla se al- macenan una serie de cantidades codificadas en ocho 8 bits, Para entender la operacién de una memoria, puede hacerse una analogfa con un casillero de correos, donde existen muchas casillas para diferentes usuarios, cada una con un niimero o direccién que la identifica y con la propiedad de almacenar cualquier clase de informacién. Pues bien, una memoria posee un conjun to de posiciones cada una con su propia direc- cidn, y en cada una de dichas posiciones puede existir cualquier dato de ocho bits. La posicién que se va a acceder es indi- cada por el bus de direcciones al Decodifica- dor de Direcciones (D1), el cual es un dispo- sitivo de » entradas y 2" salidas. Dependien- do de la entrada binaria que lea, habilita la lectura de una direccién determinada por medio de la activacién de la linea correspon- diente, figura 2.15. Los 8 bits de la posicién accedida salen por el bus de datos hasta el Registro de Datos (RD), si se efectiia una ope- racién de lectura. Cuando se trata de una operacén de escritu- ra, el contenido digital de las 8 Iineas del bus de datos se carga en el Registro de Datos y, desde él, en las 8 celdas de la posicién direccionada. El pro- ceso de direccionar una posicién y leer 0 grabar tun dato se denomina ciclo de memoria. Ps ‘= | tence (ieee |] —> area % 16 pascones : a : ramen Figura 2.15 Sein el dato introduc por el bus de arecciones, se habia la comunicacién con una determinada posicién de ‘memoria RECUERDE QUE La memoria principal de un sistema basado en un microprocesador se construye con memorias de tipo clectrénico, que se clasfican en dos grandes grupos: Memorias ROM (Read Only Memory). Son me- ‘morias que una vez grabadas, permanecen con di- cha informacién permanentemente y slo pueden serlefdas. Son memorias de “s6lo lectura” y se uti- lizan para guardar los programas 0 datos fijos. jemorias RAM (Random Access Memory). El contenido de sus posiciones puede ser leido y es crito. Al igual que las memorias ROM, son de ac- ‘eso aleatorio, es decir, que para acceder a una po- sicién determinada no hay que pasar por las ante- riores, como sucede en las cintas y discos magné- ‘ticos. Son las més répidas y su tiempo de acceso se imide en nanosegundos. \ El principal inconveniente de las memorias tipo RAM es que son volatiles, o sea, al cortarse cel suministro de energia eléctrica, cuando se des- ‘conecta el sistema, pierden la informacién que contenian. En un sistema con microprocesador, ‘se utilizan este tipo de memorias para almacenar cl resultado de las operaciones y los datos de las. ‘variables que se van creando en el programa. El bloque 2 es la unidad de control cuya funcién primordial es la de interpretar y eje- cutar las instrucciones. El cédigo binario de la operacién que se va a ejecutar, se deposita ini- cialmente en el Registro de Instrucciones (RI) y luego se traslada al Decodificador de Instruc- ciones (DD), cuya mision es seleccionar en una memoria ROM un conjunto de posiciones que corresponden al cédigo recibido y en las que se encuentran los cédigos de las operaciones clementales (0 microinstrucciones) que compo- nen las diferentes etapas en las que se divide la ejecucién de la instruccién decodificada. Las microinstruec cuenciador (S), que es el -s van pasando al Se- cuito Iégico de con- curs pct sobre Mizeconvtadres CAQICUT.: ® Los microprocesadores i deca Pe ia de cane Tony Figura 2.16. Movimients de Informacién de fos contends de las unidades que participan en la fase de bisqueda de una instrucion trol y tiempos el cual gobierna a todos los ele- ‘mentos del sistema y Ileva a cabo la ejecucién secuencial de las microinstrucciones. La fun- cién del Contador de Programa (PC) es en- viar por el bus de direcciones la posicién de la memoria donde se encuentra la siguiente ins- truccién que se va a ejecutar. Normalmente, este contador se incrementa en una unidad en cuanto la memoria acepta la direccién de la instruccién anterior. El bloque 3 cs la unidad operativa; alli se cjecutan las operaciones aritméticas, légicas, de desplazamiento, de roracién, de incremento, etc. Uno de los operandos que interviene en la operacién que va a efectuar la ALU (Unidad Idgico-aritmética), procede de un registro de 8 bits llamado Acumulador. El otro operando llega desde cualquier parte del sistema y se car- Patrica del <> ‘mundo exterior gao almacena en un registro auxiliar, Un re- giscro especial, denominado Registro de Esta- do, contiene una serie de bits que actuian como sefializadores de alguna caracteristica especi que se haya producido en la tiltima operacién efectuada por la ALU. Por ejemplo, un sefali- zador denominado Z. (cero), pasa a valer uno (A) si el resultado de la operacién que ha he- cho la ALU ha sido cero (0). El bloque 4 ¢s el de entradas y salidas y se cencarga de suministrar al sistema fos datos pro- cedentes del exterior, as{ como de llevar los re- sultados a los periféricos del mundo real. Secuencia de operacién de una instruccion En un microprocesador, el principio de eje- cucién de cualquier instruccién tiene carac- Bus de crectiones Figura 2.17 El contenido del Contador de Program (PC) pasa al Registro de Direccones (RO) @® RHEIT: C120 ict str Mexocontcedres Bus do di Bus de datos e instruc Peritrics del << ‘mundo exterior aos irecciones Unidad operatva ‘Figura 2.18 El contenido dela posicén dela memoria se deposita en el Registro de instruccién teristicas similares. En todas ellas hay dos tiempos fundamentales Hamados busqueda (fetch) y ejecucién (execute). El diagrama de bloques de un sistema con microprocesador permite un anilisis répido de la forma en que se ejecuta una instruccién cualquiera; por ejemplo, la correspondiente a la suma de dos operandos. El contador de programa empieza conte- niendo la diteccién de la memoria principal donde esta almacenado el cédigo binario de la instruccién de suma. Luego ese contenido pasa a través del bus de direcciones hasta la memoria principal, donde se decodifica y selecciona la posicién que contiene el cédigo binario de la operacién, Dicho cédigo de “maquina” sale de la memoria por el bus de datos hasta el registro de instrucciones dela Unidad de Control, don- de se deposita. Toda esa fase de localizacién del cédigo de la instruccién mencionada, recibe el nombre de fase de buisqueda y es la misma para cualquier instruc: El tiempo de ejecucién empieza por un sub- tiempo de decodificacién de la instruccién y pro- curso} sigue con la parte de la ejecucién propiamente dicha que puede tener varios subtiempos, depen- diendo del tipo de instruccién, Fase de busqueda Ese comienzo de una nueva instruccién, el Contador de Programa (PO deposita en el bus de direcciones la direccién de la posicién de la memoria principal don- de se encuentra el cédigo de la instruccidn que se va jecutar. Dicho oédigo sale de la memoria principal porel busde datos hasta la Unidad de Control, donde se graba en el Registro de Inserucciones, figura 2.16. Como la CPU no sabe que tipo de ins- truccidn va a ejecutar, los tiempos de bisque- da son exactamente iguales. El desarrollo de esta fase es la siguiente: 1. El contenido del Contador de Programa (PC), a través del bus interno de la unidad de con- trol, aparece en el registro de direcciones de me- moria, figura 2.17. 2. El contenido de la posicién de memoria aparece en el bus de datos. Esta informacién se deposita en un registro de instruccién (RI), figura 2.18, rico ste Mercontlecores GAC ed ey Sf ecombl alos Figura 2.19. Comportamiento de la unidad de contro durante la fase de ejecucién ‘Almismo tiempo, el Contador de Programa (PC) se incrementa, puesto que él debe siempre sefia- lar la direccién dela siguiente instruccidn que se va a ejecutar, para cuando se necesite. De esta forma se ha completado la operacién de bisgue- dea de una nueva instruccién, Decodificacién de una instruccién Es la primera parte del tiempo de ejecucién y es también exactamente igual para todas las instrucciones, puesto que aiin no se sabe que operacién hay que efectuar. De momento, la parte de la instruccién llama- da cédigo de operacién (opcode), se transfiere al Decodificador de Instrucciones (DI) y aqui empieza la parte diferente de la instruccién. rel Decodificador de Instrucciones el cédigo de la instruccién en curso, se encarga de seleccionar en la memoria de microinstruc~ ciones aquellas que corresponden a dicho cédi- go. La llegada de las microinstrucciones al Se~ cuenciador, origina una serie de sefales de con- trol que regulan la cjecucién de las diferentes eta- pas en las que se descompone la instruccién. Enel caso de una suma, uno de os sumandos ha de estar contenido previamente en el Actomu- Jador, mientras que cl otro llegaré del registro auxi- liat, eneralmente, desde la memoria de datos, cuya direccién correspondiente vendré acompafiando al cédigo de la operaci6n en la instruccién. La ALU efectuaré la suma y el resultado se de- tard en el Acumulador, al mismo tiempo que los bits sefualizadores del Registro de Estado, tomaran el valor correspondiente en funcién del resultado, Ejecucién de una instruccién En resumen: completada la fase de biisqueda, el cédigo de maquina del Registro de Instrucciones llega al Decodificador de Instrucciones, que se encarga de localizar las posiciones de la memoria de microinstrucciones que correspondan. Dichas microinstrucciones van introduciéndose al se- cuenciador a medida que se realiza el proceso. El secuenciador, con cada microinstruccién, envia tuna serie de sefiales de control a los elementos del sistema que deben actuar en cada momento. Ejecutadas todas las microinstrucciones que com- ponen la instruccién, el Contador de Programa se incrementa en una unidad y el sistema pasa a Ja ejecucidn de la siguiente instruccién del pro- grama, figura 2.19. Hay varios tipos de instrucciones bésicas que pueden agruparse de acuerdo con diferen- tes criterios, tales como funcionalidad, nime- 10 de ciclos de memoria utilizados, numero de palabras que utiliza, etc. Dependiendo de las caracteristicas de la computadora y de su mi- croprocesador, los diferentes tipos de inscruc- ciones serén de una, dos o més palabras y ne- cesitarén uno 0 més ciclos de memoria para llegar a obtenerse enteramente en la unidad de control, En funcién del nimero de palabras y del tipo de instruccién, la ejecucién tiene ca- racteristicas diferentes. Estos pardmetros de- terminan, por ejemplo, el ntimero de veces que el sistema debe acceder a la memoria para leer toda la instruccién. eur: Curso practico sobre Microcontroladores

También podría gustarte