Está en la página 1de 197
Curso practico de RSME eT eas circuitos integrados y microprocesadores Ct CR Ct am ttm cl am 2) a Ea ee LCR muon Loon tC (=a ELECTRONICA DIGITAL Realizado y editado por EEKIT. Compaiifa Editorial Electrénica Gerente general y comercial William Rojas H. Director editorial Felipe Gonzalez G. Autor Felipe Gonzalez G, Diagramacién electronica Nubia Patricia Tamayo ©CEKIT S.A.1993 Pereira - Colombia, Prohibida su reproduccién parcial o total por cualquier medio sin permiso escrito del editor. ISBN (Obra comleta) 958-9108-27-X ISBN (Volumen 4) 958-9108-31-8 ISBN (Fasciculo 34) 958-9108-65-2 ANTARTICA S.A PRINTED IN CHILE IMPRESO EN CHILE 12.11.93 Circuitos integrados y microprocesadores 1 Curso prictlco de ELECTRONIC forma de 40 fatcicuoe de parc sem DIGITAL, circutos Inteprades y mleroprocesadores publics en 5, encuademnbiesen cinco volimencs (Cada fastcuo consa de 20 piginas y 4 de cubienas. 16 piginas extn ddicada al coro de ELECTRONICA\ DIGITAL, csruitosintgradony icroprocesadoreque comprende S6lecrionestesricasy mamerosa acvidadcs pcticas con los pasos nsrucciones para ensambla un eomprobador lgico de fis medals. Estas pinay son ‘encuademabes en Jos volmenes 1, 2,3 y 4 Las eatro pina centraes de cada fascculo son encuaderabls por separado en el volume 3y estén deicads ala descripcién dtallada de 2 proyectos completos. Por ena rans alexcuademsat lo Vokimenes debe cide de desprender previamente las evar péginas centrale de todos lot fastculos y guardaras hasta exando se ‘completen, con el facioolo 40, momento en el eutl pode encvademer con ella el valunen CConelfsciulo que completa cade unodelos cinco volimene que confrman esta cbr, se pond ala vests tapas para su encosdemacia, Lo vlimenes se eoafonnan de Ia sguiene maners Volumen N'1.Fatefculor 1a 10 piginas 64 164 Volumen N®2,Fasetcuor L1 a 19 pina 165 2324 Volumen N*3, Faeteuoe 20 a 28 - paginas 325 a 458, Volumen N*4,Fasctculos 29 al $0 -piginas 469 660 ‘Volumen N*S Libro de proyecos- paginas cenuales 5 160 ‘CEKITS.A. garaniza a poblicacis dea wulidad de obra y de a tapas necesarias para evencuademacica y el servicio de nimeros srasados hasta un ao después determina la cieulaci del hime fscculo Tein Ja calidad de or componenes ye correct fanconamiento de los proyectos DISTRIBUCION INTERNACIONAL Y NUMEROS ATRASADOS Distribuldor en Cotombla: KIT S.A. ia Boral Electrica Calle N° 6-22 Pod A.A, 194 ‘Tee 352191-382194-356135 FAX 342615 Perr Colombia Distribuidoresen Argentina EDITORIAL VANIDADES S.A. Prd 263, Ser Piso 1067 ital Federal, Buenos Aires, Argentina ‘Telefonor 342'8946/ 5178/8083 FAX: (681) 3348053 ‘Telex 17699 EDIVA AR Acsherid a Asocacin de Editres de Revistas Ealtorlal Vanidades S.A., Conslo ecutivo: Presidente: Jullo Poblte Benet Gerente General yedlor: Carls A. Magurno (Capital Federal Varcaro, Sinchex y Cla. ‘Moreno N° 794, 9 Piso, OF 207, CP. 1081 Benes Alves Interior Diatibuidora Benn SAC Santa Magdalena NY S41, 1277 Buenos Atee Distribuior en Chile: Ealtrial Andina S.A. ‘Avenida E1Golt 203, Santago 34 Chile Teléfonos: Mesa de entradas (562)231-7053, 252.8818 / 292-6825 Fax (56m) 2328806 Télex 440221 EDAND CZ Distribuidor en Uruguay Distbaidora Carergs emia 688 Montevideo, Repdblica Orienal de Ur ‘Telefonos: (89) 96-1941 [95-4540 Fax: 96-1941 ‘Telex 2391 GRAFIA S.A. Distribuldor en Paraguay: Selecciones SAC Falgencio RL, Moreno 270 ‘Asinelén, Parag ‘Telefonor (S95 Fax: 449639, 9 ) 481588 / 201863 Distribuidor en Bolivia: Diamo Lida, Comercio $05 La Par, Bolivia Telefonox$912) 353119 Lecci6n 41 Introducci6n a los computadores + Introduccién + Sistemas digitales. El computador digital + Hardware vs software + Computadores, supercomputadores, minicomputa- dores y microcomputadores + Evoluicin de los computadores. Breve historia de los primeros afios + Aplicaciones de los microcomputadores + Computadores de la quinta generacién + Tecnologia: Equipos Automdticos de Prueba Introduccion A través de las lecciones anteriores de este curso, hemos estudiado una amplia variedad de compo- nentes, circuitos y aplicaciones digitales: compuer- tas, codificadores, decodificadores, multiplexores, demuhtiplexores, relojes, PLL's, detectores de flan- cos, monoestables, flip-flops, registros, contado- res, sumadores, comparadores, ALU's, memorias, PLD's, conversores A/D y D/A, etc. También hemos ido un poco més lejos explo- rando algunos circuitos digitales especiales (gene- radores de caracteres, interruptores bilaterales, reco- nocedores de yor, sintetizadores de sonidos y melo- dias, potencidmetros digitales, etc.), conociendo algunos instrumentos de prueba (puntas Wégicas, multimetros, osciloscopios, etc.) y familiarizindo- nos con los aspectos basicos de la reparacion de los circuitos digitales. En otras palabras, hemos realizado un completo recorrido por el mundo de la l6gica digital, com- binatoria, secuencial y programable. Con todo lo que hemos aprendido estamos ahora listos para dar ln gran salto hacia adelante y penetrar al fascinante mundo de los microprocesadores, €308 extraor- dinarios chips programables que han revolucio- nado nuestra época y han introducido cambios sus- tanciales en nuestra forma de vida (figura 703). Encontramos los microprocesadores en casi todos Ios nuevos productos que salen al mercado: relojes, juguetes, calculadoras, computadores, reproduc- tores de discos compactos (CD's), estéreos, video- grabadoras, robots, instrumentos de laboratorio, televisores, juegos, equipos de oficina, de comuni- caciones, médicos, industriales, automotrices, co- merciales, etc. Microprocesador tipico CCEKIT-Curso priciico de circuitos digualesy microprocesadores 453 Es por esta razén que consideramos de gran im- portancia continuar este curso de electrénica digital con el tema de los microprocesadores, una tecno- logfa que desde su inicio ha mostrado una dindmica y una posiblidad de desarrollo superiores a la de ‘cualquier otra innovacién dentro de la electrénica. Si en la primera revolucién industrial las mé- quinas remplazaron los misculos, en la segunda, la actual, los microprocesadores y sus aplicaciones intentan remplazar la potencia del cerebro. El microprocesador es un producto de la tec- nologia de fabricacién de circuitos integrados de gran escala (LSI) pero también lo es de la tec- nologia de los computadores digitales. Por esta ra- z6n, para apreciar completamente los origenes y las, posibilidades de los microprocesadores, es necesa- io conocer la evolucién de los computadores di- gitales, Este es el objetivo de la presente leccion. En la leccién 42 conoceremos como funciona y como esté estructurado un sistema basado en mi- croprocesador (microcomputador). En la leccién 43 comprenderemos como se comunican los diferentes blogues funcionales de un microcomputador defi- niendo el concepto de bus. ‘A partir de la leccién 44 iniciaremos formalmente elestudio de los microprocesadores, su evolucién y sus aplicaciones. En la leccién 45 descubriremos su secreto definiendo y desarrollando el importante concepto de programa. En la leccién 46 conoceremos como esti estructurado internamente un microprocesador y analizaremos la arquitectura de algunas microprocesadores tipicos. En laleccién 47 estudiaremos en detalle un micro- procesador representativo que utilizaremos como modelo para el resto del curso: el 8085 de Intel. Con este dispositive y otros chips de soporte usted construird en los proyectos centrales su propio siste- ma microcomputador. Conociendo el 8085, poaré comprender prictica mente cualquier otro microprocesador (280, 68 00, 6502, 1802, etc.). Ademés, este microproce- sador es la base para el estudio de los microproce- sadores que mds se han utilizado en la industria de os computadores (8086, 8088, 80186, 80286, 30386, 80486, etc). La leccién 48 esté dedicada al tema de los len- guajes de programacién de microprocesadores. Se definen los conceptos de lenguaje de maquina y lenguaje ensamblador. En la leccién 49 se estudian los dispositivos © puertos de interface de entrada/ salida que posibilitan la comunicacién de los micro- procesadores con el mundo externo, haciendo especial énfasis en la familia del 8085. 454 En la leccién 50 se describe como esté estruc- turado un sistema de desarrollo mfnimo con micro- procesador y construiremos, paso a paso, un micro- ‘computador sencillo desarroliado alrededor del mi- croprocesador 8085 y el chip de soporte 8155. Con este microcompuiador practicaremos la progra- macién del 8085 y realizaremos en el resto del curso, numerosas aplicaciones, En la leceién 51 conoceremos el juego 0 conjunto de instrucciones del 8085. Analizaremos como estén clasificadas y que hace cada una, En la leccién 52 aprenderemos a escribir programas con estas instrucciones, a dibujar diagramas de flujo y a rea- lizar tareas sencillas con nuestro microcomputador. En las lecciones 53 y 54 aprenderemos a pro- gramar los puertos de entrada y salida, a comunicar fuestro sistema microcomputador con el mundo extemo y a utilizarlo en tareas de control avanzadas, Es una de las lecciones claves de este curso. La leccién 55 es un recorrido general por el mundo de los sistemas autométicos de control i dustrial basados en microprocesadores. Para ter- minar, en la leccién 56 se presenta una visién glo- bal del estado actual de la tecnologia de los micro- procesadores y su proyeccién hacia el futuro, En los proyectos centrales paralelos a estas lee- ciones se cubren temas relacionados con el control de procesos industriales, se desarrollan aplicaciones especiales no cubiertas completamente en las leccio- nes de electrénica digital y se construye un sistema de desarrollo con “8085, Se suministrarin los planos detallados y las instrucciones de montaje del sistema asf como numerosas aplicaciones. Fieles a la filosofia de CEKIT, trataremos estos importantes temas en el lenguaje propio y sencillo, Pero ameno y eficaz, que siempre nos ha ca: racterizado. Nuestro objetivo es hacer accesible la tecnologia de los computadores, microprocesado- Fes y microcomputadores a todos aquellos que han seguido nuestro curso de Electr6nica Digital, se han iniciado con el Curso Basico de ElectrOnica o se acercan por primera vez a nuestro método de ensefianza, Los computadores, en general, tienen dos gran- des ramas de aplicacién: el procesamiento de datos 0 informacién y el control automatico de procesos. Dentro del procesamiento de datos estén las aplicaciones comerciales y administrativas, las ba- ses de datos, el procesamiento de palabras, Ias ho- jas electrénicas, los programas de disefio grifico, mecdnico y de ingenierfa por computador y un sinntimero de aplicaciones que no alcanzarfamos a mencionar en este curso. Es en Ia rama de control automético de procesos en donde queremos iniciar al estudiante de elec- trénica con las lecciones siguientes. Este campo, un poco desconocido para el publico en general, es una elas aplicaciones mis importantes dela electronica moderna y en donde los microprocesadores han logrado acelerar el avance de todas las ramas de la industria y de los servicios. Conocer Ia estructura (hardware), los métodos de programacién (software) y las conexiones con el mundo real (interface) de los computadores, debe set parte del perfil de todo ingeniero, técnico 0 estu- diante relacionado con la electrénica o los sistemas. A través de este curso usted conocer como esté construido y como funciona un computador y adquiriré las nociones basicas de esta tecnologia. Siguiendo cuidadosamente las lecciones del mis- mo y realizando las pricticas sugeridas, usted cono- cerd y participard activamente de una de las facetas, mis interesante y actuales del maravilloso mundo de la electrénica. Estamos seguros que encontraré muchas satisfacciones de tipo intelectual, prictico y econdmico. Una vez delineado a grandes rasgos el camino que debemos recorrer, es hora de empezar. Puesto que nuestro interés se centra en los sistemas de control digital con microprocesadores, es impor- tante tener claro el concepto de que es un sistema de control y como esta estructurado, Por esta raz6n, iniciaremos esta leccién exami- nando los elementos de un sistema digital genérico, Posteriormente, veremos como est organizado un sistema tipico de computador y realizaremos un recorrido a través de la historia de los computadores para apreciar su evolucion. En la proxima leccién estudiaremos mis en detalle como estd estructurado internamente un computador digital. Se afirma, con toda razén, que el computador digital es, juinto con el motor, uno de los inventos mas decisivos en la historia de la humanidad, Todos los sistemas tecnolégicos modemos estén compuestos por un método de movimiento y un sistema de control. El motor y el computador digital ‘ocupan, en su orden, estos lugares. Sistemas digitales. El computador digital Un sistema digital puede definirse como un con- junto de componentes interconectados que procesan informacién en forma digital. La mayoria de dispo- sitivos que encontramos en nuestra vida diaria son sistemas digitales: calculadoras, computadores, re- lojes, maquinas de oficina, etc. Tambien existen sis- temas eléctricos, mecénicos, quimicos, biolégicos, naturales, planetarios, etc. En todos estos casos, la palabra "sistema" sugiere un conjunto de elementos relacionados entre sf para realizar una funcién bien definida que ninguno podria hacer por s{ mismo. En el caso de los sis- temas digitales que hemos visto hasta el momento, estos elementos 0 subsistemas pueden ser conta- dores, registros, decodificadores, memorias, etc. Un sistema digital genérico (figura 704) consta de una serie de elementos pa Ja entrada, salida, procesamiento, control y almacenamiento de infor- macién, Los enlaces o relaciones entre estos ele- mentos sc establecen a través de caminos de sefial, por ejemplo cables, que llevan o transmiten infor- maci6n digital entre un punto y otro. Estructura de un sistema digital Un ejemplo tipico de sistema digital es el compu- tador personal, Un computador es, bésicamente, un procesador de informacién (datos). Toma una infor- macién suministrada desde el mundo externo, la procesa de acuerdo a las instrucciones detalladas de lun programa y envia los resultados nuevamente al mundo extemno, La mayorfa de nosotros estamos familiarizados con los dispositivos externos que un computador lle- va acoplados (figura 705): un teclado, un mouse, una pantalla, un pa de unidades de disco flexible y una impresora, Pueden existir también otros dis- positivos como una unidad de disco duro, una tar- 4Jeta digitalizadora, un modem, un joystick, un lec- tor de cédigos de barras, etc. Todios estos componentes estin conectados por medio de cables al computador central o unidad cen- tral de procesamiento (CPU) del sistema, Para efec- 10s practicos, un computador puede dividirse en cin- co secciones bien definidas, como se muestra en la figura 706. En la lecciGn 42 describiremos en de- talle como opera este sistema. La secci6n de entrada comunica el usuario con la maquina, permitiendo que este ingrese la informa- cién que desea procesar. Esta unidad convierte el lenguaje humano en un lenguaje binario que en- CEKIT- Curso préctico de cireuitesdigitalesy microprocesadores 455 Sistema computador tipico tiende el computador. La unidad aritmética de la CPU realiza las operaciones aritméticas y I6gicas re- queridas para la ejecucién de una determinada tarea, ‘Diagrama de bloques de un computador digital Avitmética La seceién de memoria de la CPU es el drea don- de se almacenan datos y programas, Existen dos cla- ses de memoria en la CPU: 2) Una memoria ROM cuya informacion es per manente, es decir solamente puede ser accesada 0 lefda y no se pierde con la ausencia de alimentaci6n eléctrica. En esta memoria se almacenan los progra- mas de tipo residente, por ejemplo los que contro- Jan la operacién del microcomputador. Estos programas los escribe el fabricante del com- putador y cuentan con proteccién legal. 456 b) Una memoria RAM en la cual se escribe y se lee informacién de carécter temporal, por ejemplo datos 0 programas en etapa de desarrollo, Cuanto mayor es la capacidad de la RAM de un computa- dor, mayores son las posibilidades que ofrece al usuario del sistema, Las dimensiones de las memorias ROM y RAM de un computador definen, principalmente, el tama- fio de los. programas residentes (BIOS, ‘sistemas ‘operativos, lenguajes, etc.) y la cantidad de datos 0 de informacién que puede procesar temporalmente. La seceién de control de la CPU es el corazén del sistema computador. Dirige todas otras secciones para que operen en el orden adecuado, La seccién de salida comunica la méquina con el usuario, con- virtiendo el lenguaje binario del computador en una informacién humana reconocible, En resumen, la CPU tiene el control global del computador y es la responsable de la captacién, interpretacién y ejecucidn de la secuencia de ins: trucciones que constituyen el programa de la maqui na, Las caracteristicas particulares de la CPU hacen que un computador sea mas o menos potente que otro. La CPU de los computadores modernos es un microprocesador. Entre los dispositivos de entrada y salida més comunes estén las memorias secundarias o de alma- cenamiento masivo (por ejemplo discos magnéti- cos), los monitores de video'0 TRG, las impre. soras, los teclados, etc. En estos dltimos (figura 707), las teclas pueden estar agrupadas en un blo- que tinico, como en una maquina de escribir, 0 dis- tribuidas en varias zonas. Teclados Muchos computadores disponen también de un te- clado numérico y poseen teclas funcionales 0 pro- gramables las cuales, cuando se accionan, desarro- Tian una serie de instrucciones o comandos. Existen pantallas a color y en blanco y negro ast, como de baja y de alta resolucién grifica. Una consideraci6n importante es el nimero maximo de filas y columnas de caracteres que pueden aparecer sobre la pantalla, Dos formatos comunes son 16 filas x 32 columnas y 24 filas x 80 columnas. En muchos sistemas de microcomputador, espe- cialmente los orientados a control de procesos, son muy importantes como dispositivos de entrada/sali- da los transductores, es decir los componentes en- cargados de sensar las variables fisicas del proceso (luz, temperatura, humedad, etc.) y actuar sobre el mismo: termistores, relés, fotoceldas, motores, etc. En los proyectos centrales se describen varios transductores comunes y sus aplicaciones. Para almacenar grandes cantidades de informa- ci6n, en los computadores actuales se utilizan me- dios magnéticos y 6pticos similares a los empleados en la grabacién y reproduccién de miisica, siendo os mas populares los discos magnéticos. Existen dos tipos de discos magnéticos: el flexible o floppy disk (figura 708) y el duro o hard disk, Disco flexible Los discos flexibles vienen en tamafios de 8, 51/4 y 31/2 pulgadas y su capacidad de almacenamiento varia entre 350 Kilobytes y 1.4 Megabytes. Los discos duros operan en forma similar pero son més répidos y proporcionan mayores capacidades de almacenamiento. Los més populares van desde 10 Megabytes hasta 150 Megabytes. Estos y otros métodos de almacenamiento masivo se discuten en detalle en una futura seccién de tecnologia de este curso. Hardware vs software Los términos hardware y software son amplia- mente utilizados en el medio de los computadores. La palabra hardware define todos los componentes fisicos que constituyen un sistema de computador digital. Lo descrito hasta ahora en esta lecci6n intro- ductoria conforma el amplio mundo del hardware. La caracteristica més importante de los compu- tadores es que permiten almacenar en sus memoria programas 0 listas de instrucciones que pueden mo- dificarse y ejecutarse de manera automética, En el sentido mas amplio, se entiende por software el gonjunto de programas que utiliza un computador. El software es el componente légico de un sistema de informacién. Computadores, supercomputadores, mini- ‘computadores y microcomputadores La estructura interna de todos los computadores digitales es, bésicamente, la misma. Sin embargo, se ha planteado una divisién que depende, més bien, de las caracteristicas de operacién, Teniendo como parémetros la capacidad de memoria, la velo- cidad de operacién, , también, la capacidad de al- macenamiento masivo, los computadores modernos se clasifican en las siguientes categorias: + Computadores y supercomputadores. Son sis- temas de gran capécidad de memoria RAM y ROM y de muy alta velocidad. Se dedican, especialmente, al procesamiento a gran escala de datos, por ejem- plo manejo de impuestos, censos, etc. ‘Son titiles también en laboratorios de investigacion donde, por su gran velocidad de proceso, pueden solucionar complejas ecuaciones en tiempos muy reducidos. + Minicomputadores. La capacidad de estos compu- tadores es inferior a la de los computadores gran- des. Su arquitectura se basa en circuitos electréni- cos de alta escala de integracién (LSI), Son muy utilizados para el control de sistemas 0 procesos no centralizados. Una adecuada distibucién de minicomputadores ofrece extraordinarias posibilidades de procesa- miento. Se utilizan principalmente en el control de procesos industriales, en el manejo de sistemas de comunicacién y en laboratorios. + Microcomputadores. Aparecieron en 1976, en me- dio de gran desconfianza de parte de las compaifas fabricantes de computadores. Estaban compuestos CEKIT- Curso prictico de circuitosaigitales ymicroprocesadores 457 por una CPU integrada en un solo chip Wamado microprocesador. iban a baja velocidad y su capacidad de memoria era reducida. El pionero de este tipo de procesadores es, sin duda, el micro- computador Apple II (figura 709). Microcomputador Apple R t i ‘ Inicialmente,la aplicacién de los microcomputa- dores se limitaba al soporte de tareas personales como edicién de texto, contabilidades pequefias y simulaciones matemiticas modestas. Hoy las cosas son de otro color. Los microcomputadores tocan y sobrepasan los limites de los minicomputadores. La velocidad de procesamiento, a causa del per- feccionamiento de los microprocesadores, se ha incrementado de 1 MHz.a 30 MHzy lacapacidad de memoria ha crecido de 64 Kilobytes a 4 Gigabytes. Esto permite que los microcomputadores se puedan utilizar en toda clase de actividades, tanto a nivel de procesamiento distribuido de informacién como en controles industriales sofisticados y simples. Evolucién de los computadores digitales. Breve historia de los primeros aftos Como se mencioné al comienzo de esta leccién, el microprocesador es un producto tanto de la tecno- logia LSI como de la tecnologia de los computado- res digitales. Por tanto, para apreciar completamen- te los orfgenes y las posibilidades de los microprocesadores, es instructivo conocer Ia evolu- cién de los computadores desde sus orfgenes hasta nuestros dias. A través de la historia, el hombre ha inventado Gispositivos para ayudarse en sus célculos. Uno de 458 Jos mds antiguos es el Abaco, atribuido a los chinos, con el cual se pueden efectuar, manualmente, las 4 operaciones aritméticas basicas (suma, resta, divi- sign y multiplicacién). EI primer intento exitoso de una maquina de célculo automética se atribuye a Blas Pascal, quién en 1642 construyé la primera maquina mecénica de sumar conocida, realizada a base de engranajes. En 1671 Gottfried Leibniz adapt6 la sumadora de Pascal para realizar autométicamente multiplicaciones y divisiones. Esta primitiva calculadora, llamada la Rueda de Leibniz, fue perfeccionada sucesivamen- te y a mediados del siglo XIX se generaliz6 su uso. Los primeros intentos para construir una méqui- na computadora, capaz de efectuar célculos auto- miticamente, paso por paso, fueron realizados en Inglaterra en 1823 por Charles Babbage, quien dise- fio una méquinade diferencias que permitiacalcular logaritmos y otras funciones matematicas. A Babbage se le considera el padre del computador moderno. En 1830, el mismo Babbage desarrollé una computadora mecdnica mucho mds potente llamada por él Maquina Anaiitica (figura 710), lacual podia efectuar cdlculos mateméticos en forma automética y constaba de tres componentes esenciales: Maquina Analitica de Babbage 1. Un taller © procesador capaz de sumar, restar, multiplicar y dividir. 2. Un almacén o unidad de memoria construida con ruedas dentadas decimales numeradas y con una capacidad de albergar 1000 niimeros de 50 digi- tos. 3. Varios mecanismos de entrada y salida, incluyen- do una lectora de tarjetas perforadas, una perfo- radora de tarjetas y una impresora, La secuencia de operaciones 0 programa que debia efectuar el mecanismo se especificaban me- diante una serie de tarjetas perforadas, cada una de Jas cuales definfa un niimeroo una operacién. Debi- do a las limitaciones tecnolégicas de la época, la méquina analitica de Babbage nunca fue perfeccio- nada. En 1890, en Estados Unidos, Herman Hollerith, fundador de una empresa Mamada Tabulating Machine Company, disef y construyé un sistema para tabular los datos de la poblacién durante el censodeese afio, Lamdquina de Hollerith funciona- ba con tarjetas perforadas y utilizaba relés electro- ‘mecénicos. Implementaba ina manera de tabulacién ‘més eficaz que el despliegue habitual de ejes, engra- najes y ruedas de las méquinas calculadoras anterio- res pero no podia resolver ecuaciones. La Tabulating Machine Company de Hollerith se convirtid mas adelante (1924), bajo la direccién de Thomas Watson, en la IBM (International Business Machines), actualmente una de las empre- sas productoras de computadores mas poderosas del mundo. La principal competidora de la IBM en sus comienzos fue la Sperry Rand pero pronto otras, compafifas comenzaron a fabricar también calcula- doras mecénicas. Durante los primeros afios del siglo, las calcula~ doras mecdnicas se hicieron muy populares y su uso se generalizé en acerfas, almacenes, fabricas, ofici- nas del gobierno, etc. Sin embargo, ninguna de estas ‘méquinas servia para resolver ecuaciones complica~ das, por ejemplo las que describen la pardbola que ‘raza en su vuelo un proyectil de artillerfa, Los primeros computadores digitales operativos se construyeron durante los afios 30. En 1930, Vannevar Bush del MIT (Massachusetts Institute of Technology) enfrenté el problema de calcular ecuaciones construyendo un computador electro- mecénico llamado el Analizador Diferencial. Du- ante la década de los 30, las maquinas de Bush se utilizaron principalmente en investigaciones balis- ticas y andlisis de circuitos eléctricos. Sin embargo, los computadores modernos pro- piamente dichos surgieron del fragor de la segunda guerra mundial y como resultado de una serie de investigaciones secretas realizadas entre 1940 y 1945. En 1940, un grupo de cientificos encabezados por Alan Turig, habia sido reclutado en Londres por William Stephenson de la inteligencia briténica con un inico objetivo: vencerala ENIGMA, una méqui- na codificadora con la cual los nazis enviaban érde- nes en clave a sus comandantes. Como resultado del trabajo colectivo de este grupo, surgié el COLOSSUS, una méquina de dos mil tubos de vacfo que descifraba los mensajes de la ENIGMA y permitia a los briténicos anticiparse a los acontecimientos. El COLOSSUS utilizaba el Algebra boleana y el sistema binario para realizar operaciones aritméticas y una cinta de papel para introducir informacién. En 1941, Konrad Zuse en Alemania, heredero de las ideas de Babbage y quien desde’ 1934 haba empezado a trabajar en computadores electrénicos, present6 el computador mecénico Z3, basado en relés, al que siguié el ZA, utilizado por los nazis, durante la segunda guerra mundial. La mayor parte de las miquinas de Zuse fueron destruidas por el ataque aliado a Berlin en 1944, ‘Al mismo tiempo que Zuse construfa su primer computador, Howard H. Haiken, de la Universidad ce Harvard’ en Estados Unidos, desarrollaba un computador digital de uso general que comenz6 a funcionar en 1943 y fue construido en cooperacién con la IBM. La maquina de Haiken se denomin6 la Harvard Mark I, trabajaba con relés y era similar, en muchos aspectos,alamaquinaanaliticade Babbage, Posteriormente, durante la década de los 40, se desarrollaron otros computadores mas avanzados, basados en relés, como el Harvard Mark I, los cuales fueron répidamente superados por computa- dores electrSnicos, con tubos de vacfo, més répidos y Seguros. Histéricamente, el primer computador digital electrénico, basado en tubosal vacio, parece ser uno disefiado por John V. Atanasoff y Clifford Berry de la Universidad de Iowa en Estados Unidos a finales de los afios 30. Se trataba de una maquina relativa- mente pequefia, de 300 tubos y capaz de resolver sistemas ineales de hasta 30 ecuaciones. Sinembar- go, el computador de Atanassofi-Berry no alcanz6 mayor trascendencia, El primer computador digital electrénicoamplia- mente conocido fueel ENIAC (Electronic Numerical Integrator an Calculator), diseiiado por J.W. Mauchly y J. P. Eckert Jr., de la Universidad de Pensylvania, terminado de construir en 1946 y uti- lizado en diversos célculos hasta 1955. ELENTAC utilizabacerca de 18000 tubosal vacio y 1550 relés, pesaba 30 toneladas, consumfa gran cantidad de potencia, podfa sumar, restar, multipli- car, dividir y extraer rafces cuadradas y se progra- maba manualmente actuando sobre varios miles de interruptores y conectando y desconectando una gran cantidad de cables. Como resultado, la tarea de modificar un programa, o introducir uno nuevo, era lenta y tediosa. CEKIT- Curso préctico de cireuitos dgitales y microprocesadores 459 Para solucionar este inconveniente, los mismos disefiadores del ENIAC y J. Von Neumann propu- sieron en 1945 un nuevo disefio de computador electrénico llamado EDVAC (Electronic Discrete Variable Autonomic Computer), el cual utilizaba ¢l concepto de programa almacenado: en lugar de manipular interruptores y cables al principio de cada problema, las instrucciones y datos del programa se precableaban o almacenaban en la propia circuiteria del computador, constituyendo una gran memoria. Entre 1946 y 1952, Von Neumann y sus colegas del IAS (Institute Advanced Studies) desarrollaron el primer computador préctico con programa alma- cenado y cuya arquitectura (figura 711) sirvié de prototipo para la mayorfa de computadores de la primera generacién (fabricados con tubos) poste- riores. Incluso, mucho de los microcomputadores modernos obedecen a la misma organizacién de la maquina IAS de Von Neumann, Computador de Ta primera generacion En 1951, una compafia creada en 1947 por Eckert y Mauchly produjo el UNIVACI (Universal Automatic Computer), uno de los computadores digitales comerciales de mayor éxito. Ese mismo afio, la compafia Ferranti. de Inglaterra lanz6 el Ferranti Mark 1, disefiado por Alan Turig, En 1953, la IBM ingresa al mercado de las computadoras digitales con su excelente serie 700, consiguiendo répidamente el dominio del mismo. Conel desarrollo de los transistores en los Labo- ratorios Bell en 1948, los tubos de vacfo fueron siendo paulatinamente desplazados como compo- nentes principales del disefiode computadores. Sur- gieron entonces los primeros computadores de la Segunda generacién (fabricados con transistores), uno de los cuales fue el TX-O, una maquina experi- mental desarrollada en el MIT (Massachusetts Institute of Technology) en 1953. A finales de los afios 50 y comienzos de los 60, varias compaiifas producfan computadores comer: 460 ciales a transistores. En 1959, por ejemplo, la IBM introdujo el sistema 7090, un computador ideado para aplicaciones cientificas. Otros computadores populares de 1a segunda generacién fueron el Burroughs B5000, el CDC 6600 y el PDP-8 En 1964, la misma IBM lanzé al mercado el popular Sistema/360, la primera serie de computa- dores de la tercera generacién (con circuitos inte- grados). Aunque el sistema 360 no introdujo cam- bios sustanciales en el disefio de computadores, tuvo, sin embargo, una profunda influencia en la industria de computadores digitales. De hecho, el sistema 360 hizo obsoletos todos los computadores anteriores, apesar de queno utilizaba circuitos integrados propiamente sino circuitos hibridos, en os cuales los transistores y demés, componentes estaban soldados sobre una base ceré- mica. Entre 1964 y 1970 se vendieron més de 60000 ‘computadores de la serie 360, repartidos entre el gobierno, Ia empresa privada, la industria y las universidades. En 1970, la IBM introdujo el Siste- ma/370, al que siguieron las series 303X, 4300 y otras compatibles con las series 360 y 370. Otros, computadores de la tercera generacion fueron el PDP-11, el CDC STAR y el TI-ASC. Hacia 1970, casi todos los nuevos computadores utilizaban circuitos integrados de pequefia y media- na escala (SSI y MSI), Por la misma época, comen- zaron a producirse masivamente circuitos integra- dos MOS de gran escala (LSI). La etapa culminé en 1975 con el desarrollo del microprocesador y el comienzo de los computadores de la cuarta genera- cidn, La evolucién hist6rica de los microprocesa- dores se analiza en la leccién 44 Entre 1976 y 1978 se lanzaron al mercado varios microcomputadores (también Hamados computa- dores personales) para ser utilizados por cualquier individuo y se dio origen a una de las. grandes revoluciones en el desarrollo de las herramientas para la ayuda del trabajo humano. Esta revolucin 1a cambiado la forma de trabajo de todas las perso- nas, empresas y organizaciones en el mundo, Intervinieron en esta revolucién empresas como Commodore, Apple Computer Inc., Radio Shack e IBM, entre otras. Actualmente, existenmuchascom- pafifas dedicadas a la fabricacién de computadores y la cifra de modelos disponibles en el mercado es ‘muy alta, Ha jugado un papel muy importante en esta historia el desarrollo de los Ilamados clones, com- putadores compatibles con los PC, XT, AT, etc. de IBMpero fabricados por otras compaiifas. Los clones, mas econémicos que los originales, han hecho posi ble que muchas personas puedan tener acceso aesta tecnologia y todo lo que se mueve a su alrededor, incluyendo el cada vez mas sorprendente mercado del software (programas). Aplicaciones de los microcomputadores Los microcomputadores representan uno de los logros més importantes de la tecnologia microelectronica. A pesar de que el computador en suforma actual es elativamente joven, es uno de los productos electr6nicos de uso mas extendido. Ade- ms, son extremadamente adaptables, Enacasa, por ejemplo, un computador personal puede ser usado para simplificar las labores domés- ticas, entretener 1a familia, controlar automati- camente luces y aparatos, manejar el presupuesto, etc. En el campo educativo, los computadores se utilizan para ensefiar disciplinas, desarrollar nuevas técnicas pedagégicas, facilitar la adquisicién de habilidades, etc. Enlaoficina, se utilizan computadores para con- trolar inventarios, procesar textos, llevar contabili- dades, realizar tareas de archivo, ndmina, etc. En las fabricas, los computadores pueden adaptarse para controlar méquinas, robots, etc. y, en general, para automatizar procesos. Los computadores juegan también un papel im- portante en el campo del transporte. Un ejemplo son los simuladores de vuelo. Los computadores han Uegado también a la agricultura y la ganaderia, los sectores primarios de la economia, Un ejemplo son los sistemas automaticos de control de riego. Los bancos y entidades financieras también uti- lizan computadores conectados a redes de transmi- sién de datos para almacenar las cuentas de los clientes y permitir que estos realicen transacciones desde cualquier sucursal. Otra aplicacién importante de los computadores son los bancos de datos que poseen diversos tipos de ‘entidades publicas y privadas a los cuales se puede acceder haciendo uso de la infraestructura de comu- nicaciones existente en cada pats. En medicina, los computadores se utilizan para llevar historias clinicas, examinar sintomas, emitir Giagnésticos, tomardecisiones, evaluar electrocar- Giogramas, sefiales bioeléctricas, ultrasonidos, etc. Los mismos hospitales utilizan computadores para controlar su estructura organizativa. Enel sector energético se utilizan computadores paracontrolarel funcionamiento de centrales hidro- eléctricas, térmicas, nucleares, etc. y garantizar su seguridad. En el campo militar, los computadores Girigen misiles, se comunican con satélites y toman decisiones, a veces fatales. Actualmente, no se concibe ningiin campo de la investigaci6n en el cual no participen los computa- dores, Estos tltimos intervienen en cualquier parte del proceso de biisqueda de soluciones a los proble- mas cientificos, sociales, tecnol6gicos, humanisticos, etc. En nuestros dfas es imprescindible el uso de computadores para la realizacién de tesis, trabajos, libros, ensayos, etc. Computadores de la quinta generacién La microelectrénica y los computadores le han dado un nuevo significado a la definicién de las miéquinas y las han dotado de capacidades nunca antes imaginadas. Con el computador, el hombre ha intentado crear una imagen de si mismo y ha empe- zado a considerar la posibilidad de desarrollar mé- quinas sensibles, dotadas de inteligencia, La biisqueda de la maquina pensante tiene pro- fundas rafces en la historia de la humanidad, y hoy en dia posee una disciplinacientifica, un sello y unas perspectivas propias. El proyecto delos computado- res de la quinta generacién tiene por objeto despla- zar los limites de lo que los computadores pueden hacer y lograr que procesen conocimientos en lugar de datos. Estos computadores, dotados de inzeligencia ar- ficial (AD, tendrfan, entre otras, las capacidades de aprender, asociar conceptos, deducir consecuen- cias, establecer juicios, mantener un didlogo con una persona ofreciendo respuestas a sus preguntas, resolver problemas examinados en su conjunto, utilizar inteligentemente la informacién almacena- da en bases de datos, comprender significados, etc. Necesariamente, los computadores de la quinta generacién tendrén que ser construidos utilizando tecnologia de integracién a muy alta escala (VLSI). Se caracterizarén por su extrema velocidad (entre cien millones y mil millones de operaciones de deduccién por'segundo) y su tamafios inin desde ‘microcomputadores hasta supercomputadores, El computador pensante no existe atin y el opti- ‘mismo general de los investigadores de la inteligen- Cia artificial contrasta con ‘la de sus detractores, quienes defienden la naturaleza tnica de la inteli- gencia humana y la imposibilidad de reproducirla. Llegarén loscomputadores pensar como nosotros? CEKIP- Curso préctico de circuits digtales ymicroprocesadores 464 Tecnologia jones modernas de los microprocesadores y los microcomputadores Equipos Automaticos de Prueba (ATE) La forma tradicional utilizada por técnicos e inge- nietos para verificar productos terminados 0 proto- tipos es utilizar instrumentos de prueba como os- ciloscopios, analizadores l6gicos, multimetros, ge~ neradores de sefiales, etc., en medio de un laberinto de cables y alambres. E1 método moderno es conectar el producto a un Equipo Automatico de Prueba o ATE (Au- tomatic Test Equipment), presionar un botén y ¢s- perar a que el ATE haga todo el trabajo de diag- néstico, El advenimiento de la tecnologia ATE ha revolucionado la prueba, diagnéstico y reparacion de productos electr6nicos a todo nivel. Comercialmente se dispone de una gran variedad de ATE's adaptables a cualquier necesidad. Los ATE incrementan significativamente la velocidadde prueba de equipos, prdcticamente no cometen erro- Tes y mejoran la productividad, liberando al usuario de tareas tediosas y repetitivas. Qué es un ATE En la figura de la parte inferior se muestran el as- pecto fisico y el diagrama de bloques de un ATE ti- pico. El sistéma consiste basicamente de un compu- tador, un controlador, una red de conmutacién, un equipo de prueba, una interface de operacién y una interface o consola de control entre 1a unidad bajo prucba (UUT) y el ATE. El computador controla el equipo de prueba y se comunica con el sistema a través de un bus de in- terface de propésito general (GPIB, ver leccién 43) estindar RS-232C, IEE-488 6 de otto tipo. El controlador lleva la secuencia de pasos del pro- ceso, controla el equipo de prueba, el sistema de conmutacién y la interface con el operador, lee los resultados de las mediciones, realiza los célculos requeridos y envfa los resultados finales a una panta- lia 0 a una impresora para su evaluacién. Equipos automaticos de prueba merce teclago modem. te) Equipo automate de prucba (ATE) Interface UIT y af ATE GPIB: General ‘Pupposeinortace Bus WUT: Under Test La red de conmutacién controla el flujo de sefiales entre la UUT y el resto del ATE. Por ejemplo, pue- de enrutar sefiales digitales desde la UUT hasta un ‘osciloscopio digital o llevar sefiales de RF desde un sintetizador de frecuencia hasta la UT. El equipo de prueba proporciona las sefiales tw unidad bajo prucba ¥ fealiza las mediciones de Jos parimetros de esta ‘tiltima. La mayorfa de ins- trumentos de prueba modemos dotados de un bus de interface (GPIB) son compatibles con ATE's analizadores légicos y de espectros, osciloscopios digitales, generadores de RF, de audio, etc. Instrumentos “inteligentes" tales como el oscilos- copio digital o DSO pueden realizar por sf mismos tareas originalmente asignadas al controlador, por ejemplo analizar formas de onda, y enviar los re- sultados al computador a través del bus de inter- face cuando estos se requieran, La interface del operador comunica el ATE con el mundo externo. Puede ser, por ejemplo, un tecla- do, una pantalla, una impresora, un arreglo de in- terruptores, un computador huésped de una red, etc. A través de esta interface, el ATE recibe ins- trucciones y entrega resultados. El tipo de interface entre la UT y el ATE depen- de de lo que se esté probando. Puede ser un cable, una consola de control acondicionada con tarjetas a nilogas y digitales, puntos de prueba, conéctores, bases de soporte de componentes, etc. En algunos ATE, las sefiales desde y hacia la UUT son manejadas por transductores € impulsa- dores (drivers) y los patrones de prueba asi como las respuestas de la UUT son almacenados en me- morias temporales RAM, En un ATE es tan importante la programacién (software) como 1a estructura fisica (hardware) del sistema, Puesto que el hardware es controlado por ‘computador, el usuario debe conocer el ATE, la uni- dad bajo prueba y los comandos y caracteristicas del bus de interface. Cada ATE tiene su hardware software propios y, algunas veces, el costo del sof ware puede legar a ser superior al del hardware. Tipos de ATE's La mayorfe de ATE's modernos clasifican en uno ‘mis de las siguientes categorias: + ATE's de pruebas en circuito 0 ICT (In-Circuit Test). Chequean cortos, circuitos, continuidad y componentes defectuosos en tarjetas de circuito im- preso andlogas y/o digitales. La tarjeta se posiciona sobre una consola con numerosos puntos de prueba Y Se Sostiene por medios neumaticos © manuales. + ATE’s de pruebas funcionales. Suminiswan sefiales a las entradas dé la unidad bajo prueba y Ghequean las respuestas. Pueden probar tarjetas, dulos ¢ incluso sistemas completos. + ATE’s de modelos. Verifican el sistema bajo prueba sustituyéndolo por un sistema de referencia conocidamente bueno incorporado y realizan el che- queo del sistema asi formado. Si este pasa la prue- ba, el sistema cuestionado se acepta como bueno puesto que opera igual al sistema de referencia. + ATE’s de pruebas comparativas. Comparan una unidad bajo prueba y una unidad de referencia idéntica aplicando a ambas las mismassefiales de en- trada y comparando las respuestas. Si las respues- tas de la UTT difieren de las de la versién de re- ferencia, la primera esta defectuosa. + ATE's de pruebas de componentes. Chequean desde ‘circuitos integrados de muy alta escala CVLSD) y memorias hasta resistencias y condensa- dores. Muy adecuados para prueba de dispositivos digitales, los cuales utilizan una gran cantidad de pa- trones de prueba de alta velocidad. Ventajas y desventajas Un ATE proporciona un incremento significativo en la velocidad de prueba. Sin embargo, esta gltima std limitada por el niimero y la complejidad de las igreas asignades y por la calidad misma del equipo de prueba utilizado. Una vez programado, un ATE puede operar casi perfectamente libre de errores, asumiendo, natu- Talmente, que no existen errores en. la programa- cidn (software) ni en la configuracién fisica (hard- ware) del sistema, Cualguier error sutil de sofnvare puede dejar pasar un producto defectuoso, La instalacién de un ATE es relativamente cos- tosa, Sin embargo, teniendo en cuenta que trabaja a gran velocidad, comete muy pocos errores y re- quiere de operadores menos experimentados, es una inversién “costo vs eficiencia" productiva. Lo anterior no significa que una organizacién no requiera de téenicos experimentados. Los necesita para reparar los equipos cuando el ATE no puede encontrar una falla 0 para instalar el ATE mismo. Aunque un técnico puede resistirse al comienzo a recibir Grdenes de un computador, pronto encontra- que puede operar mas rapida y metédicamente en asuntos rutinarios. Los computadores pueden fallar cuando los pro- blemas encontrados no son tipicos y requieren del razonamiento humano. CEKIT- Curso prévtico de circuitos digitales y microprocesadores 463 Leccién 42 Estructura de un microcomputador + Introduccién + Estructura bdsica de un microcomputador + Unidad de entrada + Unidad de salida * Unidad de memoria + Memoria de almacenamiento primario + Memoria de almacenamiento secundario + Unidad central de procesamiento (CPU) + Unidad de control + Unidad aritmético-légica (ALU) + Buses + Resumen + Andlisis de un sistema de control de temperatura Introduccion En a lecci6n anterior se hizo una introduccién general al mundo de los computadores, haciendo especial énfasis en el computador digital. También se realiz6 un breve recuento de la historia de esta importante innovacién tecnolégica y se menciona- ron algunas de sus principales aplicaciones. Enesta leccién profundizaremos un pocomésen laestructura interna de los computadores y especial- ‘mente de los microcomputadores, que son los que nos interesan en este curso. En las lecciones 31, 32 y 33 se estudiaron las caracteristicas yenormes ventajas de os sistemasde logica programada. Superando ampliamente este concepto, el computador es la méquina digital programable por excelencia. Laestructura de un computador es completamen- te flexible y permite desarrollar innumerables apli- caciones (Software) independientemente de su ar- guitectura o construccién electrénica (hardware), Un computador se convierte en una gran cantidad de maquinas diferentes para el manejo de informa- cién o para el manejo de un proceso de automatizacién, cambiando solamente el programa que se le introduce para su ejecucién. Asi, en un momento dado, puede ser un procesa- dor de palabras, un sintetizador de misica, un manejador de bases de datos, hojas electrénicas, programas de contabilidad, programas de dibujo artistico, programas de diseiio grafico, etc. 464 Todo esto sin mover un slo circuito integrado 0 parte electrénica alguna, Esto no era posible con la electrénica digital convencional. Cada nueva apli- cacién requeria de un circuito completamente nue- vo y diferente, Cambiaban totalmente los circuits intégrados, las conexiones, el circuito impreso y los paneles de control, entre otros. Un fabricante de computadores nunca sabré cua- les fueron los miles de usos diferentes que se le han podido dara sus mAquinas. Gracias aesta capacidad de transformarse por medio de un programa, un ‘computador digital es una méquina clectrénica muy poderosa yaellose debe su vertiginosoy apabullante Ingreso en todas las actividades humanas, Un computador de propdsito general es una mé- quina disefiada para procesar informacién, Esta mé- quina esta convenientemente equipada con medios fisicos para la entrada de todo tipo de datos (tecla- dos, tarjetas, cintas, sensores, etc) y también con medios para la salida de la informacién ya procesada por tn programa interno previamente almacenado, Un programa, como veremos més adelante,es un conjunto de instrucciones en un lenguaje especial, que le indican al computador todas y cada unade las. operaciones que tiene que realizar. Cuando se dedica la potencia Iégica de un com- putador al comando y control de un sistema en Particular, como loesun instrumentoo unaméquina de un proceso industrial, se le llama controlador. Los pardmetros més importantes que diferencian aun computador de otro son, entre otros, su arqui- tectura, la longitud de palabra que maneja (8 bits, 16 bits, 32 bits, etc.), su conjunto de instrucciones (lenguaje propio), la capacidad y organizacién de su memoria interna y externa y los programas de apli- cacién disponibles. Nuestro curso estard dedicado, principalmente, a os microcomputadores y a los microprocesadores de 8 bits utilizados como elementos de control. Sin embargo, en las lecciones finales hablaremos de los. potentes microprocesadores de 16 y 32 bits utiliza- dos actualmente,También incursionaremos en la naciente generacién de los microprocesadores_de 64 bits, representada por dispositivos comoel R4000 de Mips Computer Systems, Estructura basica de un microcomputador Un microcomputador, aunque aparentemente es un aparato muy complejo, es una méquina electré- nica relativamente sencilla, quizés més simple que un aparato de television o una grabadora de video. Esto se debe a que esté formado por varios bloques totalmente digitales y claramente defini- os, cada uno con una funcién especifica. Por tanto, suprineipiode operacin es muy simple y confiable. Cada bloque, a su vez, esté formado por varios circuitos integrados féciles de entender y manejar. La parte compleja esté dentro de los circuitos inte- grados, pero esto no interesa al usuario, ya que este solamente debe conocer muy bien la configuracién Ge los pines, su funcionamiento y su programacién. Como muchos de estos circuitos ya se han estu- diado durante el curso de electronica digital, la comprensi6n total de laestructura y funcionamiento de un microcomputador no tendré ninguna dificul- tad para el lector. Ademis, con las précticas que se realizan, inclu- yendoelensambledeun microcomputador didéctico y varios circuitos externos para conectarle, el apren- dizaje de este ema seré muy ameno y productivo, Como vimos en la leccién anterior, un computa- dor digital est4 conformado por tres bloques funcionalmente independientes (figura 712). Una unidad de entrada y salida, una CPU y una memoria. Estructura basica de un microcomputador A su vez, la unidad de entrada y salida se divide en un bloque de salida y un bloque de entrada, Del mismo modo, la CPU se divide en una unidad de control y una unidad aritmético-légica (ALU), y la memoria en ROM y RAM, obteniéndose seis blo- ques 0 unidades con funciones muy especificas. Estas seis unidades que constituyen un computa- or digital se muestran en la figura 713, A continua- cién describiremos la funci6n bésica de cada unade ellas en términos generales. Estructura general de un microcomputador lun | | | Unidad de entrada Esta parte del circuito acepta o recibe informa- cién del mundo externo, procedente de un operador humano, un fendmeno fisico (temperatura, veloci- dad, etc,), un sistema de grabacién electromagnéti- co, ¢tc. EI propdsito de la unidad de entradaes llevar los datos del mundo externo hacia la unidad de ‘memoria para su posterior procesamiento. En los computadores para procesamiento de da- tos, los sistemas de entrada més usuales son un teclado, un mouse o ratén, una o varias unidades de disco flexible, una unidad de disco duro, un modem, un lépiz éptico y un micréfono, entre otros. En los computadores utilizados para control, las unidades de entrada son generalmente transductores que sensan fenémenos fisicos como temperatura, presién, peso, caudal, movimiento, posici6n, luz, sonido, etc, Las sefiales andlogas de voltaje 0 de corrientes producidas por estos sensores se llevan al computador por medio de uno 0 varios convertido- res A/D (analdgico-digitales), como los estudiados en la leccién 37. Unidad de salida La mision de esta parte del circuito, es entregar los resultados de la informacion binaria, ya procesa- da por el computador, al mundo exterior. CEKIT- Curso préctico de cireutos digtalesy microprocesadores 465 Esta informacién se Teva desde la memoria 0 desde Ia unidad central de proceso (CPU) hacia circuitos o aparatos amados periféricos que se encuentran fuera del computador. En los computadores para procesamiento de da- tos, las unidades de salida mds usuales son las, impresoras, las pantallas 0 monitores de video, las unidades de disco flexible y de disco duro, los modems para comunicaciones por redes teleféni- as, los plotters 0 graficadores, los parlantes, etc. En los computadores para control, las sefiales digitales salen al mundo exterior a través de una 0 varias unidades de salida. Entre las mds comunes tenemos las tarjetas de interface que tienen relés, transistores bipolares, MOSFET de potencia, SCRs, triacs y otros dispositivos manejadores de potencia. Estos, a su vez, activan motores de corriente continua 0 servomotores, motores paso a paso, actuadores mecénicos o hidréulicos, resistencias de calentamiento, electrovélvulas, solenoides y otros tipos de elementos que realizania operacién final en una méquina o aparato, ‘También se encuentran como unidades de salida tarjetas con convertidores D/A (digitales-anal6gicos) que convierten las sefiales digitales del computador en sefiales andlogas equivalentes para ser utilizadas en circuitos de este tipo. Estos convertidores se estudiaron en la leccién 36 del curso y en una proxima leccién veremos cémo se conectan a un microcomputador de control. Unidad de memoria La funci6n de la unidad de memoria consiste en almacenar programas y datos y es una de las mas ‘importantes en un computador. Se distinguen dos sistemas diferentes de memoria: la de almacenamiento primario y Ia de almacenamiento secundario. La primera se denominan también memoria principal y la segunda memoria auxiliar. Memoria de almacenamiento primario La memoria principal o de almacenamiento pri- mario estd formada por circuitos integrados de me- moria donde se almacenan los programas que se van a ejecutar y los datos que se necesitan durante la ejecucién de estos programas. Hay tres tipos de memoria principal: ROM, RAM y cache. +Memoria ROM 0 memoria de lectura. Lainforma- cién pregrabada electrénicamente en ella (progra- 466 mas 0 lista de instrucciones) solamente puede ser Jefda y no es posible alterar su contenido por ningtin método directo. En esta memoria se escribe el pro- grama monitor o de arranque del computador, lo {que permite que ejecute las accionesnecesarias para poder iniciar un trabajo. Cuando encendemos un computador, se activan generalmente la pantalla y una unidad de disco (flexible © duro), permitiendo el montaje de una parte del sistema operativo en la memoria RAM para continuar con la ejecucién de un programa, + Memoria RAM o memoria de lectura y escritura, En este tipo de memoria se puede almacenar infor- macién para ser utilizada posteriormente y, si es necesario, se puede alterar o cambiar en cualquier momento. En la memoria RAM se almacenan los programas y los datos que estos van originando. Su actividad es muy intensa, ya que recibe y entrega millones de bits (1’s y 0°s ) por segundo a todos los bloques del computador. El desarrollo de la tecnologia de los microcom- putadores y de los computadores en general ha estado estrechamente ligado con el desarrollo de las, memorias RAM. Cada vez se logra mayor capaci- dad de almacenamiento en estos circuitos a un menor costo. Las primeras memorias RAM de buena capaci- dad almacenaban 1 Kilobyte de informacién digital. Los primeros microcomputadores, con una capaci- dad de memoria RAM de 8 Kilobytes, utilizaban 8 de estos circuits. Actualmente, son comunes com- putadores personales y de escritorio con capacida- des de 4 y 8 Megabytes de memoria RAM. + Memoria de cache. Es una memoria RAM con tiempo de «acceso» muy répido donde se mantienen los datos més utilizados durante la ejecucién de un programa, El objetivo de esta memoria, en la arqui- tectura de un computador, es acelerar la velocidad de procesamiento de la informacién, Enlaslecciones 32y 33 estudiamosel temade las memorias y los circuitos integrados que cumplen esa funci6n, En las siguientes lecciones estudiare- mos los circuitos que no conocemos, incluyendo microprocesadores y circuitos de soporte de entra- Ga/salida, Mas adelante veremos cémo se conectan los circuitos integrados de memoria a los otros circuitos que forman un computador. Memoria de almacenamiento secundario Este sistema de almacenamiento, también llama- domemoria auxiliar, se utiliza para guardar grandes cantidades de datos que nose requierencon frecuen- cia en la memoria principal durante la operacién del computador. Hay varios sistemas de almacenamiento secun- dario: los discos magnéticos,que pueden ser discos flexibles o blandos,también llamados floppies; los discos duros, que permiten el almacenamiento de grandes cantidades de datos (megabytes); los discos Spticos,que se vislumbran como el reemplazo de los discos duros,y las cintas magnéticas. Unidad central de procesamiento (CPU) Enlaterminologfa de computadores se denomina como CPU (Central Processing Unit) o unidad central de procesamiento, a la unidad que revine la unidad de control y la unidad aritmético-Iégica en un solo blogue. Esta iltima también se conoce como ALU (Arithmetic Logic Unit). Enla préctica, launidad central o CPU seencuen- traen formade un circuitointegrado llamado micro- procesador , tema central de este curso y al cual le dedicaremos nuestra mayor atencién. En las si- guientes secciones conoceremos que hace cada uno de los bloques de la CPU. Unidad de control La unidad de control se encarga de la interpreta- Gi6n y ejecuci6n de las instrucciones del programa. También controla todos los componentes de un computador por medio de Ifneas de conexién llama- das buses. Esta unidad es el elemento central de toda la maquina y se encarga de enviar seftales de coordina- ciéna todas las dems unidades. Podria compararse, en un momento dado, con el gerente de una empresa ocon el director de una orquesta. Por ejemplo, una impresora escribira informa- cién en el papel si especificamente se le instruye para que lo haga. Esto se logra por medio de una “instrucci6n’ como “imprima" o "escriba”, que el computador debe ejecutar. El cumplimiento 0 eje- cuci6n de esta instruccién necesita un tréfico de sefiales binarias entre la impresora y el computador. La coordinacién de esta importante tarea la leva a cabo la unidad de control. Unidad aritmético-ldgica (ALU) Esta unidad est encargada de realizar las opera- ciones légicas y aritméticas usando como base la operacisn de suma y la notacién del complemento de dos. Estos conceptos se explicaron ampliamente en la leccién 27 de este curso. La ejecucién de la mayorfa de las operaciones de un computador se realiza en esta unidad. Por ejemplo, si se desea sumar dos nimeros almacenados en dos posiciones de memoria, estos se deben traer a la unidad aritmética donde se lleva a cabo la operaci6n, El resultado se almacena nueva- mente en una posicién de memoria, Las principales operaciones aritméticas realiza- dasen la ALU son la suma, la resta y el complemen- toa dos. Las principales operaciones Iégicas son la AND, la OR, la NOT, Ia OR, la EXOR y la compa- racién. ‘También realiza esta unidad operaciones con los registros internos como desplazamiento, rotacién y traslado de informacién digital. De acuerdo al tamafio de la memoria y segin la velocidad y capacidad de la CPU 0 microprocesa- dor, los computadores se clasifican en superco: putadores, computadores, minicomputadores y crocompuiadores. Sin embargo, independientemente de su tamaffo, todos ellos tienen la misma estructura basica y el mismo principio de funcionamiento estudiados en esta leccién. El rapidisimo avance de esta tecnologia hace que un microcomputador de hoy sea mucho més podero- ‘so que un minicomputador del afio anterior, dejando un poco obsoleta esta clasificacién. Buses Eneldiagrama dela figura714 podemos observar que los diferentes bloques del sistema se conectan entre s{ por medio de unas flechas gruesas y otras, delgadas. A estas lineas se les llama buses. Un buses, un conjunto de Iineas que llevan o traen sefiales digitales de un circuito a otro. Las lineas y el sentido de las flechas indican las Tutas existentes entre las seis _unidades para el intercambio mutuo de informacién. En los sistemas con microprocesadores existen generalmente tres buses: direcciones, datos y control. Lasestructura de busesde losmicrocomputadores se analizaendetalle cen la proxima leccién. Brevemente, la unidad de control utiliza el bus de direcciones para determinar, por decodificacién, la posicidn de memoria o el dispositivo de entrada y salidaque participaen una transferencia deinforma- ccidn en un momento dado. El némero de Ifneas del bus de direcciones determina la capacidad de me- moria del sistema y el niimero de dispositivos de entrada/salida con los cuales puede comunicarse. CEKIP- Curso prictico de circuitos digivales y microprocesadores 467 Buses de un microcomputador Una vez que la unidad de control ha seleccionado el dispositivo con el cual quiere efectuar una trans- ferencia de informaci6n, utiliza el bus de datos para transportar dicha informacién. Asi, por medio de este bus, el microprocesador puede enviar o recibir datos de la memoria y también enviar o recibir sefiales del mundo exterior a través de las unidades de entrada y salida. Elnimero de lineas del bus de datos determina lo que se denomina el «ancho» de la palabra de trabajo de la unidad de procesamiento central 0 CPU. Son upicas longitudes de palabra de 4, 8, 16, 32, € incluso, 64 bits. Los primeros computadores perso- nales utilizaban un bus de datos de 8 bits, luego salieron al mercado los equipos de 16 bits y actual- ‘mente el bus mas utilizado es el de 32 bits. EI bus de control transporta las sefiales que ne- cesita Ia unidad de control para coordinar y sincro- nizar el funcionamiento de todos los elementos del computador, Cada uno de estos elementos debe intervenir solamente cuando le corresponda. De lo contrario, el proceso de cémputo serfa caético. El niimero de lineas del bus de control varia segtin el tipo de CPU 0 microprocesador que se utilice. Observe que todas las unidades que consti- tuyen el microcomputador comparten el mismo bus de datos. Esto es posible gracias al empleo de circuitos integrados de tecnologia tri-state. Por el bus de datos solamente circula siempre la informacién correspondiente al bloque o unidad que haya sido seleccionado por el bus de direcciones. Como es obvio, si dos unidades de un microcompu- tador se seleccionaran para recibir o entregar sefia~ 468 Expansién Bus de control eal mismo tiempo, habrfa un conflictode informa ccidn y el sistema trabajarfa erréticamente. Resumen De acuerdo a lo estudiado anteriormente, la ope- racién de un computador digital puede resumir asi: * El computador acepta informacién (programas y datos) por medio de la unidad de entrada y la irasfiere a la memoria. * Bajo el mando de un pros © lista de instrucciones que ejecuta la unidad de control, la informacién de la memoria se lleva a la unidad aritmético-légica para su procesamiento. * Unavez procesada la informacién, seentregaal mundo exterior a través de la unidad de salida. * Todas las actividades las coordina la unidad de control. Ejemplo de aplicacién. Andlisis de un control automético de temperatura con microprocesador ‘Como un ejemplo de aplicacién de los conceptos expuestos en esta leccién, vamos a describir breve- mente el principio general de funcionamiento de un control automatico de temperatura con microproce- sador del tipo on-off. El diagrama de bloques del sistema se muestra en la figura 715. La temperatura deseada se ajusta en una perilla gue tiene una escala marcada en grados centigrados. sta lectura se leva a través de una interface de entrada y se almacena en una parte de la RAM. Control automdtico de temperatura con microprocesador €) Diagrama de bioques Posteriormente, el microprocesador lee la tempe- ratura actual por medio de un sensor apropiado y también, por medio de una interface, la convierte en una sefial digital equivalente a los grados lefdos. Este dato se almacena en otra posicién o casilla de la memoria RAM, Estas dos operaciones estén dirigidas por el programa que, generalmente para este tipo de sistemas, estd almacenado o grabado en la memoria ROM. Con estos dos datos se hace una operacién l6gica de comparacién en la unidad aritmético-I6gica dela CPU. De acuerdo a los resultados y a las instruccio- nes del programa, el microprocesador o CPU envia una sefial a la interface de salida que activa o desactiva un elemento calefactor o resistencia. Si la temperatura a controlar esta més baja de lo deseado, se envia unalto(1 légico) por una lineadel bus de datos y se enciende 1a resistencia. Si la temperatura est4 mds alta de lo deseado, se deja la resistencia sin funcionar enviando un bajo (0 iégi- co) por la misma linea para que la resistencia no funcione. De esta manera, la temperatura se ird ajustando hasta el valor marcado en la perilla. Launidad de control del microprocesador envi +4 todas las seftales propias a todas las demés unida- des para que realicen las operaciones de lectura y accionamiento de los sensores y de la resistencia. En la figura 715(b) se representa la estructura de un sistema de control de temperatura priictico con microcomputador destinado a un horno eléctrico. El objetivo del sistema es mantener la temperatura del horno dentro de un estrecho margen con respecto a una temperatura de referencia indicada mediante unos interruptores rotativos (thumbel-switch) situa- dos en el panel de control. Desde este panel se realiza también el encendido y apagado general del homo. La temperatura del horno se puede variar aumen- tando o disminuyendo la corriente suministrada al elemento calefactor del homo. El microcomputador utiliza la sefial suministrada por el sensor de tempe- ratura para calcular la temperatura actual del horno y Ia compara digitalmente con la temperatura de eferencia para determinar el nivel de la sefial de salida que controla el elemento calefactor. Para evitar un consumo excesivo de potencia y proteger a los usuarios que se encuentren en las proximidades, la puerta del homo debe permanecer cerrada en condiciones normales de funcionamien- to. Por esta raz6n, al homo se le incorpora un conmutador de seguridad, el cual se activa cuandola puerta esta completamente cerrada. Sicl conmutador de seguridad esté desconectado. mientras e] homo esté funcionando, el microcompu- tador desenergiza el elemento calefactor, enfriando el sistema. Ademds, bajo esta condicién, el micro- computador activa también una sefial de alarma. Las seffales proporcionadas por los distintos dis- positivos de entrada se leen y se comprueban perié- dicamente. El programa almacenado en el micro- computador decide lo que debe hacerse en cada momento y la informacién que debe enviar a los dispositivos de salida conectados al sistema, En préximas lecciones ampliaremos el tema del control automitico de procesos con el fin de que el lector lo pueda comprender perfectamente y partici- pe asi activamente de este maravilloso campo de aplicacién de los microprocesadores. CEKIT- Curso préctico de circuitos digitales y microprocesadores 469 Leccién 43 Concepto de bus + Introduccién * Qué es un bus + Estructura de buses de un microcomputador. El bus del sistema + El bus de datos + El bus de direcciones + El bus de control Introduccibn Como vimos en la leccién anterior, los diferentes bloques funcionales que constituyen un microcom- putador (CPU, memoria y unidades de entrada/ salida) se comunican a través de grupos de Iineas Tamadas buses. En esta lecci6n, inicialmente, defi- niremos formalmente el concepto de bus y las carac- teristicas que debe tener el bus de un sistema digital para lograr transferir informacién entre sus elemen- tos de una manera organizada y eficiente. Posteriormente analizaremos 1a estructura de buses de un microcomputador, considerdndolo for- mado por un bus principal (que denominaremos bus del sistema), al cual estén conectados varios dispo- sitivos, incluyendo la CPU, la memoria y las unida- des de entrada/salida. ‘Conoceremos ctial es la funcién especifica de los buses de datos, de direcciones y de control en los cuales se subdivide el bus del sistema. Considerare- mos también el caso de los buses de entrada/salida, utilizados en algunos microcomputadores para co- municar el sistema con dispositivos periféricos es- peciales como impresoras, modems, teletipos, etc. A partir de la prdxima leccidn iniciaremos formal- mente el estudio de los microprocesadores. Qué es un bus En electrGnica digital, un bus es, simplemente, un grupo de conductores paralelos que llevan una informacién comiin (instrucciones, datos, direccio- nes, sefiales de control, etc.) de un sitio a otro del sistema. Los buses se denominan también barras colectoras de datos. En la figura 716 se indica la forma de representar Jos dos tipos mas comunes de buses encontrados en sistemas digitales. En la figura 716(a) se muestra un bus que sdlo lleva informacién en una soladirecci6n (unidireccional) y en la figura 716(b) un bus que puede llevar informacién en ambas direcciones 470 Representacion de buses Bus de Blineas P 2 Ne = eke a) Bus ») Bus unidireccional bidireccional Fig. 716 (bidireccional). El mimero de Ifneas del bus se escribe al inicio, al final o dentro del mismo, En la figura 717 se muestra otra simbologia abreviada utilizada para representar un bus deinfor- macién binaria, unidireccional o bidireccional. Se lama unifilar por que usa una sola linea. El niimero de lineas del bus que representa se escribe junto a la Tinea. En este curso utilizaremos indistintamente ambos tipos de simbologia. E] tipo més sencillo de bus encontrado en siste- ‘mas digitales es el utilizado para llevar una palabra de datos de uno o més bits de un dispositivo fijo a otto. Si los dispositivos entre los cuales se realiza esta transferencia de informacién son relativamente complejos u operan asincrénicamente, es necesario transmitir también informacién de control para sincronizarlos. Con respecto a los datos, estas sefiales de sincronizaci6n pueden enviarse de dos formas: 2) multiplexadas en el tiempo o b) en paralelo, En el primer caso (multiplexadas), la informa- cién de control viaja conjuntamente con la de datos sobre las mismas lineas de datos y en el segundo (en paralelo) viaja sobre lineas de control separadas Representacion unifilar de un bus ) Bus unidireccional b) Bus bidireccionat Sistema , la cual, en el lenguaje dei 6800, se especifica como 86 OF. El primer byte (86) corresponde al cédigo de operacién y el segundo (OF) al operando 0 dato sobre el que actiia la instruceién, La ejecucién de esta instruccién se ilustra en la figura 746 y puede resumirse en tres fases: a) capta- ligo de operacidn; b) decodificacién de ny c)ejecuciGnde lainstruccién. Guiése por los ntimeros encerrados en cfrculos para apre- Giarla secuencia de pasos necesarios para progresar através de estas tres etapas: Paso 1. Cuando @1 pasa de bajoaalto, el contenido del PC 0 contador del programa se transfiere al bus de direcciones con el fin de direccionar la posicién de memoria donde se encuentra el cédigo de opera- cidn de la instruccién (86). Al mismo tiempo, las Iineas de control VMA y R/Wsc hacen altas. La primera sefial (VMA = 1) Ie de una instruccion Robo A—_/4 a Ol) a @. Reeloj 02 }+}—primer ciclo —+}+—segundo ci indica a la memoria que la direccién presente en el bus de direcciones es valida y la segunda (R/W = 1) que el microprocesador estd realizando una opera- cién de lectura. Paso2, Cuando @1 pasadealtoa bajo, seincrementa el contador de programa. Sin embargo, esta condi- cidn no afecta la direccidn actualmente presente en el bus de direcciones. Paso 3. Cuando ©2 pasa de bajo aalto, el micropro- cesador le indica a la posicién de memoria direccionada que sine en el bus de datos el eédigo de operaci6n de la instruceién (86, en este caso). Paso 4, Cuando @2 pasa dealto a bajo, el micropro- cesador lee el cddigo de operacién presente enel bus, de datos, lo transfiere al registro de instrucciones y decodifica la instruccién. Después de esta decodificacién, el microproce- sador entiende que durante el siguiente ciclo de instruccién debe cargar el acumulador con un dato que se encuentra en la posicién inmediatamente siguiente a la que ocupaba el cddigo de operacién, Paso $. Cuando @1 pasa de bajo aalto, el contenido del contador de programa se transfiere al bus de direcciones con el fin de direccionar la posicién de memoria donde se encuentra el operando (OF, en este caso). Al mismo tiempo, las lineas de control VMA y RAW se hacen altas, como en el paso 1. Paso 6. Cuando @1 pasa de alto a bajo, el PC se incrementa pero no se afecta la direccién previa- ‘mente situada en el bus de direcciones. Paso 7. Cuando @2 pasa de bajo aalto, el micropro- cesador le indica a la posicién de memoria direccionada que site en el bus de datos el operan- do, es decir el dato que debe ser cargado en el acumulador. Paso 8. Cuando @2 pasa de alto bajo, el micropro- cesador lee el dato presente en el bus de datos y lo transfiere al registro acumulador, finalizando asf la ejecucién de la instruccién, EI’ microprocesador queda listo para comenzar la ejecucién de la siguien- te instruccién del programa. Observe que se requieren dos ciclos de reloj para realizar completamente la instruccién. Durante el primer ciclo, e1 6800 capta y decodifica el eédigo de operacién y durante el segundo ejecuta la instruc- cién, Note también que 1 sincroniza los eventos que suceden dentro del microprocesador y 82 los que suceden en los dispositivos externos (Ia memo- ria, en este caso), Leccién 47 EI microprocesador 8085 + Introduccién, + Como comprender un nuevo microprocesador + Distribucién de pines + Caracteristicas eléctricas + Arquitectura interna + Ejemplo de ejecucion de una instruccion + Circuitos de soporte + El microprocesador Z-80 * Otros microprocesadores de 8 bits. El 6502 Introduccion. EI 8085 es, sin lugar a dudas, uno de los mi- croprocesadores de 8 bits mas populares del metca- do. Introducido en 1977 por Intel Corporation, el 8085 es una version modificada y mejorada del microprocesador 8080, introducido también por Intel afinales de 1973, Con respecto aeste ultimo, ¢1 8085 presenta, entre otras, las siguientes ventajas: + Es practicamente idéntico al 8080 desde el punto de vista de la programacién. De hecho, el conjunto de instrucciones del 8085 es 100% compa- tible con el de su antecesor. Incluso, el 8085 afiade dos instrucciones para tomar ventaja de algunas de sus capacidades adicionales de hardware. + Incorpora algunas mejoras importantes a nivel e hardware, incluyendo la disposicién dentro del mismo chip de los sistemas de reloj y de priorizacién de interrupciones. Adems, requiere de menos cir- cuitos de apoyo y operacon una sola fuente de poder de +5 V. Estas caracterfsticas lo hacen mAs rapido, En contraste con lo anterior, el 8080 requiere de tues fuentes de alimentacién (+5V, -5V y +12V), tiene tinicamente una entrada de interrupcién y se necesitan tres circuitos integrados (8224, 8228 y 8080) para formar una CPU funcional. E18224 es un generador de reloj y el 8228 un controlador de sistema, Aunque el 8085 ha reemplazado al 8080 en los nuevos disefios, durante muchos afios_ el 8080 fue uno de los microprocesadores mas utilizados en la industria y el nfimero uno en ventas, Por esta raz6n, aunque ya no se produce masivamente, es frecuente encontrarlo ain en algunos equipos. Ademés del 8085, otro derivado importante del 8080 es el microprocesador Z-80, introducido por Zilog Inc. en 1976. El Z-80 es uno de los mejores y mis completos microprocesadores de ocho bits dis- ponibles en el mercado. La arquitectura del 8080 ha servido también de base para otros dispositivos ‘modemos como el microprocesador 8086 de Intel y el microcontrolador 7801 de NEC, 1 igual que el 6800 descrito en la lecci6n ante- rior, el 8085 esté disefiado para procesar palabras de datos de 8 bits y direccionar un espacio de memoria de 64K. Sin embargo, el 8085 posce mas lineas de control que el 6800 y, gracias al empleo de técnicas de multiplexaje, requiere de sdlo 16 lineas para transmitir datos de 8 bits y direcciones de 16 bits. Enestaleccién estudiaremos el microprocesador 8085 desde el punto de vista de su configuracién fisica (hardware), haciendo énfasis en la distribu- cién de pines, la arquitectura interna, las especifica- ciones técnicas y la forma como procesa sus instruc- ciones y se comunica con el dispositivos de E/S. Consideraremos también el Z80 y el 6502, otros microprocesadores de 8 bits muy populares. En las préximas lecciones exploraremos el con- junto de instrucciones y otros aspectos relacionados on la programacion del 8085, el cual sera tomado como modelo a lo largo de este curso con el fin de comprender todos los aspectos de interés relaciona- dos con los microprocesadores. Cémo comprender un nuevo microprocesador Porrazones didécticasy de espacio, este cursono puede cubrir todos los microprocesadores disponi- bles en el mercado. Sin embargo, conociendo sufi- cientemente el 8085, usted estard en capacidad de comprender cualquier otro microprocesador asimi- ando la teorfa general e interpretando adecuada- mente Ia hoja de datos suministrada por el fabrican- te. En general, siga estas recomendaciones: 1°. Conozea el tipo de de presentacién del dispositi- vo y la forma como se identifican sus pines. La mayoria de microprocesadores de 8 bits, incluyendo €18085, vienen contenidosen cépsulas de doble fila (DIP) de 40 pines plasticas 0 cerdmicas, Son tam- bién comunes cépsulas de 28, 42, 50 y 64 pines. 25, Consulte la distribucién de pines y la organiza- cidn interna o arquitectura del dispositivo. Verifi- que el mimero y tipo de registros utilizados, elancho del bus de datos, el nimero de bits del bus de direcciones, las fuentes de alimentacién requeridas, las entradas y salidas de control disponibles y las CEKIT- Curso préctico de circuitos aigitales y microprocesadores gO4 entradas de interrupcién presentes. Familiaricese con los nombres dados por el fabricante a cada pin. 3°. Localice el ser de instrucciones del dispositive y estidielo para descubrir el tipo de instrucciones que puede ejecutar, la forma como se comunica con Gispositivos de entrada y salida, las condiciones bajo las cuales se efectiian saltos o bifurques, les operaciones aritméticas que puede realizar, la ma- nera como maneja las interrupciones, y otros aspec- tos practicos de interés para el programador. 42, La mayorfa de manuales de microprocesadores incluyen el diagrama esquematico de un sistema minimo utilizando el dispositivo. A partir de esta informacién usted puede obtener una idea de como se microprocesador particular seconecta con otos circuitos de soporte y compararel sistema asi forma- do con otros que usted conoce, 5°, Estudie la descripcién detallada de las sefiales de control, los diagramas de temporizacién y las carac- teristicas técnicas del dispositive. Trate de com- prender la funcién de cada uno de los pines. Los diagramas de temporizaci6n, en particular, son muy importantes porque muestran las relaciones entre la sefial 0 sefiales de reloj y las dems sefiales internas yy externas involucradas en la operaci6n del sistema. Distribucién de pines del 8085 E18085 es un potente microprocesador para- lelo de 8 bits fabricado por Intel y otras segun- das fuentes con tecnologia NMOS (MOS de canal N). En la figura 747 se muestra la distri- bucién de pines de este chip, disponible en dos versiones: estdndar y de alta velocidad. La primera se designa como 8085A y opera a3 MHz. La segunda se designa 8085A-2 y opera a5 MHz. La frecuencia de operacién se establece me- diante un cristal, una red RC 0 un reloj externos. Externamente, el 8085 cuenta con un bus de datos de 8 bits y un bus de direcciones de 16 bits parcialmente multiplexado sobre el bus de datos. Esta ditima caracteristica le permite direccionar hasta 2'*=65536 bytes de memoria ¢ incluir funcio- nesde control adicionales no disponiblesen el 8080. ‘Como veremos més adelante, para obtener las 16 Iineas de direcciones es necesario disponer de un laicho registro de 8 bits externo. Desde un punto de vista cualitativo, los 40 pines del 8085 se pueden agrupar en las siguientes categorias: + Un bus de datos/direcciones multiplexado de ocho (8) lineas (AD7-ADO) 502 Microprocesador 8) Presentacién externa Vee Ho Wa cuK(oun, FESETN READY lo + Un bus de direcciones de ocho (8) Iineas (A15-A8) + Un bus de control de interrupciones de seis (6) Lineas (INTR, TRAP, RST 5.5, RST 6.5, RST 7.5, INTA) + Un bus de comunicacién serie de dos (2) lineas (SID, SOD) + Un bus de sefiales de control de once (11) lineas (ALE. RD, WR, I0/M, $0, $1, READY, HOLD, HLDA, RESET IN, RESET OUT) + Unbusde seftales dereloj de tres (3) lineas (X1,X2, CLK) + Un bus de alimentacién de dos (2) Ifneas (VEC, GND) Las Iineas Vee (positivo, pin 40) y Vss 6 GND (negativo, pin 20) constituyen el bus de alimenta- cién, E18085 puede operarcon tensiones de alimen- tacién entre 4.75 V y 5.25V. El voltaje nominal de trabajo es 5 V. El consumo maximo de corriente es del orden de 170 mA. Las lineas de entrada X1 (pin 1) y X2 (pin 2) son los terminales de conexién del cristal de cuarzo ola red RC externa que maneja el generador interno de pulses de reloj. La sefial de reloj resultante se obtiene en la Ifnea de salida CLK (pin 37). La entrada X1 puede ser también controlada por una sefial de reloj externa. En este caso, la frecuencia de salida es la mitad de la frecuencia de entrada, En Ja figura 748 se muestran algunas configura- ciones tipicas de circuitos de reloj para el 8085, En la leccidn 50 discutiremos en detalle el disefio de estos yotros circuitos, Se utiliza un cristal cuando se Tequiere una alta estabilidad de la frecuencia de salida y una red RC cuando la estabilidad no es un factor determinante. La frecuencia de resonancia del cristal debe serel doble della frecuencia deseada, Las lineas tri-state unidireccionales de salida A8 (pin 21) hasta A1S (pin 28) constituyen la parte alta del bus de direcciones. Transportan los 8 bits mas significativos de la direccién de memoria o de entrada/salida involucrada en una transferencia de informacién desde 0 hacia el microprocesador. Estas lineas se pueden conectar directamente al bus de direcciones del sistema sin necesidad de circuiteria adicional. Las lineas tri-state ADO (pin 12) hasta AD7 (pin 19) constituyen el bus multiplexado de datos y direcciones. Durante el primer ciclo de una instrucci6n, estas Ifneas son unidireccionales y transportan los’ bits menos significativos (AO-A7) de la direccién de memoria 6 de entrada/salida seleccionada, Durante el segundo y tercer ciclos, estas Iineas son bidi- Circuitos de reloj para 8085 ass 2) Cristal de cuarzo b) Red RC (3 MHz) 4700 - 1K ¢) Relo] externo (1-6 MHz) Flotante: (al aire) reccionales y se convierten en el bus de datos de 8 bits del sistema. Lasalida ALE (Address Larch Enable: habilitador del registro de direcciones, pin 30) informa a la circuiteria externa la naturaleza de la informacién presente en el bus de datos y direcciones. Especificamente, ALE se hace alta cuando el microprocesador envia través delas iineas ADO-AD7 los 8 bits menos significativos de la palabra de direcci6n, Esto sucede durante el primer ciclo de reloj de una instruccién. La informacién respectiva (los & bits menos significativos de la palabra de direccién) puede almacenarse en un latch registro externo, como se muestra en la figura 749. En este caso, la sefial ALE habilita el registro, permitiendo que el dato de las Iineas AD7-ADO se transfiera a las salidas A7-A0. Durante el segundo y tercer ciclos, la linea ALE permanece inactiva, es decir en bajo, y por tanto el latch ignora la informacién de datos (D0-D7) que circula por el bus comin, Las salidas $0 (pin 29), $1 (pin 33) e 1O/M1 (pin 34) informan sobre el estado (status) de las opera~ CEKIT- Curso préctico de circuitos digitales y microprocesadores 503 [Separacion de los buses de datos y direcciones Bus de direcciones Registro (7aLs374) ciones realizadas por el microprocesador. Espectfi- camente, un alto en la linea TO/M indica una opera- cién de lectura o escritura desde o hacia un puerto de entrada/salida y un bajo en la misma linea indica una operacién de lectura o escritura desde © hacia una posicién de memoria. Del mismo modo, $1 y SO informan sobre el tipo de ciclo en progreso. Especificamente, $1S0=00 indica que el microprocesador se encuentra en esta- do halt, es decir detenido, $1S0=01 indica que esta realizando una operaci6n de lectura, S1S0=10 indi- ca que esta realizando una operacién de escritura y S1S0=11 indica que estd realizando la biisqueda de un ep-code 0 c6digo de instruccién. La salida sri-state RD (read: lectura, pin 32), activa en bajo, indica que el microprocesador est realizando una operacién de lectura desde 1a posi- ign de memoria o el puerto de entrada selecciona- doporel busde direcciones y que el bus de datosesté disponible para la transferencia de informacién. La salida tri-state WR (write: escritura, pin 31), activa en bajo, indica que el microprocesador est escribiendo la informacién presente en el bus de datos en la posicién de memoria oel puerto de salida seleccionado por el bus de direcciones. Laentrada READY (listo, pin 35) se utiliza para comunicar el 8085 con dispositivos de entrada/ salida o de memoria relativamente lentos, es decir con tiempos de acceso inferiores. los de trabajo del microprocesador. Normalmente, con dispositivos répidos, la linea READY se mantiene activa todo el tiempo para 504 indicar que el microprocesador esté preparado para enviar o recibir datos. Si READY se hace alta durante un ciclo de ectura o escritura, el microprocesador entiende que Ja memoria o el periférico estd listo para enviar 0 recibir datos. Si READY es de nivel bajo, el micro- procesador entraen un estado de espera hasta que las sefales del dispositivo externo indiquen que este ultimo esté listo para transmitir o recibir datos. La entrada HOLD (pin 39) le indica al 8085 que un dispositivo externo solicita los buses de datos, direcciones y control. Al recibir la sefial HOLD, el microprocesador completard las transferencias de datos actuales en los buses y situard las lineas de datos, direcciones, lectura, escritura e IO/M en estado de alta impedan- cia, permitiendo que el dispositive externo asuma el control del bus del sistema. La salida HLDA. (Hold Acknowledge: reconoci- miento de hold, pin 38) indica alacircuiteria externa que el microprocesador ha recibido una peticién de HOLD y que los buses quedardn liberados en el siguiente ciclo de reloj. La seffal HLDA se desactiva Iuego de haberse removido la sefial de HOLD. Mediociclo después el microprocesador retoma el control de los buses. Las Ifneas HOLD y HLDA se utilizan, principalmente en aplicaciones de DMA. Laentrada INTR (Interrupt Request: peticién de interrupcién, pin 10) se usa como linea de interrup- cién de propésito general. Puede ser enmascarada (ignorada) por software y posee la mas baja priori- dad. En combinaci6n con la salida INA (Interrupt Acknowledge: reconocimiento de interrupcién, pin 11) y el bus de datos, puede atender varios dispo- sitivos periféricos. La linea TRAP (pin 6) se utiliza como entrada para una sefial de interrupcién llamada trap, la cual Obliga al microprocesadora pararla ejecucién de su programa para atender los requerimientos del dispo- sitivo externo que activa dicha sefial. Su prioridad es la mds alta y no puede ser enmas- carada por el microprocesador. Esta linea se utiliza principalmente en situaciones de emergencia, por ejemplo una falla en el sistema de alimentacién. Las lineas RST 7.5 (pin 7), RST 6.5 (pin 8) y RST 5.5 (pin 9) son las entradas de las Hamadas interrupciones enmascarables . Su funcién es idén- tica a la de la interrupcién TRAP pero, a diferencia de ésta, pueden ser enmascaradas por el sofnvare que ejecuta la CPU, Cada una de estas Iineas estén asociadas a un flip-flop habititador de interrupciones interno que se puede inspeccionar y alterar utilizando instruccio- nes especiales. El enmascaramiento se refiere a esta circunstancia, Las cinco lineas de interrupci6n anteriores tienen una prioridad fija de atencién. Esto significa que si en. un momento dado hay dos 0 més de estas sefiales activas, solamente seré atendida la que tenga la més alta prioridad. El orden de prioridad, de mayor a menor, de estas Iineas es TRAP, RST 7.5, RST 6.5, RST5.5e INTR. Cada uno deestos pines slo puede ser utilizado por un dispositivo externo, Por cuestiones de diseiio del 8085, las rutinas de servicio de las cuatro primeras interrupciones deben comenzar, en su orden, en las posiciones de memo- ria hexadecimales 24, 3C, 34 y 2C. La direcci6n de atencién de la interrupcién INTR se especifica por programa. El tema de las interrupciones seré tratado en detalle en lecciones posteriores. La linea RESET IN (entrada de reser, pin 36), activa en bajo, iicalizael contador deprogramaen 0's y borra los flip-flops internos de habilitacién de interrupciones y de reconocimiento de hold. Sitia también los buses de datos y direcciones y las lineas tri-state del microprocesador en estado de alta im- pedancia, Esta situacién se mantiene mientras la linea de entrada RESET IN sea baja. En la figura 750 se muestra un circuito tipico de reser para el 8085. Circuito de reset_para el 8085 RESET IN Fig. 750 La linea RESET OUT (salida de reser, pin 3), activa enallto, informa ala circuiterfa externa que el microprocesador se encuentra en estado de reset. Se utiliza generalmente como sefial general deesetdel sistema y est4 sincronizada con la sefiai de reloj (CLK OUT) del microprocesador. Las lineas SOD (Serial Output Data: salida serie de datos, pin 4) y SID (Seriel Input Dara: entrada serie de'datos, pin 5) se utilizan para transferir informacién binaria desde y hacia dispositivos ex- ternos de comunicacién serie, por ejemplo teletipos. Estos terminales se controlan por software utilizan- do dos instrucciones denominadas RIM y SIM. La instruccién RIM (Read Interrupt Mask: leer miscara de interrupcién) se utiliza como una ins- truccién de entrada serie para transferir un birdesde la Iinea de entrada SID hasta el bir 7 del registro acumulador interno. La instruccién SIM (Set InterruptMask: establecer mascara de interrupcién) transfiere el séptimo bit del acumulador a la linea de salida SOD. Caracteristicas eléctricas Es importante conocer las caracterfsticas eléctri- cas de un microprocesador para garantizar que tra- baje dentro de limites seguros. En la figura 751 se resumen algunos pardmetros eléctricos notables del 8085 segiin especificaciones de su fabricante (Intel). La exposicién a condiciones méximas durante perfodos prolongados puede afectar seriamente la Confiabilidad del dispositivo o causar dafios irrever- sibles en su estructura interna, ‘Vota Eeaca Bab ones Enea ase eto ee San sae orate se trent Serer asrar e Seca nae he Arquitectura interna del 8085 Laorganizacién interna (arquitectura) del micro- procesador 8085 se encuentra representada en la figura 752. E1 8085 es una CPU de 8 bits porque su busdedatosesde8 bitsy su unidad aritmético-I6gica (ALU) esta disefiada para operar con palabras dé 8 bits. La ALU, entre otras funciones, puede incrementar odecrementar una cantidad binaria, realizar opera- ciones légicas como AND, OR y XOR y aritméticas como adicisn, sustraccién o comparacién con pala- bras de 8 bits. CEKIT- Curso préctico de circuitos digitales y microprocesadores 50 Arquitectura del microprocesador 8085, TA ASTes TP anaes rsrzs| ae ac Veen Conve Se 10 ‘Conbo! do rtarupcones g Pogeron seumulacor [recernoc] REGSTROE| REGSTRON [REGETROL, | femroee ola Core ogre Inatvceones ” cota Seecoe de ‘Segue drecsones El bus interno de datos sirve como medio de comunicacién entre los diferentes bloques y esté conectado pormedio del acopladoro buffer tri-state de datos y direcciones al bus externo del mismo nombre. Conectados a este bus interno se encuentran 6 registros de propésito general designados como B, C,D,E, Hy L, los cuales pueden operarindividual- mente como registros de 8 bits 0 como registros pares de 16 bits. En este iltimo caso, B y C conforman el registro BC, D y Eel registro DE y H y L el registro HL. Existen instrucciones diferentes para manejar los registros en forma individual o por parejas. El registro B, por ejemplo, puede utilizarse solo para almacenar un byte de datos y acompafiado del registro C para almacenar una palabra de datos o de direccién de 16 bits. A diferencia del microprocesador 6800, e! 8085 no posee registro indice. Sin embargo, algunas de sus funciones pueden ser llevadas a cabo por el registro de 16 bits HL. Este registro se utiliza en numerosas instrucciones como una direccién de memoria implicita. La utilizacién de dicho método 506 Reopader Go Dans ‘Acopador Dreedones ao ADT=ADO 1S DE OATS Y DRECCIONES ANS -A8 US DE DRECCIONES Fig. 752} de direccionamiento se estudiard en detalle en proxi- mas lecciones. El més importante registro de uso general es el acumulador (A), un registro especial de 8 bits que Tetiene una de las cantidades a ser operada por la ALU y recibe el resultado de una operacién realiza- da por la misma. La informacién del acumulador junto con la suministrada por los cinco flip-flops de banderas constituyen la llamada palabra de estado del procesador 0 PSW (Processor Satus Word). Estos flip-flops se consideran como parte de un registro de 8 bits lamado registro de estado, mos- trado en detalle en la figura 753. Después de Ia ejecucién de cada instruccién aritmética o légica, los flip-flops del registro de estado se cargan con un 0 (reset) o un 1 (set) para indicar condiciones pro- pias de la operacién realizada, La funcién de las banderas se puede resumir en los siguientes términos: La bandera de acarreo (CY) se coloca en 1 cuando al realizar una suma se produce un acarreo (carry) de los dos bits més significativos 0 cuando en una resta se produce un préstamo (borrow) al efectuar la diferencia de los dos bits de mas peso. Registro de estados BANDERAS (FLAGS) eenesaos =] L andra ua ace Sronwsre La bandera indicadora de paridad (P) se coloca en I si el dato almacenado en el acumulador es de paridad par, es decir tiene un niimero parde 1’s, yen O si es de paridad impar, es decir tiene un nimero impar de 1's, Labanderaauxiliar de acarreo (AC) sehacealta (1) para indicar que se produjo un acarreo desde el bit 3 del acumulador, de la misma manera que CY indica un acarreo desde el bit 7. El flag AC se conoce también como bandera Sefualizadorade arrastre BCD puesto que indica, en luna operaci6n de adicién o sustraccién de cantida- des BCD, que debe hacerse un ajuste decimal con el fin de mantener el resultado en formato BCD. La bandera de cero (Z) se hace alta para indicar que la operacién previamente ejecutada es igual a cero, es decir, el acumulador oe! registro que guarda el resultado ha quedado cargado con 0’s. Mientras esto no suceda, la bandera Z permanece en 0. La bandera de signo (S)es una copia del bit7 del acumulador, es decir adopta la condicién del MSB después de la ejecucidn de una instruccién aritméti- cao légica. Una bandera de signoalta (1) representa un ndmero negativo, mientras que una bandera de signo baja (0) representa un nimero positivo. Cualquiera de estas banderas puede ser usada para informarle al microprocesador que salte 0 bi- furque el curso normal del programa a otro progra- ‘ma 0 a otra parte del mismo. Por ejemplo, si el resultado de una operacién es cero, la bandera Z puede utilizarse para que el contro del programa se transfiera a una subratina encargada de generar un mensaje de error. Ademés del acumulador y el registro de estado, otro circuito asociadoa la ALU esl registro tempo- ral, encargado de recibir un dato desde el bus interno de datos y retenerlo para ser procesado por la ALU. Este registro interviene en la ejecucién de mayor parte de las instrucciones aritméticas y I6gicas asig- nadas al microprocesador. Existen varios registros de propésito especial en ¢1 microprocesador 8085. De ellos, sdlo el apunta- dor de Ia pila o stack pointer y el contador de programa pueden ser accesados mediante instruc- ciones en lenguaje de maquina. Los demas registros no pueden ser utilizados directamente por el progra- mador. El apuntador de 1a pila es un registro de 16 bits que se emplea usualmente para almacenar una di- reccidn que da acceso a una regién de la memoria conocida como pila, definida por el programador. Enla pila, el microprocesador guarda temporal- mente los contenidos de todos sus registros cuando debe trasferirel control del programaauna subrutina (ver leccién 46, pigina 497). El manejo de la pila se discutird en lecciones posteriores. El contador de programa (PC) es un registro de 16 bits de propésito especial que indica la direccién donde se encuentra almacenada el préximo byte de Ja instruccién a ejecutar. El contador de programa se comunica con el exterior a través del seguro de direcciones, conectado a los acopladores de buses tal como se indica en la figura 752. EI seguro 0 latch de direcciones cumple dos funciones. En primer lugar, selecciona una direc- cién a ser enviada desde ef puntero de la pila, el contador de programa o cualquiera de los registros pares de 16 bits BC, DE o HL. En segundo lugar, conserva esta direcci6n hasta que sea requerida por el bus de direcciones, Un incrementador/decrementador incorporado permite aumentar 0 reducir en 1 el contenido de cualquiera de los registros de 16 bits. Otro registro importante del 8085 es el registro de instrucciones, encargado de retener el c6digo de operacién de la instruccién a ejecutar con el fin de que sea interpretado porel decodificador de instruc- ciones y codificador de ciclos de maquina. Una vez intexpretada la instruccién, este tiltimo circuito pro- duce, a través del bloque de control y tiempos, la secuencia de microinstrucciones necesarias para su ejecucién, En otras palabras, el cédigo de operacién alma- cenado en el registro de instrucciones se convierte por medio de la circuiterfa interna del microproce- CEKIT. Curso préctico de circuitos digitale y microprocesadores 507 sador en una serie de sefiales en el bus de control extemio y de operaciones internas, formando el Mamado Ciclo de instruccién de la CPU. Por ejemplo, si después de capturar e interpretar el cédigo de operacién de una instruccién esta le ordena al microprocesador una operacién de suma, el decodificador reconoceré que necesita buscar en Ja memoria el dato que debe ser sumado al acumu- lador y dirigird la circuiterfa de control para enviar otro pulso de lectura, transferir el dato al bus de datos y llevarlo al registro temporal. Unavezque se completa la suma, la circuiterfa de control dirige el resultado al acumulador. A conti- rnuaci6n inerementa el contadorde programa y envia otro pulso de lectura con el fin de conseguir el cédigo de operacién de la proxima instruccién del programa. En la siguiente seccién describiremos més en detalle la forma como el 8085 ejecuta una instruccién. Ejemplo de ejecuci6n de una instruccién con 8085 Para comprender cabalmente el proceso seguido por el microprocesador 8088 para ejecutar una ints- truccién debemos aclarar primero el significado de algunos términos. Inicialmente, es importante re- cordar que todas las operaciones de una CPU estin coordinadas y sincronizadas por una sefial maestra de reloj. En el 8085, la frecuencia de la sefial de reloj es igual a la mitad de la frecuencia de oscilaci6n del cristal colocado entre los terminales X1 y X2. Por ejemplo, para operar un 808SA a su maxima frecuencia de trabajo (3 MHz) debe utilizarse un cristal de 6 MHz. La unidad bésica de tiempo es el estado (T), equivalente a un ciclo completo de reloj. ‘Como vimos en la leccién 46, todos los ciclos de instrucci6n del 6800 duran dos estados de maquina, En el 8085, sin embargo, un ciclo maquina puede durar entre’3 y 6 estados. Unciclo de instruccién del 8085, que esel proce- so de captar una instruccién de memoria y ejecutar- la, consta de 2.a 5 ciclos maquina. Hay unos 10 tipos diferentes de ciclos méquina, lamayoriade los cuales implican la transferencia de un byte a través del bus del sistema (es decir, una operaci6n de lectura oescritura) y algunas operacio- nes internas de la CPU. El naimero y los tipos de ciclos de méquina utilizados dependen dela instrucci6n de que se trate, 508 Aclarados estos términos, mostraremos, me- diante un ejemplo sencillo, la forma como el micro- procesador 8085 busca y ejecuta sus instrucciones. Para tal fin, consideremos la instrucci6n «sumar al acumulador el byte 88>, la cual se especifica en lenguaje de méquina del 8085 como C6 88 y en ensamblador como ADI 88. El cddigo de operacion es, naturalmente, C6 y el operando es 8. Para comprender cabalmente el proceso vamosa suponer que la instrucciGn se encuentra almacenada a partir de Ia posicién de memoria 2AQOH. Esto implica que, al comenzar la ejecuci6n de la instruc- cin, el contador del programa se encuentra sefia- lando a la posicién 2AO0H. De este modo, el listado en lenguaje de maquina de la instruccién serfa: Contenido Direccion 2400 c 2A01 Son dos los ciclos de maquina (MC) requeridos por la instruccién ADI, tal como se muestra grétfica- mente en la figura 754. El proceso se puede resumir a grandes rasgos asi: Enel primer cicio de méquina (MC1) se suceden la captacién del cédigo de operacién y 1a decodificacién de la instruccién. Durante este ciclo, la sefial IO/M se hace baja (0) para indicar que se trata de una operacién realizada en la memoria. Las sefiales SO y $1 se hacen altas, indicando en forma Ciclo de instruccién con 8085 MM Clo do instruccion ————e |< re, ——>] <—— vc, ——>| Lectura de memoria Captacién de op-code Leer y decoditicar el byte del cédigo de operacién. Incrementar 6! PC Leor el byte siguiente y sumarlo al acumulador. Incrementar el PC Fig. 754 completa que el microprocesador procederd a leer un cédigo de operacién. El contenido del registro contador de programa sellevaa los busesa través del seguro de direcciones y los dos acopladores o buffers. La parte alta de la direccién permanece durante tres estados en el bus de direcciones. La parte baja se mantiene durante un solo estado en el bus de datos/direcciones. En este tiempo se activa la sefial ALE, para retener la infor- ‘macién por medio del larch externo. Una vez presentes los 16 bits en el bus de direc- ciones, se activa la sefial RD para indicar a la memoria que ya puede transferirel byte direccionado al bus de datos (ADO-AD7). El cédigo obtenido (C6) se transmite a través del bus interno hacia el registro de instrucciones. Esto sucede durante el tercer estado (T3) Enelestado T4 se decodifica el cédigo de opera- cién y se incrementa en uno el contador del progra- ‘ma, sefialando entoncesel dato a sumar. Elresultado de la decodificacién le indica al microprocesador el nimero y tipo de ciclos de mAquina que siguen a continuacién (en nuestro caso un solo ciclo de lectura).. En el segundo ciclo maquina (MC2), la CPU lee el byte siguiente y lo suma al acumulador. Las sefiales de control indican una lectura simple de memoria (IO/M=0; $1=1; S0=0). EL contenido del contador del programa (ya incrementado) se coloca en el bus de direcciones mediante el método descrito anteriormente y se activa entonces la sefial RD para captar el byte siguiente de la instruccidn (88H). Bl datoes transfe- tido, por medio del bus interno, hacia el registro temporal, La unidad aritmético-I6gica (ALU) suma los contenidos del acumulador y el registro temporal, almacenando el resultado en el acumulador (el dato anterior se pierde). El registro de estado se modifica de acuerdo con el resultado de la operacién. El contador del programa se incrementa de nuevo. En algunas versiones del 8085, durante el segun- do ciclo maquina sélo se completa la transferencia de datos hacia la CPU. Para realizar la suma son necesarios uno o dos ciclos més. Sin embargo, estos ciclos de reloj extrase solapan con el ciclo maquina de captaciGn del cédigo de operacién de la siguiente instruccién, de forma que la instracci6n ADI sélo utiliza efectivamente dos ciclos méquina con siete estados. Circuitos de soporte del 8085. Sistema minimo Existe un niimero bastante grande de circuitos de apoyo para el microprocesador 8085, entre los que se incluyen memorias RAM, ROM y circuitos inte- grados de interface de entrada/salida, En las lecciones 31 a 33 tuvimos la oportunidad de estudiar a fondo diversos circuitos de memoria Thterface programable (PPI) 6255 '@) Distribucién de pines CEKIT- Curso préctico de circuitos digitales y microprocesadores 509 RAMy ROM. Enesta ocasisn describiremos breve- mente algunos de los principales circuitos de inter- face para el 8085, Su estudio se ampliard en leccio- nes posteriores. Entre los mis tiles circuitos de soporte del 8085 se encuentra la interface programable de periféri- cos (PPI) 8255, En la figura 755 se muestran la distribucién de pines y la organizacién interna de este chip, el cual contiéne tres puertos programables de entrada/salida de ocho bits (A, B y C). E1 8255 permite 1a programaci6n independiente de sus tres puertos para que acttien como entradas, salidas oen forma bidireccional. Ademés, es posible utilizar el puerto C como dos bloques de lineas de control para la transmisién asincrona de datos por los puertos A y B. En la figura 756 se muestran tres de los modos de operacién mas comunes del circuito de interface programable 8255. Atos aspostvos ctreuite wei As espostvos ¢) Ay B como entradas asincrénicas Fi Estos y otros modos de operacién se consiguen mediante una palabra de control que se envia desde la CPU al 8255 a través del bus de datos. En futuras lecciones aprenderemos las particularidades de los modosde operacién y las palabras de control corres- pondientes para cada uno de ellos. 510 Circuito de soporte 8155 PAI PAO Puerto A Puerto B q RO wR RESET Roto} det Temporizador Salida det Temporizador Puerto c Vee (+5V) L— vss(oy Fig. 757 ‘Como vimos en una seccién anterior, es necesa- rio un biestable externo para leer los bytes desde el bus multiplexado de datos'y direcciones del 8085 (figura 749). Se han disefiado varios circuitos de apoyo para el 8085 que incluyen internamente el biestable de direccién. Unejemplo de lo anterior es el circuito integrado de soporte 8155, el cual incorpora en una misma cpsula tres puertos de entrada/salida en paralelo (dos de 8 bits y uno de 6 bits), 256 bytes de memoria RAM y un temporizador programable. Dado que el 8155 puede demultiplexar interna- mente sus buses de datos y direcciones, puede ser conectado directamente al bus de datos y direccio- nes del 8085, En la figura 757 se muestra el diagrama de bloques y la configuracién de pines del 8155. Los puertos A, B y C son similares en su configuraci6n y funcionamiento a sus homélogos en el 8255. Se pueden utilizar como tres puertos de entrada/ salida independientes ocon las seis Iineas del puerto C como sefiales de peticién de interrupcién y de preparaci6n/conformidad para la transmisi6n de datos por los puertos A y B. El temporizador programable del 8155 es bésica- mente un contador direccionable de 14 bits que cuenta hacia abajo en respuesta a los pulsos recibi- dos por la linea TIMER IN (pin 3). Genera varios tipos de sefiales por la linea TIMER OUT (pin 6) cuando el contador llega a algtin valor definido por +5v_45v (c1-7400 4J1: Conector de tarjeta del programador 4J2: Conector de interfaces de ES Sistema minimo MicroCekit I. Tarjeta del procesador wu tetees PuetoA Pueto 8 SRR ERREB Preto a8 anes our n#s00" Fig. 758 CEKIT- Curso practico de circuitos digitales y microprocesadores 514 el programador. Las sefiales generadas por el temporizador pueden ser utilizadas en el control de dispositivos de entrada/salidao para interrumpir ala CPU. La gran ventaja que ofrece el 8155 es la posibili- dadde conformar un pequefio microcomputador sin necesidad de acudir a otros circuitos de apoyo, fuera de una unidad de programacién por medio de la cual se introducen los programas en la memoria. El sistema Micro-Cekit I (Figura 758) s un claro ejem- plo de ello, ElMicro-Cekit Tes un sistema mfnimo basadoen ‘1 8085 que nos permitiré realizar los experimentos yejercicios desarrollados y planteados a lo largo del presente curso. Su construccién y funcionamiento serdn explicados ampliamente en los proyectos cen- trales. Un circuito de soporte similaral 8155 es €1 8355, el cual combina una memoria ROM de 2048 (2K) bytes y dos puertos de entrada/salida de 8 bits. Al igual que el 8155, el 8355 puede demultiplexar los ‘ocho bits del bus de datos/direcciones, Sin embargo, el 8355 debe utilizar tres lineas extra de direccién para acceder a los 2 kilobytes de memoria disponibles en su interior. En el 8355 no se dispone de las sefiales de conformidad ode interrup- cién con que cuentan el 8155 y el 8255. En aplicaciones especializadas son iitiles algu- nos otros circuitos integrados. Cuando se trata de transmitir grandes cantidades de informacién en serie, un UART (transmisor/receptorasincrono uni- versal), como el controlador de comunicaciones 8251, puede ser lo mAs indicado. Silo que se necesita es procesar funciones mate- miticas avanzadas, tales como logaritmos, funcio- nes trigonométricas etc., puede recurrirse a los lla- mados procesadores aritméticos como el AMD 9311. El microprocesador Z80 E1Z80, introducido por Zilog, compafiia subsi- diaria de Exxon, en abril de 1976, es un microproce- sadorde una sola pastilla que incluye esencialmente todas las prestaciones de hardware y software del 8080 con muchas adiciones significativas. Entre los fundadores de Zilog y creadores del Z80 se inclufan antiguos empleados de Intel que habfan participado en el disefio del 8080, entre ellos Federico Faggini. E18085 se puede considerar como una respuesta de Intel a la aparicién del 280, 512 En la figura 759 se muestra la distribucién de pines del 280, disponible en cépsula DIP de 40 patas. El dispositive opera a +5V y viene en dos versiones: 280 y Z80A. Este titimo es idéntico a la versiGn esténdar excepto que opera a 4 MHz mien- tras que el Z80 esti especificado para 2.5 MHz. "“Microprocesador 280 Tanto las 16 Iineas de direcci6n como las 8 lineas de datos estén disponibles, evitandose deesta forma la necesidad de un seguro de direcciones externo. El 280 s6lo utiliza dos Iineas de peticién de interrupcién, NMI (Non-Maskable Interrupt: Inte- rrupeiénnoenmascarable)e INT (Interrupt Request: peticién de interrupcién), equivalentes,en su orden, alas lineas TRAP e INTR del 8085, Un bajoen la linea NMI obliga autométicamen- te al Z80 a buscar la rutina de servicio de la interrupcidn en la posicién de memoria 0066H. Las Ifneas del reloj se reducen a una y se agrega una sefial RFSH (Refresh), utilizada principalmente ara el “refresco” de memorias dindmicas, las cus- les son mds baratas que las estaticas. La disponibi- lidad de la circuiteria de refresco dentro del chip suple lanecesidad de tener que utilizar un controlador extemo para este fin, Recuerde (ver leccién 32) que las memorias dinémicas se refrescan direccionando cada fila una vez cada 2 milisegundos, aproximadamente. Mien- tras se realiza la decodificaci6n de una instruccién, el contenido del registro de refresco interno se transfiere al bus de direcciones. La sefial RFSH en asocio con la seital MREQ se utilizan, entonces, para gatillar los 7 bits de més bajo orden de esta direccién para todas lasmemorias dindmicas del sistema, Asf se refrescan las filas seleccionadas. La sefial 1O/M del 8085 se divide formando las lineas IORQ (/nput/Output Request) y MREQ (Memory Request), que indican la operacién sobre dispositivos de entrada/salida y memoria respecti- vamente. Las sefiales SO y Si, por su parte, son reemplazadas en el Z80 por una sola linea M1 (ciclo de maquina 1), que se activa siempre que la CPU lee un cédigo de operacién. La Ifnea HALT se utiliza para detener la opera- cin del microprocesador hasta recibir una peticién de interrupcién valida. Mientras tanto, la CPU eje- cuta instrucciones de no operacién (NOP), mante- niendo la actividad de refresco de memoria, Las Iineas BUSRQ (Bus Request: peticién de bus) y BUSAK (Bus Acknowledge: reconocimiento de bus) cumplen la misma funcién de las sefiales HOLD y HLDA del 8085, explicadas anteriormen- te. Igual sucede con la seffal WAIT (esperar) del 780, equivalente a READY en el 8085. En la figura 760 se muestra el diagrama de bloques de la CPU Z80. El dispositivo posee un bus de datos de 8 bits, un bus de direcciones de 16 bits y es mucho més rico en registros que el 8080. Arquitectura del 280 Estructura de registros del _Z80 oe =) Ea aoe aon rover Be Bel oie re ate Mates Lo) Eee En términos generales, el Z80 posec el doble de registros que el 8085. En la figura 761 se relacionan los registros disponibles para el programador en el microprocesador Z80. Los registros sombreados no estan disponibles en el 8085. Los principales registros de propésito general estdn duplicados mediante un conjunto auxiliar de registros designados A’, F’, B’,C’, D’,E’, H’ y L’. Las instrucciones del 280 normalmente se refieren alos regstos principales (A, F. B,C, D, E, HL). Sin embargo, utilizando ciertas instrucciones espe- ciales, se pueden intercambiar répidamente los con- tenidos de los registros principales y auxiliares. Tomando la idea del 6800, e1 Z80 tiene un par de registros indice IX e IY. E1 Z80 también contiene un registro nuevo de 8 bits, I, denominado registro de direcci6n de pdgina de interrupciény utilizado para almacenar la mitad de orden superior del vector 0 direcci6n dela rutina deservicio dela interrupcién, Otro registro de 8 bits, R, denominado contador de refresco de la memoria, proporciona las seitales requeridas para el refresco periédico de los ircuitos externos de memorias dindmicas. El contador de refresco de memoria funciona de manera totalmente automitica y puede ser accedido por el programador sélo con fines de comprobacién, E1Z80 tiene 696 cédigos de operacién diferentes en lenguaje de méquina, muchos de ellos de dos bytes de longitud, Esto se traduce en un significativo aumento del poder de proceso del microprocesador, pero también hace que su lenguaje de maquina sea més dificil de aprender y utilizar. CEKIT. Curso practico de circuitos digitale y microprocesadores 513 Arquitectura del 6502 Fig. 762 El Z80 puede interconectarse fécilmente con memorias RAM y ROM esténdares para construi sistemas de aplicacién. Para proveer comunicacién con puertos de entrada/salida paralelos se utiliza un circuito de apoyo llamado Z80-PIO, el cual contie- ne dos puertos programables de 8 bits. Se pueden también agregar puertos de entrada/salida seriales utilizando un circuito conocido como Z80A-SIO. Otros microprocesadores de 8 bits. EL6502 Un poco después de 1a aparicién del MC6800 de Motorola, la firma MOS Technology Inc. introdujo la familia 6500, uno de cuyos miembros més desta- cados fue el microprocesador 6502, conceptualmente similar al 6800 pero incompatible con el mismo (lo que no sucede, por ejemplo, entre el Z80A y el 8085A). E1 6502 es la CPU utilizada en el computa- dor Apple Il En la figura 762 se muestra la arquitectura del 6502. El dispositivo posee un registro acumulador (A), un registro apuntador de pila (S), dos registros indices (Xe Y) y un registro de estado (P), todos de 8 bits. El reloj interno produce, a partir de una sefial externa de reloj TTL, dos sefiales de reloj (1 y 2) similares a las requeridas por el 6800 (ver figura 743, pagina 495). Una de las razones m4s importantes de la popu- laridad del 6502 es la simplicidad de sus seftales de control. Esto lo hace particularmente adecuado para el disefio de sistemas sencillos. La salida R/W, por ejemplo, indica si el microprocesador esta realizan- do una operacién de lecturao escritura de memoria, Las entradas RESET, IRQ y NMI operan igual a sus similares del 6800 (ver pagina 496). Sila linea RESET se mantiene baja por 8 o mas ciclos de reloj, el microprocesador va hasta las direcciones FFFC y FFFD para obtener la direccién de comienzo de la rutina de inicializacién del siste- ma. NM esa linea de entrada para interrupciones no enmascarables. Cuando NMI se hace baja, el micro- procesador completa la instruccién en curso y en- tonces salva el contenido del contador de programa y del registro de estado en la pila. Una vez hecho esto, busca la direccién de comienzo de la rutina de servicio en las posiciones FFFA y FFFB, IRQ es la Ifnea de entrada para interrupciones enmascarables. Cuando la interrupcién estd habili- tada y la linea IRQ es de nivel bajo, el microproce- sador salva el contenido del contador de programa y del registro de estado en la pila. A continuacién, busca en las direcciones FFFE y FFF la direccién de comienzo de la rutina de servicio de la interrup- cién, E1 6502 no tiene capacidad de situar sus buses en estadode alta impedancia, Cuando esta condicién se requiera, por ejemplo en una operacién de DMA, deben utilizarse buffers tri-state externos. Sin em- argo, el 6502 puede insertar estados de espera, de manera similar como se hace con el 8085. ‘Cuando laentrada RDY (ready: listo) del 6502 se hace baja durante un ciclo de lectura, la CPU entra “enunestado ociclo de espera. Si estd en progreso un ciclo de escritura, este es completado. El ciclo de lectura se entra antes de que el microprocesador ingrese al estado de espera. Se pueden insertar cuantos ciclos de espera Sean necesarios. Los estados de espera se utilizan principalmiente para incrementar el tiempo disponible para acceder ‘a memorias lentas y para correr programas paso a aso, es decir instruccién por instruccién, Estudia- remos en detalle esta tiltima técnica en lecciones posteriores. La figura 763 muestra el formato del registro de estado para el 6502. Las banderas de acarreo (C), cero (Z), sobreflujo (V) y signo (N) son idénticas a Iadel 6800. La bandera inhibidora de interrupciones (D) puede ser puesta en 0 6 en 1 por software (instrucciones de programa) y se utiliza para enmas- carar 0 ignorar la interrupcién en la linea IRQ. Esto sucede cuando I=1, istro de estado del 6502 JODO DECIMAL RUPTURA OBREFLUJO IGNO Fig. 763 La bandera Ise hace alta (1) también durante una operacién de reser o cuando la CPU responde a una interrupcién, Debe ser borrada (fijada en 0) para permitir que el microprocesador pueda responder a una interrupcién solicitada a través de la linea IRQ CEKTT- Curso préctico de circuitos digitales y microprocesadores 45 La bandera de mode decimal (D), cuando es alta (1), ocasiona el ajuste decimal del resultado de cualquier operacién de suma o resta. En otras pala- bras, pone el resultado en formato BCD. Esta bande- ra se controla mediante las instrucciones SED (set decima! mode: fijar bandera D en 1) y CLD (clear decimal mode: fijar bandera D en 0). La bandera de comando de ruptura (B) se hace alta como resultado de la ejecucién de una instruc- cién de interrupcién por software llamada BRK (break). Esta bandera la utiliza el 6302 paradetermi- nar la naturaleza de una interrupcidn, es decir saber si es por hardware o por software. No existen instrucciones que permitan situar directamente la bandera B en 06 en 1. Igual que sucede con el 8085 y otros micropro- cesadores discutidosen este curso, e1 6502 tiene una familia de circuitos integrados periféricos que pue- Gen ser conectados con él para formar un sistema, Uno de estos circuitos de apoyo es el adaptador periférico de interface (PIA) 6522, el cual cuenta, entre otras facilidades, con dos puertos de entrada/ salida de 8 bits y dos temporizadores programables Otro circuito integrado periférico itil de la fami- lia 6502 es e1 6530, el cual contiene 1 K de ROM, 64 bytes de RAM, un temporizador de intervalos programable y dos puertos de entrada/salida. Conel 6802 se pueden también usar memorias RAM 0 ROM esténdar para construir un sistema. Como sucede en el 6800, un ciclo de maquina para el 6502 equivale a un periodo de la sefial de Teloj 41. £16502 puede operar a frecuencias de reloj hasta de 2 MHz. Esto proporciona un ciclo de méquina de 500 ns. Sin embargo, tenga presente gue la velocidad de un microprocesador no se puede juzgar solamente por la frecuencia del reloj. Comparacién de los tiempos de ejecucion de micropr \dores comunes: La tabla de la figura 764 compara los tiempos de ejecucién de la instruccién «cargar el acumulador con el dato 7F» en las versiones mas répidas dispo- nibles de los cuatro microprocesadores presentados hasta el momento en este curso. El R6S02A y el MC68B00 pueden ejecutar la instruccién con un reloj de 2 MHz en menor tiempo que el Z80A con un reloj de 4 MHz 0 el 8085 con un reloj de 5 MHz. Esto se debe a que los dos primeros hacen uso extensivo de una técnica conocida como Pipelining, consistente en buscarel siguiente byte en la memoria mientras se interpreta el byte previa- mente captado. Enel caso del 6502, Ia instruccién tomada como ejemplo se identifica por el cédigo de operacion neménico ADC y demora tres ciclos de reloj para su ejecucién, distribuidos en cuatro pasos, como se resume en la tabla de la figura 765. Los pasos 1 y 4 se traslapan con la instruccién adyacente. Por esta raz6n, efectivamente s6lo se necesitan tres ciclos para ejecutar la instruccién. Pasos de ejecucién de la instruccién ADC. en eee a En general, la velocidad relativa de un process- dor en la ejecucién de un programa no puede ser juzgada de modo preciso basandose en el tiempo de ejecucién de un instruccién sencilla, Con el fin de evaluar y comparar la velocidad total de operacién de los microprocesadores se utilizan programas de prueba (benchmark programs) diseftados especiti- camente para esta funcién. ‘Como habré podido observar, existen numerosas similiu des, tanto a nivel de hardware como de software, entre los diversos microprocesadores de 8 bits. Por tanto, conociende suficientemente cualquiera de cllos, por ejemplo el 8085 Usted estard preparado para conocer cualquier otro. Leccién 48 Lenguaje de maquina y lenguaje ensamblador + Introduccién + Modelo de programacién del 8085 + Formato de instrucciones del 8085 + Elacumulador y las banderas + Bifurcaciones, bucles y contadores + Modalidades de direccionamiento + El uso de la pila + Utilizacién de subrutinas Introduccién En el presente curso estamos empefiados en que usted domine los principios y las técnicasnecesarias para la eficiente utilizacién del microprocesador en eldisefiode sistemasde control. Paraelloes necesario conocer a fondo tanto el hardware, o parte fisica de los computadores, como el software , 0 programas que hacen que dichos sistemas funcionen. La clave para el dominio de la programacién de microprocesadores es el conocimiento profundo del Ienguaje ensamblador, el cual nos permite expresar 1 Ienguaje de méquina en una forma més clara desde el punto de vista humano. En la leccién 45 describimos el lenguaje de méquina y definimos las bases para su expresin en forma de lenguajeensamblador. Ahoraempezaremos. a ocuparnos de algunos detalles importantes que se deben tener en cuenta al realizar programas en estos Ienguajes. En pocas palabras, iniciaremos en firme elconocimiento y dominio del lenguajede maquina. Con los ejemplos presentados en esta leccién utilizaremos algunas instrucciones del micropro- cesador 8085. De esta manera nos familiarizaremos con ellas antes de estudiarlas formalmente y en detalle, en la lecci6n 51. Modelo de programacién del 8085 Cuando estudidbamosen|aleccién 47 laestructura del microprocesador 8085, nos interesaba princi- palmente comprender su funcionamiento anivel de sucircuiterfa internay la formacomosecomunicaba fisicamente con sus circuitos de soporte. En este momento nuestro interés primordial es describir el microprocesador desde el punto de vista del programador, sin ocuparnos demasiado de su equivalente fisico. Durante las etapas de creacién, escritura y depuracién de cualquier programa, se debe tener en cuenta un modelo del microprocesador enfocado a las partes entre las cuales se realiza el intercambio de datos. A esta representaci6n del microprocesador se le llama modelo de programacién. La transferencia de informacién es bésica en la programacién en lenguaje de méquina. En todo computador, debe haber transferenciade informacién entre el microprocesador, la memoria y los puertos de entrada-salida, tal como lo indica la figura 766. También setransfiere informacién entre los diversos registros internos del microprocesador. Transferencias de informacién basicas En la figura 767 se ilustra el modelo de pro- ‘gramaci6n del 8085. Allfpodemos observarlaforma como se agrupan los registros de ocho bits formando Paes de dieciseis bits, La cifra entre panéntesis a a derecha de cada rectngulo indica el nimero de bits del respectivo registro. Es de anotar que la palabra de estados (el registro de estado del procesador) se toma en algunas ocasiones como pareja del acumulador principal El acumulador (A) participa en todas las ope- raciones aritméticas, Iégicas y de entrada-salida, ast como en la mayorfa de instrucciones de movimiento conlamemoria, Elacumuladores, desde el punto de vista del programador, el mas importante de todos los registros disponibles en el microprocesador. Los registros auiiliares B, C,D,E, Hy L pueden usarse como acumuladores secundarios, contadores, 517 CEKIT- Curso préctico de cireutos digtales y microprocesadores Registros auxiliares SP (16) | Apuntador de pila PC (16) | Contador do programa 76 64 3a £8 Bt ws [se] 2[ Tec] Tr T= Tey] cine Fig. 78; registros indices o apuntadores de direccién. En particular, la pareja HL se usa en muchas instrucciones como apuntador de direccién de ‘memoria (M), El apuntador de la pila (SP) sefiala permanen- temente la parte més alta del érea de memoria RAM conocida como la pila o montén. El contador del programa (PC) contiene la direccién de memoria de la proxima instrucci6n a ejecutar. Elregistro de estados (WS) almacena las banderas queinforman sobrelacondicién del microprocesador después de cualquier operacién l6gica o aritmética. Estas banderas son: CY: Bandera de acarreo. En la operacién de suma, esta bandera indica con un uno (1) sila suma de los dos bits mds significativosha generadoun “‘arrastre” (carry), En la resta, el uno (1) indica que se ha generado un “préstamo”, P: Bandera de paridad. Si el ntimero de bits contenidos en el acumulador es par, la bandera (P) se coloca en uno (1), de lo contrario se hace cero. AC: Bandera auxiliar de acarreo. Cumple la misma funcién de la bandera de acarreo (CY), pero actia sobre el bit 3 del acumulador. Es usadaen operaciones con niimeros en formato BCD. Z: Bandera de cero. Indica si el contenido del acumulador es cero, como resultado de Ia dltima operacién realizada, en cuyo caso la bandera se establece en uno (1). 518 S: Bandera de signo, Es una copia del bit siete del acumulador. Representa el signo del ntimero contenido en el acumulador, suponiendo que el mismo seencuentraen notacién complementoa dos. Formato de instrucciones del 8085 Enlos sistemas basados enel 8085, lamemoria se encuentra organizada en palabras 0 posiciones de ocho bits (un byte) cada una, En la misma forma se guardan los datos en los registros internos del microprocesador. Hay, sin embargo, algunas pocas instrucciones del 8085 que pueden trabajar con datos u operandos de dieciséis bits usando los registros internos emparejados. En la figura 768 se muestra un sencillo programa para obtenerel complementoados de un mimero (en este caso 40H) y guardarlo en la memoria, en la posicién 3050H (recordemos que la letra H después de un niimero indica que est escrito en formato hexadecimal). Complemento a 2 de un numero BOLECREEGHEE # yeueneesas El programa se desarrolla a partir de un diagrama de flujo general, que luego se detalla hasta obtener unlistado en lenguaje ensamblador y posteriormente en lenguaje de maquina. Enel ejemplo descrito notamos que el mvimero de posiciones de memoria utilizadas por el cédigo objeto del programa es mayor que el nimero de instrucciones en lenguajé ensamblador (cédigo fuente). Este hecho indica que no necesariamente a cada instruccién corresponde un byte o posicién de memoria. Algunas requieren de una © dos posiciones de memoria adicionales. Las instrucciones en el 8085, pueden constar entonces de uno, dos o tres bytes. Las instrucciones de un byte estén formadas solamente por el c6digo de operaci6n y norequieren ningiin operando. La instruccién CMA (com- plementar el acumulador) del programa anterior, mostrada en la figura 769, es un ejemplo de ello. Instruccién de un byte En las instrucciones de dos bytes, el primero de ellosesel cédigode operacién y elsegundoespecifica el operando de Ja instruccién. En la instruccién MVI B, O1H (cargar el registro B con el valor 01 hexadecimal), mostrada en la figura 770, se ilustra el formato de las instrucciones de este tipo, Instrucci6én de 2 Byte Cédigo OP were[ofofofofoli[i[op wom ola] ofololatel ye ae Ejemplo: MVI B, 01 Hx —> (08) Hx —w Cédigo de operacién (or) L+ (01) —> Dato Fig. 770 Cuando se trata de instrucciones de tres bytes, el primero de ellos contiene, como siempre, el cédigo de operacién, Los dos bytes restantes se usan para representar el valor inmediato del operando o Ia direcci6n completa (16 bits) del lugar de la memoria donde se encuentra almacenado. Un ejemplo de instrucciones de tres bytes se muestra en la figura 771. La instruccién LXI H, 3030H carga la pareja de registros Hy L con los valores hexadecimales 30 y 50, respeciivamente. Instruccién de 3 bytes Ap césiae OP spy | o[o Ejemplo: LX! H, 3030 > (21) Hx — cédigo de operacién OP L0H ] Direccion Leo El acumulador y las banderas Elacumulador est4 directamente conectado a la unidad légico aritmética y su contenido afecta al registro indicador de estado, Si bien los demas registros pueden ser utilizados en forma similar, es el acumulador el que se utiliza con ms frecuencia, Un ejemplo tipico del uso del acumulador es el traslado de datos entre distintaspartesde lamemoria. Esta es una operacién bastante sencilla pero su uso es bastante frecuente en todos los programas en lenguaje de méquina. Supongamos que tenemos un dato, de ocho bits, almacenadoen determinada posicién de memoria, a la que lamaremos ORIGEN. Deseamos trasladar dicho dato a una segunda posicién de memoria: DESTIN. Observe que por el momento no nos hemos preocupadoporlas posiciones dememoria concretas sino que utilizamos etiquetas que resultan més comprensibles y dejamos su traduccién parael final. CEKIT- Curso préctico de cireuitos digitalesy microprocesadores §19 Podrfa parecernos que el traslado de datos puede hacerse en una sola operacién debido a su sencillez. Sinembargoes necesariodividir la operaci6n en dos partes, una de captaciGn del dato desde la posicién de origen y otra para colocar el dato en la posicién destino. La razén de dicha division es la necesidad de utilizar los buses de datos y direcciones para cada una de dichas tareas. Si se intentara trasladar directamente un dato de una posicién a otra en la memoria se producirfa un conflicto en los buses puesto que no se sabria cual de las posiciones se esté direccionando. Ademis seria necesario indicar simulténeamente a.una memoria que escribiera el dato en el bus y a otra que leyera dicho dato, El problema serfa atin mayor si las dos posiciones de memoria se encontraran en un mismo circuito integrado. La solucién consiste en utilizar un almacena- miento intermedio para el byte que deseamos trasladar. Este almacenamiento puede ser, por supuesto, el registro acumulador. El primer paso es entonces llevar el byte desde la primera posicién de memoria hasta el acumulador y almacenarlo alli, procesoconocidecomocargare/acumulador (LDA: Loading the Accumulator). Luego se envfa el dato desde el acumulador a la posicién de memoria destino, operacién conocida como almacenar el acumulador (STA: Store the Accumulator contents). El programa que realiza dichas operaciones se muestra en la figura 772, Traslado de datos en la memoria Cédigo fuente ORG OBIOH ORIGEN QU. OAIFH sEmpezar en OB1CH ireccién de memoria ‘prigen ‘Direccién de memoria ‘destino DESTIN EQU 0C26H LDA ORIGEN ;Cargar el dato en el acumulador Almacenar el dato en a memor HLT ‘Parar Codigo objeto Direcclén STA DESTIN Instruccién B10 3A 1FOA 0B13 32 2600 La necesidad de realizar varias operaciones en secuencia para llevar a cabo una tarea se conoce comoel cuello de botellade Von Newman. Los datos deben fluir desde la memoria, siempre a través de la CPU, yregreserporeste mismo medioalamemoria. Nétese que estamos copiando el contenido de la posicién de memoria OAIFH (ORIGEN) en Ia posicién 0C26H (DESTIN) sin saber cual es dicho contenido. Es vital tener muy clara esta cuestién desde el principio. El byte irasladado puede ser cualquier miimero entre OOH y FFH. Es esencial tener siempre presente la distincién entre los datos y el lugar donde se encuentran almacenados. Otro importante detalle es la traduccién de las etiquetas de dos bytes. Observe que al definir la etiqueta ORIGEN en el cédigo fuente le asignamos el mimero hexadecimal OALF. Enel c6digo objeto, sin embargo, aparece listado como 1FOA, es decir, se invierte el orden de los bytes que definen la efiqueta. Esto se conoce como notaci6n lo-hi(apécope de low-high: bajo-alto),y es necesaria para que el microprocesador pueda “comprender” el cédigo que ejecuta. Este tipo de notacién o procedimiento puede variar segiin el fabricante de cada microprocesador. A final del programa se encuentra la instruccién HLT (Halt), que detiene el funcionamiento del microprocesador. Esta instruccién es necesaria para evitarque se tomen los bytes siguientes de la memoria donde se encuentra almacenado el programa como instrucciones ejecutables. E] programa anterior no afecta ninguna de las banderas (flags) del registro de estado del procesador (PSW en el 8085). Veamos ahora un tipo de ope- raci6n que modifica el estado de algunas banderas: Ja suma binaria, En las lecciones 27 y 28 tratamos el tema de la aritmética binaria, Alf nos dimos cuenta de un interesante etalle: elresultadode sumardosniimeros de N bits no siempre es otro niimero de N bits. Algunas veces es necesario un bit adicional. ‘Tomemos como ejemplo Ia siguiente suma: Hexadecimal Binario F& 11111000 +E6 11100110 1DE 711011110 EI resultado es un némero de nueve bits, aiin cuando ninguno de los sumandos supera los ocho. Si consideramos que el acumulador, que participaen la mayorfa de las operaciones aritméticas, sélo puede almacenar ntimeros de ocho bits, cabe preguntarnos donde va a parar el bit adicional. La respuesta esté en la bandera de acarreo. Cada vez que se presenta un desbordamientoen el bit mas significative como resultado de una operacién aritmética la bandera de acarreo (CY) se coloca en uno (set). Siel resultado es un ntimero de s6lo ocho bits, la bandera de acarreo se hace cero (reset). En otras palabras, CY se convierte en el noveno bit del acumulador. En la mayoria de los casos, cuando sumemos dos niimeros de un s6lo byte,no sabremospor adelantado cudles serén, por lo que tendremos que estar dispuestos a que el resultado supere a FFH (1111 1111 en binario). Esto supone reservar dos bytes de la RAM para contener el resultado de la suma. En el byte lo (byte bajo) se almacena el contenido final del acumulador y luego se almacena el flag de arrastre como byte hi (byte alto). No existe una instrucci6n exclusiva para almacenar la bandera de arrastre, pero las instrueciones ADC (Add with carry: suma con arrastre) fueron formuladas pensando en dicha operaci6n. ADC significa: “sumar el contenido del operando de la instruccién al contenido actual de la bandera de arrastre y afiadir luego ese resultado al contenido del registro acumulador”. ‘Todo ello significa que antes de iniciar la suma debemos corisiderar el estado de la bandera de arrastre ya que seré sumada al resultado de la suma propiamente dicha. Lamanerade evitarerrores debidosa a condicién inicial de la bandera de acarreo es, sencillamente, desactivarla antes de iniciar la suma. Para ello se puede utilizar lainstruccién ANI, que realiza un AND l6gico entre los ocho bits del acumulador y cada uno de sus homélogos en el operando de la instruccién, Todo lo que hemos dicho hasta ahora no es més que el primer método de la aritmética de un solo byte. En resumen, se deberd: 1. Limpiar el byte alto (hi) de la posicién, 2. Desactivar la bandera de arrastre. 3. Cargar el acumulador con un niimero, 4, Sumarle el segundo niimero. 5. Almacenarelcontenidodel acumuladorenel byte bajo (lo) de una posicién. 6. Cargar el acumulador con el contenido del byte alto. 7. Sumarle el valor inmediato OOH. 8, Almacenarel contenido del acumuladorenel byte alto, Aunqueel procedimientodescritocontiene cierto nivel de redundancia, nos ilustra acerca del cuidado que debe tenerse al escribir nuestros programas en ensamblador, ya que el estado de un simple bit puede determinar la validez de un resultado o la secuencia que hade seguirlaejecuciéndel programa, El listado completo del programa descrito se muestraen la figura 773. A modo de ejercicio puede tratar de ejecutarlo mentalmente. Para ello elija un par de ntimeros de ocho bits y asignelos a SUM1 y SUM2. Ejecute paso a paso cada instruccién, anotando cada vez el contenido del acumulador, del registro HL y de las posiciones de memoria’ HIBYTE y LOBYTE. Bifurcaciones, bucles y contadores Una bifurcacién es un cambio en la secuencia de ejecucién de un programa, normalmente determinado tras laevaluacién de unacondici6n. Toda bifurcacién se representa en los diagramas de flujo mediante un stmbolo de decisidn, elcual describimosen|aleccién 45 (ver figura 739, pag 492). ‘Tenemos una iteracién o bucle, cuando como resultado de una bifurcacién se repite la ejecucién de un determinado bloque de instrucciones. El nimero de repeticiones estd determinado por un contador (el cual es generalmente un registro interno de la CPU) que se actualiza en cada iteracién, Aprender a utilizar de manera adecuada las bifurcaciones, bucles y contadores es fundamental para todo aquel que se proponga programar eficientemente en lenguaje de maquina. Tamto los bucles como las bifurcaciones con- dicionadas hacen uso de las banderas del registro indicador de estado, Estas banderas, muestran los efectos en el acumulador (0 en otros registros) de la iiltima instruccién ejecutada. Todas ellas se pueden utilizaren latomadedecisiones, peroporelmomento necesitamos considerar s6lo dos de las mismas: las banderas de cero (Z) y de arrastre (CY). El estado de estas banderas se utiliza para decidir sielmicroprocesadorejecutala siguiente instruccién CEKIT- Curso préctico de circuitosdigitales y microprocesadores 524

También podría gustarte