Documentos de Académico
Documentos de Profesional
Documentos de Cultura
circuitos integrados y
CW<T
►SLUa
ELECTROniCR DI5ITRL
circuitos integrados y microprocesadores
Realizado y editado por El Curso prictko de ELECTRONICA DIGITAL* circuitos integrados y microprocesadores se publics cn
forma de 40 fasetculos de aparicidn semanal, enouademables en cinco volumenes,
k i t* Cada fascfculo consia de 20 pSginas y 4 de cubierus, 16 paginas esiin dedicadas al curso de ELECTRONICA
DIGITAL, eisrcuitos inregrados y mtcropf<x:esadore&quecomprendc561ecciones teSricasynumerosas actividadcs
pratticas con los pasos e instrucciones para ensamblar un comprobadorldgico de seis modules. Estas paginas son
Compama Editorial Electronica encuademables en los volumenes 1,2,3 y 4+
Las cuatra paginas centres de cada fascicule son encuadcmables por separado en d volumen 5 y esian dedtcadas
Gerente general y comercial a la descripcidn detallada de 26 prpyectos completes, Por esta razon, al encuadcmar los volumenes debe cu[d arse
de desprender previamente las cuatro paginas centrales de Lodes los fascicules y guardarlas hasta cuando sc
William Rojas H. completen* con cl fasciculo 4QT momento en el cud podra encuadcmar con ell as cl volumen 5,
Con el fasciculo que completa cada uno de los cinco volumenes que conforman esta obra, se pondran a la venta las
Director editorial tapas para su encuademacion. Los voltimenes sc conforman de la siguiente manera:
Felipe Gonzalez G. ■
CEKIT S.A. garantiza la publicacion de la totalidad de la obra y de las tapas necesanas para su encuademacion y
Di a grama cion electronica el setvicio de niimeros atrasados hasla un afio despues de terminada la circulation del ultimo fasciculo. Tambifin
la calldad de los componentes y el correcto funcionamiento de los proyecios.
Nubia Patricia Tamayo
Introduccion a los
com putad ores
Microprocesador tipico
JL i. JL , 1 . Jk J.
A V '■ A : '5 .!
jU ;j J ^
Fig. 703
Fig. 706
Evolution de los computadores digit ales. Breve 1. Un taller o procesador capaz de sumar, restar,
historia de los primeros aiios multiplicar y dividir.
Como se menciono al comienzo de esta lection, 2. Un almacen o unidad de memoria construida con
el microprocesadores un producto tanto de la tecno- ruedas dentadas decimal es numeradas y con una
logt'a LSI como de la tecnologia de los computado¬ capacidad de albergar 1000 numeros de 50 digi-
res digitales. Por tanto, para apreciar completamen- tos.
te los orfgenes y las posibilidades de los
microprocesadores, es instructive conocer la evolu¬ 3, Varios mecanismos de entrada y salida, incluyen-
tion de los computadores desde sus orfgenes hasta do una lectora de tarjetas perforadas, una perfo-
nuestros dfas. radora de tarjetas y una impresora.
A traves de la historia, el hombre ha inventado La secuencia de operaciones o programa que
dispositivos para ayudarse en sus calculos. Uno de debia efectuar el mecanismo se especificaban me-
458
diante una sene de tarjetas perforadas, cada una de mil tubos de vacio que descifraba los mensajes de la
las cuales definfa un numero o una operaeidn, Debi- ENIGMA y permitfa a los brit£nicos amiciparse a
do a las limitaciones tecnologicas de la epoca, la los acontecimientos. El COLOSSUS utilizaba el
maquina analftica de Babbage nunca fue perfeccio- algebra boleana y el sistema binario para realizar
nada. operaciones aritmeticas y una cinta de papel para
introducir informacion.
En 1890, en Estados Unidos, Herman Hollerith,
fundador de una empresa llamada Tabulating En 1941, Konrad Zuse en Alemania, herederode
Machine Company, disend y construyo un sistema las ideas de Babbage y quien desde 1934 habia
para tabular los datos de la poblacion durante el empezado a trabajar en computadores electronicos,
censo de ese aiio. La maquina de Hollerith funciona- presento el computador mecanico Z3, basado en
ba con tarjetas perforadas y utilizaba reles electro- relds, al que siguid el Z4, utilizado por los nazis
mecanicos. Implementaba unamanerade tabulacion durante la segunda guerra mundial. La mayor parte
mas eficaz que el despliegue habitual de ejes, engra- de las maquinas de Zuse fueron destruidas por el
najes y ruedas de las maquinas calculadoras anterio- ataque aliado a Berlin en 1944.
res pero no podia resolver ecuaciones.
Al mismo tiempo que Zuse construia su primer
La Tabulating Machine Company de Hollerith computador, Howard H. Haiken, de la Universidad
se convirti6 mas adelante (1924), bajo la direccion de Harvard en Estados Unidos, desarrollaba un
de Thomas Watson, en la IBM (International computador digital de uso general que comenzo a
Business Machines), actualmente unade las empre- funcionar en 1943 y fue construido en cooperacion
sas productoras de computadores mas poderosas del con la IBM. La maquina de Haiken se denomino la
mundo. La principal competidora de la IBM en sus Harvard Mark I, trabajaba con reles y era similar, en
comienzos fue la Sperry Rand pero pronto otras muchos aspectos, a la maquina analftica de Babbage.
companias comen zaron a fabric ar tambien calcula*
doras mecanicas. Posteriormente, durante la decada de los 40, se
desarrollaron otros computadores mas avanzados,
Durante los primeros anos del siglo, las calcula- basados en reles, como el Harvard Mark II, los
doras mecanicas se hicieron muy populares y su uso cuales fueron rapidamente superados por computa¬
se generalize en acerfas, almacenes, fabricas, ofici- dores electronicos, con tubos de vacio, mas rapidos
nas del gobierno, etc. Sin embargo, ninguna de estas y seguros.
maquinas servia para resolver ecuaciones complica-
das, por ejemplo las que describen la parabola que Histdricamente, el primer computador digital
traza en su vuelo un proyectil de artilleria. electrdnico, basado en tubos al vacio, parece ser uno
disenado por John V. Atanasoff y Clifford Berry de
Los primeros computadores digi tales operatives la Universidad de Iowa en Estados Unidos a finales
se construyeron durante los anos 30. En 1930, de los anos 30. Se trataba de una maquina relativa-
Vannevar Bush del MIT (Massachusetts Institute of mente pequena, de 300 tubos y capaz de resolver
Technology) enfrento el problema de calcular sistemas lineales de hasta 30 ecuaciones. Sin embar¬
ecuaciones construyendo un computador electro- go, el computador de Atanassoff-Berry no alcanzo
mecanico llamado el Analizador Diferencial. Du¬ mayor trascendencia.
rante la decada de los 30, las maquinas de Bush se
utilizaron principalmente en investigaciones balfs- El primer computador digital electrdnico amplia-
ticas y analisis de circuitos electricos. menteconocido fue el ENIAC (Electronic Numerical
Integrator an Calculator), disenado por J.W.
Sin embargo, los computadores modernos pro- Mauchly y J. P. Eckert Jr., de la Universidad de
piamente dichos surgieron del fragorde la segunda Pensylvania, terminado de construir en 1946 y uti¬
guerra mundial y como resultado de una serie de lizado en diversos calculos hasta 1955.
investigaciones secretas realizadas entre 1940 y
1945. En 1940, un grupo de cientificos encabezados El ENIAC utilizaba cerca de 18000 tubos al vacio
por Alan Turig, habia sido reclutado en Londres por y 1550 reles, pesaba 30 toneladas, consumia gran
William Stephenson de la inteligencia britanica con cantidad de potencia, podia sumar, restar, multipli-
ununicoobjetivo: veneer a la ENIGMA, unamaqui- car, dividir y extraer raices cuadradas y se progra-
na codificadora con la cual los nazis enviaban orde- maba manualmente actuando sobre varios miles de
nes en clave a sus comandantes. intemiptores y conectando y desconectando una
gran cantidad de cables. Como resultado, la tarea de
Como resultado del trabajo colectivo de este modificar un programa, o introducir uno nuevo, era
grupo, surgio el COLOSSUS, una maquina de dos lenta y tediosa.
CEKIT-Curso practice de circuitos digiiales y microprocesadores 459
Para solucionar este inconveniente, los mismos ciales a transistores. En 1959, por ejemplo, la IBM
disenadores del ENIAC y J. Von Neumann propu- introdujo el sistema 7090, un computador ideado
sieron en 1945 un nuevo diseno de computador para aplicaciones cientificas. Otros computadores
electronico llamado EDVAC (Electronic Discrete populares de la segunda generacion fueron ei
Variable Autonomic Computer), el cual utilizabael Burroughs B5000, el CDC 6600 y el PDP-8.
concepto de pro grama almacenado: en lugar de
manipul ar interruptores y cables al principio de cada En 1964, la misma IBM lanzo al mercado el
problema, las instrucciones y datos del programa se popular Sistema/360, la primera serie de computa¬
precableaban o almacenaban en la propia circuiteria dores de la tercera generacion (con circuitos inte¬
del computador, constituyendo una gran memoria. grados). Aunque el sistema 360 no introdujo cam-
bios sustanciales en el diseno de computadores,
Entre 1946 y 1952, Von Neumann y sus colegas tuvo, sin embargo, una profunda influencia en la
del IAS (Institute Advanced Studies) desarrollaron industria de computadores digitales.
el primer computador practico con programa alma¬
cenado y cuya arquitectura (figura 711) sirvi6 de De hecho, el sistema 360 hizo obsoletos todos los
prototipo para la mayorfa de computadores de la computadores anteriores, apesar de que no utilizaba
primer a generacion (fabricados con tubos) poste- circuitos integrados propiamente sino circuitos
riores. Incluso, mucho de los microcomputadores hibridos, en los cuales los transistores y demas
modernos obedecen a la misma organizacidn de la componentes estaban soldados sobre una base cera-
maquina IAS de Von Neumann. mica.
A finales de los anos 50 y comienzos de los 60, Ha jugado un papel muy importante en esta
varias compamas produefan computadores comer- historia el desarrollo de los llamados clones, com-
460
put adores compatibles con los PC, XT, AT, etc. de En el sector energetico se utilizan computadores
IBM pero fabricados por otras companfas. Los clones, para controlar el funcionamiento de centrales hidro-
mas economicos que los originales, han hecho posi- eldctricas, tdrmicas, nucleares, etc. y garantizar su
ble que muchas personas puedan tener acceso a esta seguridad. En el campo militar, los computadores
tecnologfa y todo lo que se mueve a su alrededor, dirigen misiles, se comunican con satelites y toman
incluyendo el cada vez mas sorprendente mercado decisiones, a veces fatales.
del software (programas).
Actualmente, no se concibe ningun campo de la
Aplicaciones de los microcomputadores investigation en el cual no participen los computa¬
dores. Estos ultimos intervienen en cualquier parte
Los microcomputadores representan uno de los del proceso de busqueda de soluciones a los proble-
logros mas importantes de la tecnologfa mas cientfficos, sociales, tecnologicos, humanfsticos,
microelectronica. A pesar de que el computador en etc. En nuestros di'as es imprescindible el uso de
su forma actual es relativamentej oven, es unode los computadores para la realizacion de tesis, trabajos,
productos electronicos de uso mas extendido. Ade- libros, ensayos, etc.
mas, son extremadamente adaptables.
Computadores de la quinta generacion
En la casa, por ejemplo, un computador personal
puede ser usado para simplificar las labores domes- La microelectronica y los computadores le han
ticas, entretener la familia, controlar automati- dado un nuevo significado a la definition de las
camente luces y aparatos, manejar el presupuesto, maquinas y las han dotado de capacidades nunca
etc. En el campo educativo, los computadores se antes imaginadas. Con el computador, el hombre ha
utilizan para ensenar disciplinas, desarrollar nuevas intentado crear una imagen de sf mismo y ha empe-
tecnicas pedagogicas, facilitar la adquisicibn de zado a considerar la posibilidad de desarrollar ma¬
habilidades, etc. quinas sensibles, dotadas de inteligencia.
En la oficina, se utilizan computadores para con¬ La busqueda de la maquina pensante tiene pro-
trolar inventarios, procesar textos, llevar contabili- fundas rafces en la historia de la humanidad, y hoy
dades, realizar tareas de archivo, nomina, etc. En las en dfaposee unadisciplinacientffica, un sello y unas
fabricas, los computadores pueden adaptarse para perspectivas propias. El proyectode los computado¬
controlar maquinas, robots, etc, y, en general, para res de la quinta generacion tiene por objeto despla-
automatizar procesos. zar los lfmites de lo que los computadores pueden
hacer y lograr que procesen conocimientos en lugar
Los computadores juegan tambien un papel im- de datos.
oortante en el campo del transporte. Un ejemplo son
.os simuladores de vuelo. Los computadores han Estos computadores, dotados de inteligencia ar¬
llegado tambien a la agricultura y la ganaden'a, los tificial (AI), tendrfan, entre otras, las capacidades
sectores primarios de la economfa. U n ejemplo son de aprender, asociarconceptos, deducir consecuen-
los sistemas automaticos de control de riego. cias, establecer juicios, man tener un ditflogo con
una persona ofreciendo respuestas a sus preguntas,
Los bancos y entidades financieras tambien uti¬ resolver problemas examinados en su conjunto,
lizan computadores conectados a redes de transmi- utilizar inteligentemente la information almacena-
sion de datos para almacenar las cuentas de los da en bases de datos, comprender significados, etc.
clientes y permitir que estos realicen transacciones
desde cualquier sucursal. Necesariamente, los computadores de la quinta
generacion tendran que ser construidos utilizando
Otra aplicacion importante de los computadores tecnologfa de integration a muy alta escala (VLSI).
son los bancos de datos que poseen diversos tipos de Se caracterizaran por su extrema velocidad (entre
entidades publicas y privadas a los cuales se puede cien millones y mil millones de operaciones de
acceder haciendo uso de la infraestructura de comu- deduccion por segundo) y su tamanos iran desde
nicaciones existente en cada pais. microcomputadores hasta supercomputadores.
En medicina, los computadores se utilizan para El computador pensante no existe aun y el opti-
llevar historias clinicas, examinar sfntomas, emitir mismo general de los investigadores de la inteligen-
diagnostics, tomardecisiones, evaluar electrocar- cia artificial contrasta con la de sus detractores,
diogramas, sefiales bioelectricas, ultrasonidos, etc. quienes defienden la naturaleza unica de la inteli¬
Los mismos hospitales utilizan computadores para gencia humana y la imposibilidad de reproducirla.
controlar su estructura organizativa. Llegaran los computadores a pensar como nosotros?
CEKIT- Cur so pr&cticode circuitos digitales y microprocesadores 45 ■(
Tecnologia
Aplicaciones modernas de los microprocesadores y los microcornputadorcs
Comercialmente se dispone de una gran varied ad El controlador lleva la secuencia de pasos del pro-
de ATE's adaptables a cualquier necesidad. Los ceso, controla el equipo de prueba, el sistema de
ATE in ere me nt an significativamente lavelocidadde conmutacion y la interface con el operador, lee los
prueba de equipos, practicamente no cometen erro- resultados de las mediciones, realiza los calculos
res y mejoran la productividad, liberando al usuario requeridos y envfa los resultados finales a una panta-
de tareas tediosas y repetitivas. 11a o a una impresora para su evaluation.
. ■ I-I-
j
{ Gerwradores 1 OscitosGQpio Otros equipos
f ! de digital de
w
.'••fV/A'W,1
k! senates <DSO) medida
■Iv!
tl :v:;
462
La red de commutation controla el flujo de senales • ATE's de pruehas juncionales. Suministran
entre la UUT y el resto del ATE. Por ejemplo, pue- senales a las entradas de la unidad bajo prueba y
de enrutar senales digitales desde la UUT hasta un chequean las respuestas. Pueden probar taijetas,
osciloscopio digital o llevar senales de RF desde un modulos e incluso sistemas completos.
sintetizador de free u end a hasta la UUT.
• ATE's de modelos. Verifican el sistema bajo
El equipo de prueba proporciona las senales para prueba sustituyendolo por un sistema de referenda
la unidad bajo prueba y realiza las mediciones de conocidamente bueno incorporado y realizan el che-
los parametros de esta ultima. La tnayona de ins- queo del sistema asf formado. Si este pasa la prue¬
trumentos de prueba modemos dotados de un bus ba, el sistema cuestionado se acepta como bueno
de interface (GPIB) son compatibles con ATE's: puesto que opera iguai al sistema de referencia.
analizadores logicos y de espectros, osciloscopios
digitales, generadores de RF, de audio, etc. • ATE’s de pruehas comparativas. Comparan una
unidad bajo prueba y una unidad de referencia
Instrumentos "inteligentes" tales como el oscilos¬ identica aplicando a ambas las mismas senales de en-
copio digital o DSO pueden realizar por si mismos trada y comparando las respuestas. Si las respues¬
tareas originalmente asignadas al contnolador, por tas de la UTT difieren de las de la version de re¬
ejemplo analizar formas de onda, y enviar los re- ferencia, ia primera esta defectuosa.
sultados al computador a traves del bus de inter¬
face cuando estos se requieran. • ATE's de pruehas de componentes. Chequean
desde circuitos integrados de muy alta escala
La interface del operador comunica el ATE con el (VLSI) y memorias hasta resistencias y condensa¬
mundo extemo. Puede ser, por ejemplo, un tecla- tions, Muy adecuados para prueba de dispositivos
do, una pantalla, una impresora, un arreglo de in- digitales, los cuales utilizan una gran cantidad de pa¬
terruptores, un computador huesped de una red, trones de prueba de alta velocidad.
etc. A traves de esta interface, el ATE recibe ins-
trucciones y entrega resultados. Ventajas y desventajas
El tipo de interface entre la UUT y el ATE depen- Un ATE proporciona un incremento significativo
de de lo que se este probando. Puede ser un cable, en la velocidad de prueba. Sin embargo, esta ultima
una consola de control acondicionada con tarjetas a- esta limitada por el numero y la complejidad de las
nalogas y digitales, puntos de prueba, conectores, tareas asignadas y por la calidad misma del equipo
bases de soporte de componentes, etc. de prueba utilizado.
En algunos ATE, las senales desde y hacia la Una vez programado, un ATE puede operar casi
UUT son manejadas por transductores e impulsa- perfectamente libre de errores, asumiendo, natu*
dores (drivers) y los patrones de prueba a si como ralmente, que no existen errores en la programa¬
las respuestas de la UUT son almacenados en me- cion (software) ni en la configuration ffsica (hard¬
morias temporales RAM. ware) del sistema. Cualquier error sutil de software
puede dejar pasar un producto defectuoso.
En un ATE es tan importante la programacion
(software) como la estructura ffsica (hardware) del La instalacion de un ATE es relativamente cos-
sistema. Puesto que el hardware es controlado por tosa. Sin embargo, teniendo en cuenta que trabaja a
computador, el usuario debe conocer el ATE, la uni¬ gran velocidad, comete muy pocos errores y re-
dad bajo prueba y los comandos y caracterfsticas quiere de operadores menos experimentados, es
del bus de interface. Cada ATE tiene su hardware y una inversion "costo vs eficiencia" productiva.
software propios y, algunas veces, el costo del soft¬
ware puede llegar a ser superior al del hardware. Lo anterior no significa que una organization no
requiera de tecnicos experimentados. Los necesita
Tipos de ATE's para reparar los equipos cuando el ATE no puede
encontrar una falla o para instalar el ATE mismo.
La mayona de ATE's modemos clasifican en uno
o mas de las siguientes categorfas: Aunque un tecnico puede resistirse al comienzo a
recibir ordenes de un computador, pronto encontra-
* ATE's de pruehas en circuito o ICT (In-Circuit ra que puede operar mas rapida y metodicamente en
Test). Chequean cortos, circa itos, continuidad y asuntos rutinarios.
componentes defectuosos en tarjetas de circuito im-
preso analogas y/o digitales. La tarjeta se posiciona Los computadores pueden fallar cuando los pro-
sobre una consola con numerosos puntos de prueba blemds encontrados no son tfpicos y requieren del
y se sostiene por medios neumaticos o manuales. razonamiento humano.
CEKFT- Cur so prdetko de circuitos digitales y microprocesadores 463
Leccion 42
Estructura de un
microcomputador
Cada bloque, a su vez, esta formado por varios Urudad tfe entada >}wtidsL Miaopioceesckin a CPU Urndad dememnjna
Unidad de salida
A su vez, la unidad de entrada y salida se divide
en un bloque de salida y un bloque de entrada. Del La mision de esta parte del circuito, es entre gar
mismo modo, la CPU se divide en una unidad de los resultados de la informacion binaria, yaprocesa-
control y una unidad aritmetico-ldgica (ALU), y la da por el computador, al mundo exterior.
CEKJT- Curso practice de circuitos digitales y microprocesadores 455
Esta informacion se Ileva desde la memoria o mas o lista de instrucciones) solamente puede ser
desde la unidad central de proceso (CPU) hacia leida y no es posible alterar su contenido por ningun
circuitos o aparatos llamados perifgricos que se metodo directo. En esta memoria se escribe el pro-
encuentran fuera del computador. grama monitor o de arranque del computador, lo
que permite que ejecute las acciones necesarias para
En los computadores para procesamiento de da- poder iniciar un trabajo.
tos, las unidades de salida mas usuales son las
impresoras, las pantallas o monitores de video, las Cuando encendemos un computador, se activan
unidades de disco flexible y de disco duro, los generalmente la pantalla y una unidad de disco
modems para comunicaciones por redes telefoni- (flexible o duro), permitiendo el montaje de una
cas, los plotters o graficadores, los parlantes, etc. parte del sistema operativo en la memoria RAM
para continuarcon la ejecucion de un programa.
En los computadores para control, las senales
digitales salen al mundo exterior a travds de una o * Memoria RAM o memoria de lectura y escritura.
varias unidades de salida. Entre las mis comunes En este tipo de memoria se puede almacenar infor¬
tenemos las tarjetas de interface que tienen reles, mation para ser utilizada posteriormente y, si es
transistores bipolares, MOSFET de potencia, SCRs, necesario, se puede alterar o cambiar en cualquier
triacs y otros dispositivos manejadores de potencia. momento. En la memoria RAM se almacenan los
programas y los datos que estos van originando. Su
Estos, a su vez, activan motores de corriente actividad es muy intensa, ya que recibe y entrega
continua o servomotores, motores paso a paso, millonesde bits (l’s y 0’s) por segundo a todoslos
actuadores mecanicos o hidraulicos, resistencias de bloques del computador.
calentamiento, electrovalvulas, solenoides y otros
tipos de elementos que realizan la operation final en El desarrollo de la tecnologia de los microcom-
una mttquina o aparato. putadores y de los computadores en general ha
estado estrechamente ligado con el desarrollo de las
Tambien se encuentran como unidades de salida memorias RAM. Cada vez se logra mayor capaci-
taijetas con convertidores D/A (digitales-analogicos) dad de almacenamiento en estos circuitos a un
que convierten las senales digitales del computador menor cos to.
en senales analogas equivalentespara ser utilizadas
en circuitos de este tipo. Estos convertidores se Las primeras memorias RAM de buena capaci-
estudiaron en la leccion 36 del curso y en una dad almacenaban 1 Kilobyte de information digital.
proxima leccion veremos c6mo se conectan a un Los primeros microcomputadores, con una capaci-
microcomputador de control. dad de memoria RAM de 8 Kilobytes, utilizaban 8
de estos circuitos. Actualmente, son comunes com¬
Unidad de memoria putadores personales y de escritorio con capacida-
des de 4 y 8 Megabytes de memoria RAM.
La funcion de la unidad de memoria consiste en
almacenar programas y datos y es una de las mis • Memoria de cache, Es una memoria RAM con
importantes en un computador. Se distinguen dos tiempo de «acceso» muy rapido donde se mantienen
sistemas diferentes de memoria: la de los datos mas utilizados durante la ejecucion de un
almacenamiento primario y la de almacenamiento programa. El objetivo de esta memoria, en la arqui-
secundario. La primera se denominan tambien tectura de un computador, es acelerar la velocidad
memoria principal y la segunda memoria auxiliar. de procesamiento de la informacion.
*Memoria ROM o memoria de lectura. La informa- Este sistema de almacenamiento, tambien Ilama-
cion pregrabada electronicamente en ella (progra- do memoria auxiliar, se utiliza para guardar grandes
466
cantidadesdedatos que no se requieren con frecuen- en la leccion 27 de este curso. La ejecucion de la
cia en la memoria principal durante la operacion del mayorfa de las operaciones de un computador se
computador. realiza en esta unidad.
Hay varios sistemas de almacenamiento secun- Por ejemplo, si se desea sumar dos numeros
dario: los discos magneticos,que pueden ser discos almacenados en dos posiciones de memoria, estos se
flexibles o blandos,tambi6n llamados floppies•, los deben traer a la unidad aritmetica donde se lleva a
discos duros, que permiten el almacenamiento de cabo la operacion. El resultado se almacena nueva-
grandes cantidades de datos (megabytes)-, los discos mente en una posicidn de memoria.
opticos,que se vislumbran como el reemplazo de los
discos duros,y las cintas magneticas. Las principales operaciones aritmeticas realiza-
das en la ALU son la suma, la resta y el complemen¬
Unidad central de procesamiento (CPU) to a dos. Las principales operaciones logicas son la
AND, la OR, la NOT, la OR, la EXOR y la compa-
En la terminologfa de computadores se denomina racion.
como CPU (Central Processing Unit) o unidad
central de procesamiento, a la unidad que reune la Tambien realiza esta unidad operaciones con los
unidad de control y la unidad aritmetico-idgica en registros intemos como desplazamiento, rotacidn y
un solo bloque. Esta ultima tambien se conoce como traslado de informacion digital.
ALU (Arithmetic Logic Unit),
De acuerdo al tamano de la memoria y segun la
En la practica, la unidad central o CPU se encuen- velocidad y capacidad de la CPU o microprocesa-
tra en forma de un circuito integrado ilamado micro- dor, los computadores se clasifican en supercom-
procesador, tema central de este curso y al cual le putadores, computadores, minicomputadores y mi-
dedicaremos nuestra mayor atencion. En las si- crocomputadores. Sin embargo, independientemente
guientes secciones conoceremos que hace eada uno de su tamano, todos ellos tienen la misma estructura
de los bloques de la CPU. basica y el mismo principio de funcionamiento
estudiados en esta leccion.
Unidad de control
El rapidfsimo avance de esta tecnologfa hace que
La unidad de control se encarga de la interpreta- un microcomputadorde hoy sea mucho mas podero-
cidn y ejecucion de las instrucciones del programa. so que un minicomputadordel ano anterior, dejando
Tambien controla todos los componentes de un un poco obsoleta esta clasificacion.
computador por medio de lineas de conexion llama-
das buses.
Buses
En el diagrama de la figura 714 podemos observar
Esta unidad es el elemento central de toda la que los diferentes bloques del si sterna se conectan
maquina y se encarga de enviar senales de coordina- entre si por medio de unas flechas gruesas y otras
cion a todas las demas unidades. Podriacompararse, delgadas. A estas lineas se les llama buses. Un bus es
en un momento dado, con el gerente de una empresa un conjunto de lineas que llevan o traen senales
o con el director de una orquesta. digitales de un circuito a otro.
Por ejemplo, una impresora escribira informa- Las lineas y el sentido de las flechas indican las
cion en el papel si especificamente se le instruye rutas existentes entre las seis unidades para el
para que lo haga. Esto se logra por medio de una intercambio mutuo de informacion. En los sistemas
"mst^ucc^6n,, como "imprima" o "escriba", que el con microprocesadores existen generalmente tres
computador debe ejecutar. El cumplimiento o eje¬ buses: direcciones, datos y control. Las estructura de
cucion de esta instruccion necesita un trafico de buses de los microcomputadores se analizaen detalle
senales binarias entre la impresora y el computador. en la proxima leccion.
La coordinacion de esta importante tarea la lleva a
cabo la unidad de control. Brevemente, la unidad de control utiliza el busde
direcciones para determinar, por decodificacion, la
Unidad aritmetico-logica (ALU) posicidn de memoria o el dispositivo de entrada y
salidaqueparticipaen una transferencia de informa¬
Esta unidad esta encargada de realizar las opera- cion en un momento dado. El numero de lineas del
ciones logic as y aritmeticas usando como base la bus de direcciones detemiina la capacidad de me¬
operacion de suma y la notacion del complemento moria del sistema y el numero de dispositivos de
de dos. Estos conceptos se explicaron ampliamente entrada/salida con los cuales puede comunicarse.
- Curso practice de circuilos dig dates y microprocesadores 457
Buses de un microcomputador
Unidad Unidad
Unidad
Memoria Memoria
de de
central
RAM ROM
entrada salida
de proceso
T7> <>!
Bus de direcciones
microprocesador
O1 Ol 1i o II X
CPU Bus de datos
Unavezquela unidad decontrol haseleccionado les al mismo tiempo, habrfa un conflicto de informa¬
el dispositivo con el cual quiere efectuar una trans- cion y el si sterna trabajaria erraticamente,
ferencia de informacion, utiliza el bus de datos para
transportar dicha informacion. Asi, por medio de Resumen
este bus, el microprocesador puede enviar o recibir
datos de la memoria y tambien enviar o recibir De acuerdo a lo estudiado anteriormente, la ope-
senales del mundo exterior a traves de las unidades raci6n de un computador digital puede resumir asf:
de entrada y salida.
* El computador acepta informacion (programas
El numero de lfneas del bus de datos determinalo y datos) por medio de la unidad de entrada y la
que se denomina el «ancho» de la palabra de trabajo trasfiere a la memoria.
de la unidad de procesamiento central o CPU. Son
tipicas longitudes de palabra de 4, 8, 16, 32, e * Bajo el mando de un programa o lista de
incluso, 64 bits. Los primeros computadores perso- instrucciones que ejecuta la unidad de control, la
nales utilizaban un bus de datos de 8 bits, luego informacion de la memoria se lleva a la unidad
salieron al mercado los equipos de 16 bits y aetual- aritmetico-logica para su procesamiento.
mente el bus mas utilizado es el de 32 bits.
* Una vez procesada la informacion, se entrega al
El bus de control transporta las senales que ne- mundo exterior a traves de la unidad de salida.
cesita la unidad de control para coordinar y sincro-
nizar el funcionamiento de todos los elementos del * Todas las actividades las coordina la unidad de
computador. Cada uno de estos elementos debe control.
intervenir solamente cuando le corresponda. De lo
contrario, el proceso de computo seria caotico. Ejemplo de aplicacion. Andlisis de utt control
automdtico de temperatura con microprocesador
El numero de tineas del bus de control varfa
segun el tipo de CPU o microprocesador que se Como un ejemplo de aplicacion de los conceptos
utilice. Observe que todas las unidades que consti- expuestos en esta Ieccion, vamos a describir breve-
tuyen el microcomputador comparten el mismo bus mente el principio general de funcionamiento de un
de datos. Esto es posible gracias al empleo de control automatico de temperatura con microproce¬
circuitos integrados de tecnologfa tri-state. sador del tipo on-off. El diagrama de bloques del
sistema se muestra en la figura 715.
Por el bus de datos solamente circula siempre la
informacidn correspondiente al bloqueo unidad que La temperatura deseada se ajusta en una perilla
haya sido seleccionado por el bus de direcciones. que tiene una escala marcada en grades centigrados.
Como es obvio, si dos unidades de un microcompu¬ Esta lectura se lleva a traves de una interface de
tador se seleccionaran para recibir o entregar sena- entrada y se almacena en una parte de la RAM.
468
Control automdtico de temperature con bus de datos y se enciende la resistencia. Si la
microprocesador temperatura esta mis alta de lo deseado, se deja la
resistencia sin funcionar enviando un bajo (0 logi¬
a) Diagrams de bloques co) por la misma linea para que la resistencia no
Sertw CJC
funcione. De esta manera, la temperatura se ira
i menace
lamperjlurj
fiermtsior,
InhH r ran *_■
defblrdOd df efilrsulQ ajustando hasta el valor marcado en la perilla.
(Hirnoc-L^iU. (ctmvfrriNMr i csnver bd-or
Concepto de bus
• Introduction
* 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
Introduction
Dispositive
de ©ntrada
( Bus de Busde
Unidad t
Memoria
Puertos de control Central de
control
(RAM y
1 entrada Proceso ROM)
Sal:da (CPU) |
Dispositive
de salida
Bus de direcciones
Fuente de
alimentacidn
I
Fig. 719
mzmmmmm
diver so s d i spo si ti vos, i nc 1 uye ndo la CPU, la memo- la estructura de buses de dos microprocesadores
ria (RAM y ROM) y los circuitos de interface para tfpicos: el 6800 y el 8085.
los dispositivos de entrada/salida (figura 719).
El bus del sistema 6800 esta disenado para trans¬
En un microcomputador, el control del bus del mits palabras de datos de 8 bits y comunicarse hasta
sistema es, principalmente, responsabilidad de la con 21S=65536 posiciones de memoria o de entrada/
CPU. Por tanto, la estructura de buses del mismo la salida distintas. Por esta razon, sus buses de datos y
determinan, basicamente, las lineas de datos, direc¬ de direcciones son de de 8 y 16 lineas, respectiva-
tion y control asociadas al microprocesador (CPU) mente. El bus del sistema 8085 esta disenado para el
utilizado. En la figura 720, por ejemplo, se muestra mismo proposito, Sin embargo, solo requiere de 16
lineas ( y no 24) para enviar datos y direcciones.
Cada microcomputador, dependiendo del micro- A continuacion, mediante una orden de lectura,
procesador (CPU) utilizado, tiende a tener su propio transfiere la informacion almacenada en esa posi¬
y especffico bus del sistema, el cual puede diferir del cion al bus dc datos. Enseguida, situa sobre el bus de
bus del sistema de otro microcomputador en el direcciones la direccidn de la segunda posicion y,
numero de Ifneas requeridas, el tipo de senates de mediante una senal de escritura, transfiere la infor-
control manejadas y otros factores. Esta circunstan- macion del bus de datos a la posicion de memoria
cia puede dificultar la comunicacion de microcom- direccionada.
CEKll Cut so practice de circuhos digitales y microprocesadores 473
Las direcciones se transmiten codificadas en lectura, los datos viajan en direccion de la CPU y
binario, es decir como patrones de 1 ’s y 0’s. Un bus durante un ciclo de escritura lo hacen en direccion
de direcciones de 16 Ifneas, por ejemplo, puede de la posicion de memoria o la unidad de salida
comunicarse hasta con 21S=65536 posiciones de seleccionada.
memoria distintas, que es una capacidad suficiente
para la mayoria de aplicaciones. Los componentes no implicados en la transfe¬
rencia de informacion, aunque estan ffsicamente
El contenidodel bus de direcciones lodetermina conectados al bus de datos, deben quedar aislados
siempre la unidad de control de la CPU. El tamano del mismo desde el punto de vista logico.
(numero de Ifneas) del bus de direcciones determina
la cantidad de posiciones de memoria o de entrada/ Bus de control
salida que puede seleccionar o direccionar la CPU,
En los microcomputadores modemos son tipicos Este bus lleva senales de control desde la CPU
buses de direccion de 8, 12, 16, 20 y mas Ifneas. hacia las otras partes del sistema, incluyendo infor¬
macion de temporizacion y sincronismo, ordenes de
Si la unidad de control utiliza, por ejemplo, un lectura y escritura para la memoria y los puertos de
bus de direcciones de 24 Ifneas, puede comunicarse entrada y salida, peticiones y reconocimientos de
o intercambiar informacion hasta con 16777216 interrupcion y de acceso al bus del sistema, etc.
posiciones de memoria.
El numero de Ifneas del bus de control y su
Bus de datos funcion especffica es muy variable de un sistema a
otro, dependiendo del microprocesador (CPU) uti-
Una vez que la unidad de control direcciona o lizado.
selecciona el dispositivo de entrada/salida o la
posicion de memoria con la cual quiere efectuar una Por ejemplo, para leer una posicion de memoria,
transferencia de informacion, necesita de otro con- la CPU envfa la direccion de la misma al bus de
junto de Ifneas para transportar de dicha informa- direcciones y una senal de lectura al bus de control.
cion. Este grupo de Ifneas es el bus de datos. Como resultado, la memoria envfa la informacion
presente en la posicion direccionada al bus de datos.
Por tan to, este bus es el encargado de transportar
la informacion de datos e instrucciones a traves del Entre las senales transportadas por el bus de
sistema microcomputador. Dependiendo del tipo de control figuran las siguientes:
operacion, los datos pueden proceder de o ir dirigi-
dos a la memoria, la CPU o los puertos de entrada/ Una senal de escritura (WRITE) por medio de la
salida. cual la CPU indica que est£ llevando informacion
hacia una posicion de memoria o hacia un disposi¬
Como se menciono anteriormente, en algunos tivo de salida.
sistemas las lineas de los buses de datos y direccio¬
nes estan multiplexadas. En estos casos, la CPU Una senal de lectura (READ) por medio de la
dispone de Ifneas de control especiales que indican cual la CPU indica que esta trayendo informacion
a la circuiterfa extemacuando lainformacion dispo- desde una unidad de memoria o desde un dispositivo
nible en el bus comun es un dato o una direccion. de entrada.
El numero de Ifneas del bus de datos determina lo Una serial de reloj (CLOCK) por medio de la cual
que se denomina el ancho o longitud de palabra de la CPU se sincroniza con todos los componentes del
la CPU. En sistemas microcomputadores son comu- computador. La frecuencia de esta senal, a su vez,
nes longitudes de palabra de 8,16, 32 e, incluso, 64 determina la velocidad de operacion del sistema.
bits. Los primeros computadores personales se cons-
truyeron con microprocesadores de 8 bits. Actual- Una serial de restauracion (RESET) por medio
mente, la mayoria utilizan microprocesadores de 16 de la cual la CPU seinicializaa sf misma y/o a todos
y 32 bits. La tendencia es hacia los microprocesadores los registros, contadores, etc., que participan del
de 64 bits. computador.
Puesto que cada posicion de memoria y cada Una serial de VMA (valid memory address) por
puerto de entrada/salida es potencialmente una fuente medio de la cual la CPU informa que ha situado en
o un destino de datos, el bus de datos debe ser el bus de direcciones una direccion valida, marcan-
bidirectional para permitir la transferencia de infor¬ do asf el inicio de una transferencia de datos desde
macion desde o hacia la CPU. Durante un ciclo de o hacia una posicion de memoria.
474
Leccion 44
Microprocesadores
E volution historico de los microprocesadores Entre las razones que tuvieron para su retiro, los
nuevos cientificos argumentaban la insistencia de
Dentrode los analesdela historiade la electronica Shockley en trabajar con germanio, mientras se
se tiene al ano de 1970 como la fecha de invention habfa demostrado que el silicio presentaba mejores
del microprocesador. Desde entonces, estediminuto caracterfsticas para la fabricacion de transistores.
dispositivo, uno de los adelantos tecnologicos mas
importantesdenuestro siglo, harevolucionado todos El microprocesador es el mfiximo expon ente de la
los campos de la actividad humana. etapa siguiente al transistor; la tecnologfa de los
circuitos integrados. El concepto de circuito
Con el microprocesador se initio una nueva era de integrado empezo a rondar por los cerebros y mentes
desarrollo de la industria de los computadores y de prodigiosas de quienes trabajaban en el diseno y
de la electronica, la cual hasta el presente ha ido fabricacidn de transistores. El planteamiento era
evolucionando a una velocidad que aun sorprende mas o rnenos el siguiente:
incluso a los visionarios mas futuristas. Nadie en
1970 se imaginaba el impacto tan grande que Si se fabricaban transistores en forma individual
causaria este invento en la vida del hombre moderno. y luego se tenfan que unir siempre de la misma
forma entre sf con alambres y con otros componentes
Los aparatos electronicos que utilizan micropro¬ como resistencias, condensadores y diodos, i,por
cesadores, entre ellos los computadores person ales que no fabricar de una vez todo el conjunto de
y de escritorio, han cambiado totalmente la forma de material semiconductor y aislante, interconectado
trabajar e in vestigar de los seres humanos. Ninguna intemamente para que cumpliera la misma funcion
herramienta anterior desarrollada por el hombre le del sistema total ?
476
Este planteamiento fue desarrollado en la practica Stanford. Todo empezo cuando Intel se decidio a
simultaneamente, pero en forma independiente, por firmar un contrato con una companfa japonesa
dos empresas muy importantes en la historia de la fabricante de calculadoras (la desaparecida Busicom
electronica: Fairchild Semiconductor y Texas Corporation). Esta querfa que se les fabricara un
Instruments. En Fairchild dirigiael equipode trabajo conjunto de circuitos integrados que reempiazaran
Robert Noyce, y en Texas Jack Kilby . la gran cantidad de componentes que tenfan las
calculadoras de ese entonces.
Los primeros circuitos integrados salieron al
mercado en el ano de 1959 y a un precio de 450 do- Despues de un largo trabajo se llego hasta lograr
lares. Solamente incluian cuatro transistores y varias que todo el circuito fuera reemplazado por tres
resistencias. Actualmente, un circuito integrado chips, pero estos resultaron ser de un tamano mayor
similar cuesta entre 10 y 20 centavos de dolar. de acuerdo a los requerimientos. A Hoff se le
ocurrio que se deberia agrupar toda la parte de
La explosion de los circuitos integrados desde el proceso aritmetico y Idgico en un solo circuito y el
ano 1960 hasta la fecha ha desarrollado la ciencia y resto de la calculadora en los otros dos circuitos.
especialmente la electronica, en una forma sor- Con la intervencion de otro disenador, Federico
prendente. Inicialmente estaban dedicados a fun- Faggin, el proyecto se llevo a cabo con todo 6xito.
ciones logicas sencillascomo compuertas,/7ip./7£>ps,
contadores y otras ya estudiados en este curso. A este circuito, de 2250 elementos integrados en
un area de 3 x 4 milfmetros, se le llamo microprocesa¬
Luego se trabajo en el campo analogo o lineal con dor. Tambien se le dio el nombre de CPU (Central
los amplificadores operacionales integrados, los Processing Unit) o MPU (Micro Processing Unit).
circuitos de audio o sonido, los temporizadores y
muchos otros circuitos. Aunque este circuito tem'a ya muchas de las
caracterfsticas de una unidad central de proceso
Sobre este invento existid una gran polemica en integrada, el primer microprocesador en un solo
cuanto a la patente. Esta tuvo que ser otorgada, chip, fabricado como tal, fue el 4004 de Intel,
inicialmente, de modo compartido y, despuds de 20 disehado para reemplazar grandes cantidades de
anos y haberse fabric ado miles de mi Hones de chips, circuitos integrados TTL. El 4004 era un chip muy
se le adjudico, finalmente, a la Texas Instruments. sencillo que manipulaba dato de cuatro bits.
Noyce renuncio a la Fairchild en 1968y fundo, en Intel desarrollo muy pronto, en 1972, el 8008, el
companfa de Gordon Moore y Andrew Grove y con cual podia procesar datos de 8 bits. Este fue otro de
el respaldo economico de Arthur Rock, la empresa los grandes acontecimientos en la historia de los
Intel en donde se dieron los primeros pasos para el microprocesadores y los microcomputadores. Sin
invento del microprocesador. embargo, el 8008 operaba con demasiada lentitud.
La companfa Intel empezo a vislumbrar un gran Para remediar esto, Intel desarrollo un sustituto,
mercado en el area de los computadores y su el 8080, y posteriormente el 8085, compatible con
investigacion se orienid hacia el reemplazo de los el primero, con funciones adicionales y menos
circuitos de memoria magneticos con micleo de chips de soporte. Durante este curso trabajaremos
ferrita por circuitos de memoria basados en con el microprocesador 8085 por su facilidad de
semiconductores. manejo y program acion.
La base tecnica consistio en el uso de un simple Ademas Intel fabrica una buena variedad de
flip-flop como elemento de memoria. A si se cred el circuitos de soporte para el 8085, necesarios para el
primer circuito de memoria tipo RAM llamado el montaje de un sistema completo de control,
1103 con una capacidad de 1024 bits.
Un equipo de disenadores que antes habfa
Con este tipo de circuitos se facilitaba la trabajado para Intel en el 8080 formo la Zilog Inc.
construccidn de computadores mucho mas pequenos y construyo el microprocesador Z80, el cual incor-
que los IBM 360 y otros mmieomputadores que ya poraba un set de instrucciones mas extenso que el
iban llegando en mayor numero a este reducido 8080, aunque era compatible con este ultimo. Este
mercado. microprocesador ha sido, y continua siendo, uno de
los mas utilizados en el campo de control.
El diseho del microprocesador se inicio en un
grupo de trabajo de Intel dirigido por Ted Hoff, un Por la misma epoca en que se lanzaba al mercado
brillante ingeniero egresado de la Universidad de el 8080, otra empresa de semiconductores. Motorola,
CEK1T- Curso practice de circuitos digiiales y microprocesadores 477
desarrollo el 6800, un microprocesador de 8 bits con Sin embargo, el futuro tal vez nos depare otro tipo
un diseno completamente distinto pero con iguales de arquitectura en la Unidad Central de Proceso. Se
caracteristicas. Motorola perfecciono el 6800 con el trata de los llamados «mi croproc es a d ores par al elos ».
6809, considerado como uno de los mejores proce- En este tipo de computadores no existe un unico
sadores de ocho bits de todas las epocas. microprocesadorcontrolandoei sistema, sinovarios
que comparten informacion y se distribuyen las
A pesar de sus excelentes caracteristicas, el 6809 tareas.
no cuvo el £xito comercial que se esperaba. Dicho
exito lo obtuvo otxo derivado del 6800: el 6502, Tambien se hace presente en el mundo tecnologico
producido por MOS Technology, otra empresa de actual un nuevo tipo de microprocesador llamado
semiconductores. Con este microprocesador se RISC (Reduced Instruction Set Computer:
fabricaron los primeros computadores personates computador con un conjunto reducido de
como el PET de Commodore y el Apple II de Apple instrucciones). Con estos microprocesadores se
Computer Inc. estan disenando computadores, impresoras y otros
equipos electronicos que trabajan mas rdpido que
A partir de este momento se establecio una guerra con los microprocesadores convencionales.
tecnica y comercial, que aun subsiste, entre Intel y
Motorola, la cual los ha llevadoa serlos dos grandes Vale la pena mencionar dentro del tema de control
h'deres indiscutibles del mercado de los micropro- la existencia en-el mercado de un tipo de
cesadores. microprocesador especial llamado Microcontrola-
dor, el cual contiene en su interior un microprocesa¬
Pero el desarrollo del microprocesador no se dor, una memoria RAM, una memoria ROM, varios
quedo en ocho (8) bits. A principios de la decada de puertos de entrada y salida y, en algunos modelos,
los 80’sempezaron a aparecerlosmicroprocesadores un convertidor analogo/digital (A/D). En otras
de dieciseis (16) bits, mucho mas potentes. palabras, todo un microcomputador en un solo chip.
El primero en salir al mercado fue el 8086 de Como en los microprocesadores comunes, Intel y
Intel, el cual fue adoptado por la IBM para la Motorola son los lideres en la fabricacion de
fabrication de su famoso IBM PC. Lo siguio de cer- microcontrol adores con sus familias 8048, 8051 y
ca el 68000 de Motorola que contiene registros 6805 respectivamente. Este tipo de circuitos facilita
internos de 32 bits, un bus de datos de 16 bits y un enormemente la tarea de diseno y fabricacion de
bus de direcciones de 24 bits. sistemasde control basadosen microprocesador. En
una proxima leccion ampliaremos este interesante e
Con este ultimo microprocesador se inicio en importante tema. *
Microprocesador generalizado
procesa y obtiene la maquina. En un momento dado,
los niveles logicos de las Ifneas de saiida de un Entradas
microprocesador dependen no solamente del pro- de control Bus de 1
Bus de direcciones
grama en si sino tambien de la historia de las sefiales
control
de entrada hasta ese momento.
Salidas
de control I
Mientras que en un microprocesador ideal no 1
X;
Fig. 727
Bus bidireccional
osout
DATACHJT
DATA IN
HOLOA
480
microprocesador de 4 bits con un bus de datos entrada/salida o un registro particular de la misma.
bidireccional. En la figura 728 (b) se muestra la El numero de lmeas disponible en el bus de direccio-
configuracion de una lineade bus bidireccional. Las nes (n) determina el tarnaho maximo de memoria
lmeas de seleccion SI y SO proceden del bus de que puede ser acomodado en el sistema (2").
control.
Asi, porejemplo, un microprocesador con un bus
La transferencia de datos de entrada o salida de datos de 8 bits y un bus de direcciones de 16 bits
desde o hacia el bus de datos se realiza, respectiva- (tipico) tal como el Z-80 puede manejardirectamen-
mente, con S1S0=10 y S1SO=01. La linea de bus te una memoria de 2ls=65536 (=64K) posiciones,
puede inhabilitarse con S1 S0=00 para impedir cual- cada una conteniendo un byte (palabra de 8 bits).
quier transferencia de informacion entre el bus de Naturalmente, una vez seleccionada unaposicion de
datos y el microprocesador. memoria, el microprocesador debe estar en capaci-
dad tanto de almacenar informacion en esa localiza¬
Las lmeas de seleccion pueden utilizarse para tion (operation de escritura) como de extraerla
informar a los modulos extemos que comparten el (operation de lectura).
bus de datos el estado del bus bidireccional en un
momento dado. Este es el proposito de las lineas La cantidad de memoria utilizada en un sistema
marcadas DBOUT (bus de datos en el modo de de microprocesador depende de la aplicacion espe-
salida), DB1N (bus de datos en el modo de entrada) cifica y es a menudo inferior a la maxima que puede
y HOLD A (bus de datos en estado de al ta impedancia) manejarel bus de direcciones. El conj unto comp leto
en la figura 728(b). de localizaciones de memoria a las que puede tener
acceso un microprocesador se denomina su espacio
La informacion contenida en el bus de datos de memoria.
puede representarse numericamente de varias for¬
mas: bin aria, octal y hexadecimal, principalmente. A sf, por ejemplo, el espacio de memoria de un
Considerese, porejemplo, un microprocesador de 8 microprocesador de 8 bits con un bus de direcciones
bits con el byte 10111011 en las h'neas D7 a DO de de 16 bits (por ejemplo, el 8080) es simplemente
su bus de datos, siendo D7 el bit mas significativo o 21S=64K y el de un microprocesador de 16 bits con
MSB y DO el bit menos significativo o LSB. un bus de direcciones de 20 bits (por ejemplo, el
8088) es 22°=1 M, siendo 1K=1024 y 1M =
Esta palabra de datos representada como un nu- 1024K= 1048576 palabras.
mero binario es simplemente 10111011B 6
10111011,, representada como un numero octal es En el caso del microprocesador de 8 bits con un
273Q 6 278s y como un numero hexadecimal (la mas bus de direcciones de 16 bits, el espacio de memoria
usual) es RBH 6 BB16. La forma de convertir nume- puede ser visualizado graficamentc como un mapa
ros binarios en octales o hexadecimales y viceversa de 65536 recintos o direcciones de memoria, cada
se explica en detalle en la leccion 27. Los sufijos B, una conteniendo un byte, la m£s baja de las cuales es
Q y H y los subindices 2,8 y 16 enfatizan el sistema 0000H y la mas alta FFFFH (figura 729-a).
numerico (binario, octal y hexadecimal) de cada
representacion.
ww
lam para ha de ser energizada para obtener un efecto
f
7000 f.
iii
de salida determinado. eooo
5000 /
4000 . i 040C'
i?
ooot aooo i K
1000 0100
oooo
El bus de direcciones contiene la informacion 0000 /
4 K 0WO i
(*)
digital que envia el microprocesador a la memoria y
demas elementos direccionables del sistema para Fig. 729
seleccionar una position de memoria, una unidad de
CEKTf- Curso practice de circuitos digkales y microprocesadores 4g-f
Note (figura 729-b) que la direccion de memoria El terminal RESET in {peticion de reset) se usa
se inerementa en 1000H cada 4K (=4096) recintos para inicializar el microprocesador. El terminal
de espacio de memoria. Observe tambien (figura RESET OUT (reconocimiento de reset) informa a la
729-c) que cada 1K (= 1024) recintos de memoria, la circuiterfa externa que el microprocesador se en-
direccion de memoria se inerementa en 400H, cuentra en estado de reset.
Los pulsos de reloj en el terminal CLK OUT En el primer caso se utiliza un 1 Iogico para
(salida de reloj) son usados por los modules exter- indicar la condicion de serial activa (por ejemplo
nos para sincronizar sus operaciones eon las opera - DBIN, HOLD, READY, etc.). En el otro caso se utiliza
cionesdel microprocesador. un 0 Iogico (por ejemplo DBIN, HOLD, READY, etc.).
482
Diagrama de bloques de un sistema basado en microprocesador
BUS DE CONTROL V SINCRONlZACION DEL SISTEMA
BUS DE DIRECCIONES
BUSDEDATOS
HACIA HACIA
OISPOSITIVOS OISPOSITIVOS
DE ENTRADA DE SALIDA
Fig. 731
Organization de un sistema basado en micropro¬ instruccion. Como resultado, la memoria situa esta
cesador informacion en el bus de datos
Concepto de programa.
Introduccion a la programacion
de microprocesadores
Fig, 733
486
instrucciones para el microprocesador (op-codes) y no del mismo llamado acumuiadort 1 dato que viene
datos sobre los cuales ha de operar el mismo. a continuation, es decir OC.
Cada codigo de operacion le indica, directa o Por tanto, como resultado de esta instruccion, el
indirectamente, al microprocesador la direction de acumulador se cargacon el dato OC (00001100, en
memoria donde se encuentra almacenada la siguien- binario). En la figura 735 se presentan otros ejem-
te instruction ejecutable. Al recibir un codigo de plos de instrucciones en lenguaje de maquina del
operacion, los circuitos internos del microprocesa¬ 8085 y su significado correspondiente.
dor lo descifran. La information obtenida le permite
al dispositivo identificar la naturaleza de los bytes En general, una instruccion de microprocesador
que siguen al op-code. especifica una operacion a realizar y un conjunto de
operandos o datos a procesar. En el caso de la
Consideremos, por ejemplo, la instruccidn 3E instruccidn 3E 0C anterior, la operacidn a realizar
OC, escrita en lenguajede maquinadel 8085. En este (3E) es una transferencia desde una position de
caso, el codigo de operacion (op-code) esel byte 3 E, memoria hasta un registro intemo del microproce¬
el cual, una vez decodificado, le informa al micro¬ sador. El operando objeto de esta transferencia es el
procesador que debe almacenar en un registro inter- dato 0C, almacenado en la posicidn de memoria
siguiente a la del codigo de operacion.
02 TrysVir el conttnido dai A a, a pflstridn da nemoriadetinda por losregistros By C El numero maximo de codigos de operacion que
puede descifrar un microprocesador es igual a 2N,
£0 Si/nar a raqtsrs B aJ registro A y atacsnar el rKutado en « regime A
siendo N el tamano de lapalabra de datos del mismo.
■so Fterar e ragiBTP 0 dal 'egistro A y *t acenar el en e rep sys A En la practica, el numero real de instrucciones suele
3C Increment (aunenarn 1J el regjsro A
ser ligeramente inferior a este valor. El 6800, por
ejemplo, es un microprocesador de 8 bits (N=8). Por
05 Dacrenenar fdisT p^fi 1^ el regisirD B tanto, puede responder, teoricamente, a 28=256 ins¬
A2 Realizar la operat fin AM3 delos rsg sros D y A y STacenar e resubco an A
trucciones. Sin embargo, tiene un set de solo 197
instrucciones.
BB) Corrparar el regiElro B an el reg Biro A
Por ejemplo, la seudo-instruccibn ORG 0000 le El cuarto campo corresponde a los comentarios.
informa al ensamblador que el programa comienza En esta area se escriben, entre otras cosas, notas
492
especiales que sirven de referenda no solamente al memoria. Mas adelante aprenderemos a elaborar
programador sino a cualquier persona que consulte pro gramas mas complejos en lenguaje ensamblador.
el programa en un futuro y explicaciones de lo que
hace cada instruccion o grupo de instrucciones des- Observe el formato de las instrucciones y ubique
de el punto de vista de la aplicacion. en ellas los diferentes campos (etiqueta, nemonico,
operandos y comentarios). Note que se utilizan las
Los comentarios comienzan, generalmente, con directivas de ensamblador ORG y EQU. Examine el
un asterisco (*) o un punto y coma (;) y no son codigo objeto y observe que hay instrucciones mas
ejecutables, es decir son ignorados por el programa largas que otras. Por ejemplo, la instruccion ADD B
ensamblador y, por tan to, no son convertidos a ocupa un byte, la instruccion MVI A,SUM 1 ocupa
codigos en lenguaje de maquina. dos bytes y la instruccion STA RESUL tres bytes.
En la figura 738 se muestra como ejemplo la En este curso utilizaremos la notacion en lengua¬
realizacion en lenguaje ensamblador (codigo fuen- je ensamblador por resultar mas clara desde el punto
te) del programa en lenguaje de maquina (codigo de vista del programador. Sin embargo, recuerde
objeto) desarrollado en una seccion anterior (ver que es la notacion en lenguaje de maquina la que
pagina 486). Este programa, en particular, suma dos comprende el microprocesador y la que debe utili-
numeros y almacena el resultado en una posicion de zarse para introducir programas en la memoria.
Instruc¬
Direc- Etiqueta OP-COOE Operando Comentarios
ciones, (Neman Ico)
ci6n datos
ORG OOOOH ; Empezar en OOOOH
T
® o
Instrucciones SUM 1: EQU 08 H ; Hacer SUM 1 = OSH
no I!
ejecutables SUM 2: EQU 07H ; Hacer SUM 2 = 07H £ 5
0
001 OH 3E
MVI A, SUM! ; Gargar A con primer dato
0011H 08
0012H 06
MVI B, SUM2 ; Cargar B con segundo dato
0013H 07
0015H 32
0G17H 00
iC--i
is
Fig. 73B
Organizacion interna de un
microprocesador
La unidad de instruction lleva la cuenta de las En la figura 741 se muestra un modelo generico
posiciones o direcciones de memoria donde se en- de microprocesador que ilustra los conceptos ante-
cuentran las instrucciones que el microprocesador riores, En la proxima section analizaremos como
necesita en cada instante. ejemplo la arquitectura del 6800, un microprocesa¬
dor de 8 bits representative. La arquitectura detalla-
Normalmente, las instrucciones se leen y se eje- da del microprocesador 8085 y otros temas relacio-
cutan en el mismo orden en que fueron almacenadas nados se discuten en las siguientes lecciones.
en la memoria. Sin embargo, la presenciade instruc¬
ciones de control de programa puede alterar la
secuencia de ejecucidn de estas instrucciones.
• Un registro indice (IX) de 16 bits cuyo contenido Ejemplo de ejecucion de una instruccion
se suma a la direccion de memoria originalmente
especificada por una instruccion para formar una Con el fin de realizar las operaciones especifica-
nueva direccion efectiva de memoria. das por una instruccion almacenadaen unadetermi-
nada posicion de memoria, un microprocesador
La finalidad de una direccion en una instruccion debe realizar las siguientes acciones:
es identificar el valor de un operando requerido para
ejecutar la misma. Las instrucciones que usan el 1. Construirladireccidn de la posicion de memoria
registro indice se denominan de direccionamiento donde se encuentra la instruccidn y situarla en el bus
indexado y se utilizan para procesar tablas o listas de direcciones. Esta funcion, como se menciono
ordenadas de datos. anteriormente, la realiza el contador de programa.
• Un registro de codigo de condici6n o CCR 2. Leer la instruccion por medio de una orden de
(condition code register), tambien llamado registro lectura enviada a traves del bus de control. En
de estado o de banderas (flags), que indica ciertas respuesta, la posicion de memoria direccionada
condiciones aritmeticas y logicas relativas a la eje¬ transmite el codigo de la instruccion al bus de datos.
cucion de cada instruccion, incluyendo acarreos, Esta informacion se almacena en el registro de
prestamos, interrupciones, resultados negatives o instrucciones.
nulos, sobreflujo, etc. En la figura 745 se ilustra la
configuration del CCR del 6800. 3. Inspeccionar o decodificar la instruccion para
detemninar en la ROM del microprograma la se¬
En la unidad aritmetico-logica (ALU) se realizan cuencia de microinstrucciones necesarias para ile-
todas las operaciones aritmeticas y logicas espetifi- varla acabo. Esta funcion la realiza el decodificador
cadas por el programa (suma, resta, comparacion. de instrucciones del microprocesador.
CEKTT - Curso practice de circuitos digitales y microprocesador es 499
4. Leer, si la instruccion asi lo exige, cualquierdato indica a la memoria que la direccion presente_en el
almacenado en una determinada posicion de memo- bus de direcciones es valida y la segunda (RAV = 1)
ria o traerlo desde un puerto de entrada. que el microprocesador esta realizando una opera¬
cion de leetura.
5. Ejecutar las operaciones especificadas por la
instruccion. Esta funcion la realizan la ALU, el Paso 2. Cuando01 pasade alto aba jo, seincremcnta
acumulador y demas registros asociados a la unidad el contador de programa. Sin embargo, esta condi-
de ejecucion, cion no afecta la direccion actualmente presente en
el bus de direcciones.
6. Almacenar, si la instruccion asi lo exige, los
resultadosen una determinada posicion dememoria Paso 3, Cuando 02 pasa de bajo a alto, el micropro¬
o llevarlos a un puerto de salida. cesador le indica a la posicion de memoria
direccionada que situe en el bus de datos el codigo
Todas estas acciones estan sincronizadas por la de operacion de la instruccion (86, en este caso).
senal de reloj del sistema y constituyen lo que se
denomina un ciclo de instruccion (ver leccion 45, Paso 4. Cuando 02 pasade alto a bajo, el micropro¬
paginas 488 y 489). cesador lee el codigo de operacion presente en el bus
de datos, lo transfiere al registro de instrucciones y
Consideremos, por ejemplo, el caso de ejecucion decodifica la instruccion.
de la instruccion «cargar el acumulador con 0F», la
cual, en el lenguaje del 6800, se especifica como 86 Despues de esta decodificacion, el microproce¬
OF. El primer byte (86) corresponde al codigo de sador entiende que durante el siguiente ciclo de
operacion y el segundo (OF) al operando o dato instruccion debe cargar el acumulador con un dato
sobre el que actua la instruccion. que se encuentra en la posicion inmediatamente
siguiente a ia que ocupaba el codigo de operacion.
La ejecucion de esta instruccion se ilustra en la
figura 746 y puede resumirse en tres fases: a) capta- Paso 5. Cuando 01 pasade bajo a alto, el contenido
cion del codigo de operacion; b) decodificacion de del contador de programa se transfiere al bus de
la instruccion y c) ejecucion de la instruccion. Guiese direcciones con el fin de direccionar la posicion de
por los nutneros encerrados en cfrculos para apre- memoria donde se encuentra el operando (OF, en
ciar la secuencia de pasos necesarios para progresar este caso)._Al mismo tiempo, las h'neas de control
a traves de estas tres etapas: VMA y RAV se hacen altas, como en el paso 1.
Paso 1. Cuando01 pasade bajo a alto, el contenido Paso 6. Cuando 01 pasa de alto a bajo, el PC se
del PC o contador del programa se transfiere al bus incrementa pero no se afecta la direccion previa-
de direcciones con el fin de direccionar la posicion mente situada en el bus de direcciones.
de memoria donde se encuentra el codigo de opera¬
cion de la instruccion (86). Paso 7. Cuando 02 pasade bajo a alto, el micropro¬
cesador le indica a la posicion de memoria
_A1 mismo tiempo, las lineas de control VMA y direccionada que situe en el bus de datos el operan¬
R/W se hacen altas. Laprimera serial (VMA = 1) le do, es decir el dato que debe ser cargado en el
acumulador.
Reloj 02
_v y ) realizar completamente la instruccion. Durante el
primer ciclo, el 6800 capta y decodifica el codigo de
operacion y durante el segundo ejecuta la instruc¬
primer ciclo- segundo ciclo-*
cion. Note tambien que 01 sincroniza los eventos
que suceden dentro del microprocesador y 02 los
que suceden en los dispositivos externos (la memo¬
Fig. 746
ria, en este caso).
500
Leccion 47
El microprocesador 8085
Las lfneas tri-state unidireccionales de salida A8 Especfficamente, ALE se hace alta cuando el
(pin 21) hasta A15 (pin 28) constituyen la parte alta microprocesador envfa traves de las lfneas ADO- AD7
del bus de direcciones. Transportan los 8 bits mas los 8 bits menos significativos de la palabra de
significativos de la direccion de memoria o de direccion. Esto sucede durante el primer ciclo de
entrada/salida involucrada en una transferencia de reloj de una instruction.
informacion desde o hacia el microprocesador.
La informacion respectiva (los 8 bits menos
Estas lfneas se pueden conectar directamente al significativos de la palabra de direccion) puede
bus de direcciones del sistema sin necesidad de almacenarse en un latch o registro extemo, como se
circuiterfa adicional. muestra en la figura 749. En este caso, la senal ALE
habilita el registro, permitiendo que el dato de las
Las lfneas tri-state ADO (pin 12) hasta AD7 (pin lfneas AD7-AD0 se transfiera a las salidas A7-A0.
19) constituyen el bus multiplexado de datos y
direcciones. Durante el segundo y tercer ciclos, la lfnea ALE
permanece inactiva, es decir en bajo, y por tanto el
Durante el primer ciclo de una instruction, estas latch ignora la informacion de datos (D0-D7) que
lfneas son unidireccionales y transportan los 8 bits circula por el bus cornun.
menos significativos (A0-A7) de la direccion de
memoria o de entrada/salida seleccionada. Durante Las salidas SO (pin 29), SI (pin 33) e IO/M (pin
el segundo y tercer ciclos, estas lfneas son bidi- 34) informan sobre el estado (status) de las opera-
CEKIT- Curso practice de circuitos digitally microprocesadores 503
indicar que el microprocesador esta preparado para
enviar o recibir datos.
Del mismo modo, S1 y SO informan sobre el tipo La senal HLDA se desactiva luego de haberse
de ciclo en progreso. Especfficamente, S1SO=00 removido la senal de HOLD. Medio ciclo despuds el
indica que el microprocesador se encuentra en esta- microprocesador retoma el control de los buses. Las
do halt, es decir detenido, S1S0=01 indica que estd . lineas HOLD y HLDA se utilizan, principalmente
realizando una operacion de lectura, SI S0=10 indi¬ en aplicaciones de DMA.
ca que esta realizando una operacion de escritura y
S1S0=11 indica que esta realizando la busqueda de La entrada INTR (InterruptRequest: petition de
un op-code o codigo de instruction. interruption, pin 10) se usa como lfnea de interrup¬
cion de proposito general. Puede ser enmascarada
La salida tri-state RD (read: lectura, pin 32), (ignorada) por software y posee la mas baja priori-
activa en bajo, indica que el microprocesador esta dad. En combination con la salida I.N TA (Interrupt
realizando una operacion de lectura desde la posi¬ Acknowledge: reconocimiento de interrupcion, pin
tion de memoria o el puerto de entrada selecciona- 11) y el bus de datos, puede atender varios dispo¬
do porel bus dedirecciones y que el bus de datos esta sitivos perifericos.
disponible para la transferencia de informacion.
La linea TRAP (pin 6) se utiliza como entrada
La salida tri-state WR (write: escritura, pin 31), para una senal de interrupcion llamada trap, la cual
activa en bajo, indica que el microprocesador esta obliga al microprocesador a parar la ejecucidn de su
escribiendo la informacion preseme en el bus de programa para atender los requerimientos del dispo¬
datos en la posicidn de memoria o el puerto de salida sitivo extemo que activa dicha senal.
seleccionado por el bus de direcciones.
Su prioridad es la mas alta y no puede ser enmas¬
La entrada READY (listo, pin 35) se utiliza para carada por el microprocesador. Esta lfnea se utiliza
comunicar el 8085 con dispositivos de entrada/ principalmente en situaciones de emergencia, por
salida o de memoria relativamente lentos, es decir ejemplo una fa!la en el sistema de alimentation.
con tiempos de acceso inferiores a los de trabajo del
microprocesador. Las h'neas RST 7.5 (pin 7), RST 6.5 (pin 8) y
RST 5.5 (pin 9) son las entradas de las llamadas
Normalmente, con dispositivos rapidos, la li'nea interrupciones enmascarables. Su funcion es iden-
READY se mantiene activa todo el tiempo para tica a la de la intemipcion TRAP pero, a diferencia
504
de esta, pueden ser enmascaradas por el software Las lfneas SOD (Serial Output Data: salida serie
que ejecuta la CPU. de datos, pin 4) y SID (Seriel Input Data: entrada
serie de datos, pin 5) se utilizan para transferir
Cada una de estas lfneas estan asociadas a un informacidn binaria desde y hacia dispositivos ex-
flip-flop habilitador de interrupciones intemo que se temos de comunicacion serie, por ejemplo teletipos,
puede inspeccionar y alterar utilizando instruccio- Estos terminales se controlan por software utilizan¬
nes especiales. El enmascaramiento se refiere a esta do dos instrucciones denominadas RIM y SIM.
circunstancia.
La instruccion RIM (Read Interrupt Mask: leer
Las cinco lfneas de interrupcion anteriores tienen mascara de interrupcion) se utiliza como una ins¬
una prioridad fija de atencion. Esto significa que si truction de entrada serie para transferir un bit desde
en un momento dado hay dos o mas de estas sen ales la lfnea de entrada SID hasta el bit 7 del registro
activas, solamente serd atendida la que tenga la mds acumulador interno. La instruccion SIM (Ser
alta prioridad. El orden de prioridad, de mayor a Interrupt Mask: establecer mascara de interrupcion)
menor, de estas lfneas es TRAP, RST 7.5, RST 6.5, transfiere el septimo bit del acumulador a la lfnea de
RST 5.5 e INTR. Cada uno de estos pines solo puede salida SOD.
ser utilizado por un dispositivo externo.
Caracteristicas electricas
Por cuestiones de diseno del 8085, las rutinas de
servicio de las cuatroprimeras interrupciones deben Es importante conocer las caracteristicas electri¬
comen zar, en su orden, en las posiciones de memo- cas de un microprocesador para garantizar que tra-
ria hexadecimales 24, 3C, 34 y 2C. La direction de baje dentro de lfmites seguros. En la figura 751 se
atencion de la interrupcion INTR se especifica por resumen algunos parametros electricos notables del
programa. El tema de las interrupciones sera tratado 8085 segun especificacionesde su fabricante (Intel).
en detalle en lecciones posteriores.
La exposition a condiciones maximas durante
La lfnea RESET IN (entrada de reset, pin 36), periodos prolongados puede afectar seriamente la
activa en bajo, inicializa el contador de programa en confiabilidad del dispositivo o causar danos irrever-
0’s y borra losflip-flops intemos de habilitacion de sibles en su estructura interna.
interrupciones y de reconocimiento de hold. Situa
tambi^n los buses de datos y direcciones y las lfneas
tri-state del microprocesador en estado de alta im-
pedancia. Ca racteristicas elbctricas de! 6Q65
Condiciones
Pa jA metro Minims ll&ximo Unidad
Esta situation se mantiene mientras la lfnea de Simbolo do pruebn
Registro da
Registro A Reg>stro Instrucdones REGISTRO B REGISTRO C
acumulador temporal Flip * Flop
da Banderas REGISTRO D REGISTRO E
%w.v,
El bus intern o de datos sirve como medio de dedireccionamiento seestudiaraen detalleen proxi-
comunicacion entre los diferentes bloques y esta mas lecciones.
eonectado por medio del acoplador o buffer tri-state
de datos y direcciones al bus extemo del mismo El mis importante registro de uso general es el
nombre. acumulador (A), un registro especial de 8 bits que
retiene una de las cantidades a ser operada por la
Conectados a este bus intemo se encuentran 6 ALU y recibe el resultado de una operacion realiza-
registros de proposito general designados como B, da por la misma. La information del acumulador
C, D, E, H y L, los cuales pueden operar individual- junto con la suministrada por los cinco flip-flops de
mente como registros de 8 bits o como registros banderas constituyen la llamada palabra de estado
pares de 16 bits. del procesador o PSW (Processor Satus Word).
En este ultimo caso, B y C conforman el registro Estos flip-flops se consideran como parte de un
BC, D y E el registro DE y H y L el registro HL. registro de 8 bits llamado registro de estado„ mos-
Existen instnicciones diferentes para manejar los trado en detalle en la figura 753. Despues de la
registros en forma individual o por parejas. ejecucion de cada instruction aritmetica o logica,
los flip-flops del registro de estado se cargan con un
El registro B, por ejemplo, puede utilizarse solo 0 (reset) o un 1 (set) para indicar condiciones pro-
para almacenar un byte de datos y acompanado del pias de la operacion realizada.
registro C para almacenar una palabra de datos o de
direccion de 16 bits. La funcidn de las banderas se puede resumir en
los siguientes terminos:
A diferencia del microprocesador 6800, el 8085
no posee registro fndice. Sin embargo, algunas de La bandera de acarreo (CY) se coloca en 1
sus funciones pueden ser llevadas a cabo por el cuando al realizar una suma se produce un acarreo
registro de 16 bits HL. Este registro se utiliza en (carry) de los dos bits mis significativos o cuando
numerosas instrucciones como una direccidn de en una resta se produce un prestamo (borrow) al
memoria impllcita. La utilizacion de dicho mdtodo efectuar !a diferencia de los dos bits de mis peso.
506
Registro de estados ral, encargado de recibir un dato desde el bus intemo
de datos y retenerlo para ser procesado por la ALU.
Este registro interviene en la ejecucion de mayor
BANDERAS (FLAGS) parte de las instrucciones aritmeticas y logicas asig-
nadas al microprocesador.
s z AC P CY
Existen varios registros de proposito especial en
el microprocesador 8085. De ellos, solo el apunta-
Bandera de acarreo dor de la pila o stack pointer y el contador de
Bandera de paridad
programa pueden ser accesados mediante instruc¬
Bandera auxillar de acarreo
ciones en lenguaje de mdquina. Los demas registros
Bandera de cero
no pueden ser utilizados directamente por el progra-
Bandera de signo
mador.
Fiq. 753 El apuntador de la pila es un registro de 16 bits
que se emplea usualmente para almacenar una di¬
La bandera indicadora de paridad (P) se coloca rection que da acceso a una region de la memoria
en 1 si el dato almacenado en el acumulador es de conocida como pila, definida por el programador.
paridad par, es decir tiene un numero par de 1 ’s, y en
0 si es de paridad impar, es decir tiene un numero En la pila, el microprocesador guarda temporal-
impar de 1 ’ s. mente los contenidos de todos sus registros cuando
debe trasferir el control del programa a una subrutina
La bandera auxiliar de acarreo (AC) se hace alta (ver lection 46, pagina 497). El manejo de la pila se
(1) para indicar que se produjo un acarreo desde el discutira en lecciones posteriores.
bit 3 del acumulador, de la misma manera que CY
indica un acarreo desde el bit 7. El contador de programa (PC) es un registro de
16 bits de proposito especial que indica la direction
El flag AC se conoce tambien como bandera donde se encuentra almacenada el proximo byte de
sehalizadora de arrastre BCD puesto que indica, en la instruction a ejecutar. El contador de programa
una operacion de adicion o sustraccion de cantida- se comunica con el exterior a traves del seguro de
des BCD, que debe hacerse un ajuste decimal con el direcciones, conectado a los acopladores de buses
fin de mantener el resultado en formato BCD. tal como se indica en la figura 752.
La bandera de cero (Z) se hace alta para indicar El seguro o latch de direcciones cumple dos
que la operacion previamente ejecutada es igual a funciones. En primer lugar, selecciona una direc¬
cero, es decir, el acumulador o el registro que guarda tion a ser enviada desde el puntero de la pila, el
el resultado ha quedado cargado con 0’s. Mientras contador de programa o cualquiera de los registros
esto no suceda, la bandera Z permanece en 0. pares de 16 bits BC, DE o HL.
La bandera de signo (S) es una copia del bit 7 del En segundo lugar, conserva esta direction hasta
acumulador, es decir adopta la condition del MSB que sea requerida por el bus de direcciones. Un
despues de la ejecucion de una instruction aritmdti- increme ntador/decrementador incorporado permite
ca o ldgica. Una bandera de signo alta (1) representa aumentar o reducir en 1 el contenido de cualquiera
un numero negativo, mientras que una bandera de de los registros de 16 bits.
signo baja (0) representa un numero positivo.
Otro registro importante del 8085 es el registro
Cualquiera de estas banderas puede ser usada de instrucciones, encargado de retener el codigo de
para informarle al microprocesador que salte o bi- operacion de la instruction a ejecutar con el fin de
furque el curso normal del programa a otro progra¬ que sea interpretado por el decodificador de instruc¬
ma o a otra parte del mismo. ciones y codificador de ciclos de mdquina. Una vez
interpretada la instruction, este ultimo circuito pro¬
Por ejemplo, si el resultado de una operacion es duce, a traves del bloque de control y tiempos, la
cero, la bandera Z puede utilizarse para que el secuencia de microinsrrucciones necesarias para su
control del programa se transfiera a una subrutina ejecucion.
encargada de generar un mensaje de error.
En otras palabras, el codigo de operacion alma¬
Ademas del acumulador y el registro de estado, cenado en el registro de instrucciones se convierte
otro circuito asociado a la ALU es el registro tempo¬ por medio de la circuiteria interna del microproce-
CEKTT- Curso practico de circuitos dig (tales y microprocesadores 507
sador en una sene de senales en el bus de control Aclarados estos t^rminos, mostraremos, me*
extemo y de operaciones intemas, formando el diante un ejemplo sencillo, la forma como el micro-
Uamado ciclo de instruction de la CPU. procesador 8085 busca y ejecuta sus instrucciones.
Por ejemplo, si despuds de capturar e interpretar Para tal fin, consideremos la instrucci6n «sumar
el cddigo de operacion de una instruccion esta le al acumulador el byte 88», la cual se especifica en
ordena al microprocesador una operacion de suma, lenguaje de maquina del 8085 como C6 88 y en
el decodificador reconocera que necesita buscar en ensamblador como ADI 88. El codigo de operacion
la memoria el dato que debe ser sumado al acumu- es, naturalmente, C6 y el operando es 88.
lador y dirigir^ la circuiteria de control para enviar
otro pul so de lectura, transferir el dato al bus de Para comprender cabalmente el proceso vamos a
datos y llevarlo al registro temporal. suponer que la instruccion se encuentra almacenada
a partir de la posicidn de memoria 2A00H. Esto
Una vez que se completa la suma, la circuiteria de implica que, al comenzar la ejecucion de la instruc-
control dirige el resultado al acumulador. A conti- cion, el contador del programa se encuentra sena-
nuacion incrementa el cont ador de programa y en vfa lando a la position 2A00H. De este modo, el listado
otro pulso de lectura con el fin de conseguir el en lenguaje de maquina de la instruccion serfa:
codigo de operacion de la proxima instruccidn del
programa. En la siguiente seccion describiremos Direction Contenido
mas en detalle la forma como el 8085 ejecuta una
instruccion. 2AOO C6
2A01 88
Ejemplo de ejecudon de una instruction con 8085
Para comprender cabalmente el proceso seguido Son dos los ciclos de mdquina (MC) requeridos
por el microprocesador 8085 para ejecutar una ins¬ por la instruccion ADI, tal como se muestra grafica-
truccion debemos aclarar primero el significado de mente en la figura 754. El proceso se puede resumir
algunos terminos. Inicialmente, es importante re- a grandes rasgos asf:
cordar que todas las operaciones de una CPU estan
coordinadas y sincronizadas por una senal maestra En el primer ciclo de maquina (MCI) se suceden
de reloj. la captacidn del codigo de operacion y la
decodificacipn de la instruccidn. Durante este ciclo,
En el 8085, la frecuencia de la senal de reloj es la senal IO/M se hace baja (0) para indiear que se
igual a la mitad de la frecuencia de oscilacidn del trata de una operacidn realizada en la memoria. Las
cristal colocado entre los terminales X1 y X2. senales SO y S1 se hacen altas, indicando en forma
Entre los mas utiles circuitos de soporte del 8085 PC3- 40 Vcc
se encuentra la interface programahle de perifiri- PC4- 2 39 PC2
cos (PPI) 8255. En la figura 755 se muestran la
TIMER IN- 3 38 PCI
distribucion de pines y la organization interna de
este chip, el cual contiene tres puertos programables RESET- 4 37 -PC0
de entrada/salida de ocho bits (A, B y C). PG5- 5 36 -PB7
TIMER OUT 6 35 -PB6
El 8255 permite la programacion independiente
K3/M- 7 34 “ PBS
de sus tres puertos para que actuen como entradas,
salidasoen forma bidirectional, Ademas, esposible CE- 8 33 -PB4
utilizar el puerto C como dos bloques de lineas de RD- 9 32 - PB3
control para la transmision asfncrona de datos por WR- 10 31 " PBS
los puertos A y B. En la figura 756 se muestran tres 8155
ALE- 11 30 - PB1
de los modosde operacion mas comunes del circuit©
de interface programahle 8255. ADO' 12 29 - PB0
ADI ■ 13 28 - PA7
AD2* 14 27 - PA6
Modos de operacibn del 8255 AD3‘ 15 26 -PAS
AD4- 16 25 -PA4
ADS- 17 24 -PA3
Di retd bn
Puerto B
CE
Circuits
program abl*
A los dispaslUvK
pan
d@ E/S ALE 8
Interface
Ala
CPU
8255
RD
*■
Comrol
If
0 Puerto C
Pen nones dtf intra
WR
int abruption INTRg *■
RESET
c) A y B como entradas asincrbnicas
Fig. 756
Reloj del ^
u Jk
Temporizador
Vcc ( +5V)
Estos y otros modos de operacion se consiguen
Salida def
niediante una palabra de control que se envia desde Vss (0 V)
Temporizador <■
la CPU al 8255 a traves del bus de datos. En futuras
lecciones aprenderemos las particularidades de los
modos de operacion y las palabras de control corces- Fig. 757
pondientes para cada uno de ellos.
510
Como vimos en una seccion anterior, es necesa- En la figura 757 se muestra el diagrama de
rio un biestable extemo para leer los bytes desde el bloques y la configuracion de pines del 8155. Los
bus multiplexado de datos y direcciones del 8085 puertos A, B y C son similares en su configuracion
(figura 749). Se han disenado varios circuitos de y funcionamiento a sus homologos en el 8255.
apoyo para el 8085 que incluyen intemamente el
biestable de direccion. Se pueden utilizer como tres puertos de entrada/
salida independientes o con las seis lineas del puerto
Un ejemplo de lo anterior es el circuito integrado C como senales de peticidn de interruption y de
de soporte 8155, el cual incorpora en una misma preparacion/conformidad para la transmision de
capsula tres puertos de entrada/salida en paralelo datos por los puertos Ay B.
(dos de 8 bits y uno de 6 bits), 256 bytes de memoria
RAM y un temporizador programable. El temporizador programable del 8155 es basica-
mente un contador direccionable de 14 bits que
Dado que el 8155 puede demultiplexar intema¬ cuenta hacia abajo en respuesta a los pulsos recibi-
mente sus buses de datos y direcciones, puede ser dos por la li'nea TIMER IN (pin 3). Genera varios
conectado directamente al bus de datos y direccio¬ tipos de senales por la ltnea TIMER OUT (pin 6)
nes del 8085. cuando el contador llega a algiin valor definido por
Puerto A
Puerto 0
Salkla sene
Entrada serie
Puerto C s
■° Tempo
J1: Conector de larjeta del prog ra made r OQU i ri2ai:lor
fjarpni S6 34
-* A4
el 8085 que nos permitir^ realizar los experimentos WR w ^
35
36 AG But
y ejercicios desarrollados y planteados a lo largo del
presente curso. Su construccion y fun cion amiento
ftFSH
26
■* A7
33 Aa
seran explicados ampliamente en los proyectos cen¬ HALT
IB 3D ■*> A9
40
trales. COr-r?nJ ■Jm A1P
El Z80, introducido por Zilog, compania subsi¬ Las lfneas del reloj se reducen a una y se agrega
diary de Exxon, en abril de 1976, es un microproce¬ una serial RFSH (Refresh), utilizada principalmente
sador de una sola pastilla que incluye esencialmente para el “refresco” de memorias dinamicas, las cua-
todas las prestaciones de hardware y software del les son mas baratas que las estaticas. La disponibi-
8080 con muchas adiciones significativas. lidad de la circuiteria de refresco dentro del chip
suple la necesidad de tener que utilizar un controlador
Entre los fundadores de Zilog y creadores del extemo para este fin.
Z80 se incluian antiguos empleados de Intel que
habfan participado en el disenodel 8080, entre el los Recuerde (ver leccion 32) que las memorias
Federico Faggini. El 8085 se puede considerarcomo dinamicas se refrescan direccionando cada fila una
una respuesta de Intel a la aparicion del Z80. vezcada 2 milisegundos, aproximadamente. Mien-
512
tras se realiza la decodificacion de una instruction, Estructura de registros del Z80
el contenido del registro de refresco intemo se
transfiere al bus de direcciones. Roasts* pnrvafMlM R*gi W« B Uk-I:ar4*
seleccionadas. D E (Z E"
H L H L’
indfc*
jy
de maquina 1), que se activa siempre que la CPU lee SP Pgnloro 4* Ffl pd*
un codigo de operacion. PC CtifiUcfcM d(rf (Mogjamn
Fig. 761
La lfnea HALT se utiliza para detener la opera¬
cion del microprocesador hasta recibir una petition
de interruption valida, Mientras tanto, la CPU eje- En terminos generates, el Z80 posee el doble de
cuta instnicciones de no operacion (NOP), mante- registros que el 8085. En la figura 761 se relacionan
niendo la actividad de refresco de memoria. los registros disponibles para el programador en el
microprocesador Z80. Los registros sombreados no
Las lineas BUSRQ (Bus Request: peticion de cstdn disponibles en el 8085.
bus) y BUSAK (Bus Acknowledge: reconocimiento
de bus) cumplen la misma funcion de las senates Los principales registros de proposito general
HOLD y HLDA del 8085, explicadas anteriormen- estdn duplicados mediante un conjunto auxiliar de
te. Igual sueede con la serial WAIT (esperar) del registrosdesignados A’, F’, B\ C\ D\ E\ H’ y L\
Z80, equivalente a READY en el 8085.
Las instrucciones del Z80 normalmente se refieren
a los registros principales (A, F, B, C, D, E, H y L).
En la figura 760 se muestra el diagrama de Sin embargo, utilizando ciertas instrucciones espe-
bloques de la CPU Z80. El dispositivo posee un bus ciales, se pueden intercambiar rapidamente los con-
de datos de 8 bits, un bus de direcciones de 16 bits tenidos de los registros principales y auxiliares.
y es mucho mas rico en registros que el 8080.
Tomando la idea del 6800, el Z80 tiene un par de
registros fndice IX e IY. El Z80 tambien contiene un
Arquitectura del Z80 registro nuevo de 8 bits, I, denominado registro de
direccion depdginade interrupc.ion y utilizado para
8 tit a* almacenar la mitad de orden superior del vector o
6 d-n
direccion dela rutinadeservicio dela interrupcidn.
Bus de
direcciones
> > > > > > -1
CD CD CD CD CD CD > > > > > > > > > > I
J_II _ i J _■ _
M___ I 1 Bus interno de direcciones |
-iv
>
Xr n
§ c
_ 3
fj$ p>
a
■\A o
I| —■
1
L 38
!■*! O
O 1-
q O*
1 C (O
^ o
5 30' O tx»
* q O.
If i
«_§ © *
e/i
B. 3 1
fV ™ :!
X Q. :■
3
o
o
3 D
"Cl o
o
CP a
CD
514
El Z80 puede interconectarse f&cilmente con de comienzo de la rutina de servicio de la interrap-
memorias RAM y ROM estandares para construir cidn.
sistemas de aplicacion. Para proveer comunicacion
con puertos de entrada/salida paralelos se utiliza un El 6502 no tiene capacidad de situar sus buses en
circuito de apoyo llamado Z80-PLO, el cual contie- estado de altaimpedancia. Cuando estacondicion se
ne dos puertos programables de 8 bits. Se pueden requiera, por ejemplo en una operacion de DMA,
tambien agregar puertos de entrada/salida seriales deben utilizarse buffers tri-state extemos. Sin em¬
utilizando un circuito conocido como Z80A-SIO. bargo, el 6502 puede insertar estados de espera, de
manera similar como se hace con el 8085.
Otros microprocesadores de 8 bits. El 6502
Cuando la entrada RDY (ready: listo) del 6502 se
Un poco despues de la aparicidn del MC6800 de hace baja durante un ciclo de lectura, la CPU entra
Motorola, la firma MOS Technology Inc. introdujo en un estado o ciclo de espera. Si esta en progreso un
la familia 6500, uno de cuyos miembros mas desta- ciclo de escritura, este es completado. El ciclo de
cados fue el microprocesador6502, conceptualmente lectura se entra antes de que el microprocesador
similar al 6800 pero incompatible con el mismo (lo ingrese al estado de espera. Se pueden insertar
que no sucede, por ejemplo, entre el Z80A y el cuantos ciclos de espera sean necesarios.
8085A). El 6502 es la CPU utilizada en el computa-
dor Apple II. Los estados de espera se utilizan principalmente
para incrementar el tiempo disponible para acceder
En la figura 762 se muestra la arquitectura del a memorias lentas y para correr programas paso a
6502. El dispositivo posee un registro acumulador paso, es decir instruccion por instruccion, Estudia-
(A), un registro apuntador de pila (S), dos registros remos en detalle esta ultima tdcnica en lecciones
indices (X e Y) y un registro de estado (P), todos de posteriores.
8 bits. El reloj intemo produce, a partir de una serial
externa de reloj TTL, dos senales de reloj (01 y 02) La figura 763 muestra el formato del registro de
similares a las requeridas por el 6800 (ver figura estado para el 6502. Las banderas de acarreo (C),
743, ptigina 495). cero (Z), sobreflujo (V) y signo (N) son identicas a
la del 6800. La bandera inhibidora de interrupciones
Una de las razones mas importantes de la popu- (I) puede ser puesta en 0 6 en 1 por software
laridad del 6502 es la simplicidad de sus senales de (instrucciones de programa) y se utiliza paraenmas-
control. Esto lo hace particularmente adecuado para carar o ignorar la interruption en la linea IRQ. Esto
el diseno de sistemas sencillos. La salida R/W, por sucede cuando 1=1.
ejemplo, indica si el microprocesador esta realizan-
do una operacionde lectura o escritura de memoria.
Las entradas RESET, IRQ y NMI operan igual a sus
similares del 6800 (ver pagina 496), Registro de estado del 6502
Si la linea RESET se mantiene baja por 8 o m&s
ciclos de reloj, el microprocesador va hasta las N V B D 1 Z
direcciones FFFC y FFFD para obtener la direccion
de comienzo de la rutina de inicializacidn del siste-
ma.
Otro circuito integrado periferico util de la fami¬ Pasos de ejecuclbn de ia instruccibn ADC
lia 6502 es el 6530, el cual contiene 1 K de ROM, 64
bytes de RAM, un temporizador de intervalos
programable y dos puertos de entrada/salida. Con el Ciclos Actlvidad def procesador
6502 se pueden tambien usar memorias RAM o
ROM estandar para construir un sistema. Ternninar instruccibn previa,
1 buscar codigo de operacion
Como sucede en el 6800, un ciclo de maquina
para e! 6502 equivale a un periodo de la serial de Interpretar codigo de operacion,
2
buscar dato
reloj 0! . El 6502 puede operar a free uenciasde reloj
hasta de 2 MHz, Esto proporciona un ciclo de 3 Traer dato
maquina de 500 ns. Sin embargo, tenga presente
que la velocidad de un microprocesador no se puede Agregar dato al acumulador, ;
4
juzgar solamente por la frecuencia del reloj. buscar el siguiente OP Code
Fig, 765 i
Lenguaje de maquina y
lenguaje ensamblador
* Introduction Durante las etapas de creation, escritura y
* Modelo de programacion del 8085 depuration de cualquier programa, se debe tener en
• Formato de instrucciones del 8085 cuenta un modelo del microprocesador enfocado a
• El acumulador y las banderas las partes entre las cuales se realiza el intercambio
• Bifurcations, bucles y contadores de datos. A esta representation del microprocesador
* Modalidades de direccionamiento se le llama modelo de programacion.
* El uso de la pila
• Utilization de subrutinas La transference de informacion es basica en la
programacion en lenguaje de maquina. En todo
Introduction computador, debe haber transference de informacion
entre el microprocesador, la memoria y los puertos
En el presente curso estamos empenados en que de entrada-salida, tal como lo indica la figura 766.
usteddominelosprincipiosy las tecnicas necesarias Tambien se transfiere informacion entre los diversos
para la eficiente utilization del microprocesador en registros internos del microprocesador.
el diseno de sistemas de control. Para ello es necesario
conocer a fondo tanto el hardware, o parte fisica de
los computadores, como el software , o programas
que hacen que dichos sistemas funcionen.
Cuando estudiabamos en la leccion 47 laes tructura El acumulador (A) participa en todas las ope-
del microprocesador 8085, nos interesaba princi- raciones aritmeticas, logicas y de entrada-salida, ast
palmente comprender su funcionamiento a nivel de como en la mayon'a de instrucciones de movimiento
su circuiterfa interna y la forma como se comunicaba con la memoria. El acumulador es, desde el punto de
risicamente con sus circuitos de soporte. En este vista del programador, el mas importante de todos
momento nuestro interes primordial es describir el los registros disponibles en el microprocesador.
microprocesador desde el punto de vista del
programador, sin ocuparnos demasiado de su Los registrosauxiliares B, C, D, E, Hy L pueden
equivalente fisico. usarse como acumuladores secundarios, contadores,
CEKFT- Curso prdcticode circuitos dig it ales y microprocesadores
Modelo de programacidn del 8085 S: Bandera de signo. Es una copia del bit siete del
acumulador. Representa el signo del numero
contenido en el acumulador, suponiendo que el
A Acumulador mismo se encuentra en notacion complemento a dos.
8 (8) c (8)
Formato de instrucciones del 8085
Registros
D (6) E (8) auxiliares
En los sistemas basados enel 8085, la memoria se
H (8) L (8} encuentra organizada en palabras o posiciones de
ocho bits (un byte) cada una. En la misma forma se
SP 06} Apuntador guardan los datos en los registros intemos del
de pila microprocesador. Hay, sin embargo, algunas pocas
PC 06} Gontador de instrucciones del 8085 que pueden trabajar con
programs datos u operandos de diecisdis bits usando los
1 0
registros intemos emparejados.
7 6 5 4 3 2
Palabra de
ws z AC P CY En la figura 768 se muestra un sencillo programa
Li — — —
estados
para obtener el complemento a dos de un numero (en
Fig, 767
este caso 40H) y guardarlo en la memoria, en la
position 3050H (recordemos que la letra H despues
registros indices o apuntadores de direccidn. En de un numero indica que esta escrito en formato
particular, la pareja HL se usa en muchas hexadecimal).
instrucciones como apuntador de direccion de
memoria (M).
a
se coloca en uno (1), de lo contrario se hace cero. 3000 06 MVI 8.01 H ;Lnleialiur si regiolna
3001 01
3002
B am pi) Hwtatadmftl
■v
n LXI pi psf da raQ^sUcs
Dato o
Diraccidn
3^rByt© 0 0 1 1 0
0 0 0]
Direccidn
1_
-
Fig. 771
Ademas sena necesario indicar simultaneamente Otro importante detalle es la traduction de las
a una memoria que escribiera el dato en el bus y a etiquetas de dos bytes. Observe que al definir la
otra que leyera dicho dato. El problema serfa aun etiqueta ORIGEN en el codigo fuente le asignamos
mayor si las dos posiciones de memoria se el numero hexadecimal 0A1F.
encontraran en un mis mo circuito integrado.
En el codigo objeto, sin embargo, aparece Iistado
La solution consiste en utilizar un almacena- como 1F0A, es decir, se invierte el orden de los
miento intermedio para el byte que deseamos bytes que definen la etiqueta. Esto se conoce como
trasladar. Este almacenamiento puede ser, por notacibn lo-hi (apocope de low-high: bajo-alto), y es
supuesto, el registro acumulador. El primer paso es necesaria para que el microprocesador pueda
entonces llevar el byte desde la primera posicion de “comprender” el codigo que ejecuta.
memoria hasta el acumulador y almacenarlo alii,
procesoconocidocomo cargarel acumulador (LDA: Este tipo de notacibn o procedimiento puede
Loading the Accumulator). variar segun el fabricante de cada microprocesador.
Luego se envfa el dato desde el acumulador a la Al final del programa se encuentra la instruction
posicion de memoria destino, operacion conocida HLT (Halt), que detiene el funcionamiento del
como almacenar el acumulador (STA: Store the microprocesador. Esta instruccion es necesaria para
Accumulator contents). El programa que realiza evitarque setomenlos bytes siguientes de la memoria
dichas operaciones se muestra en la figura 772. donde se encuentra almacenado el programa como
instrucciones ejecutables.
0B10 3A IF 0A
El resultado es un numero de nueve bits, aun
OBI 3 32 26 0C cuando ninguno de los sumandos supera los ocho. Si
Fig. 772
consideramos que el acumulador, que participaen la
mm h-m
520
mayorfa de las operaciones aritmeticas, s61o puede 5. Almacenar el contenido del acumulador en el byte
almacenar numeros de ocho bits, cabe preguntamos bajo (lo) de una posicidn,
donde va a parar el bit adicional. 6. Cargar el acumulador con el contenido del byte
alto.
La respuesta esta en la bandera de acarreo. Cada 7. Sumarle el valor inmediato 00H.
vez que se presenta un desbordamiento en el bit mis 8. Almacenar el contenido del acumulador en el byte
significative como resultado de una operacion alto.
aritmetica la bandera de acarreo (CY) se coloca en
uno (set). Aunque el procedimiento descrito contiene cierto
nivel de redundancia, nos ilustra acerca del cuidado
Si el resultado es un numero de solo ocho bits, la que debe tenerse al escribir nuestros programas en
bandera de acarreo se hace cero (reset). En otras ensamblador, ya que el estado de un simple bit
palabras, CY se convierte en el noveno bit del puede determinar la validez de un resultado o la
acumulador. secuencia que ha de seguir la ejecucion del pro grama.
En la mayorfa de los casos, cuando sumemos dos El listado completo del programa descrito se
numeros de un solo byte, no sabremospor adelantado muestra en la figura 773. A modo de ejercicio puede
cuales seran, por lo que tendremos que estar tratar de ejecutarlo mentalmente. Para ello elija un
dispuestos a que el resultado supere a FFH (1111 par de numeros de ocho bits y asfgnelos a SUM1 y
1111 en binario). SUM2,
Esto supone reservar dos bytes de la RAM para Ejecute paso a paso cada instruccidn, anotando
contener el resultado de la suma. En el byte lo (byte cada vez el contenido del acumulador, del registro
bajo) se almacena el contenido final del acumulador HL y de las posiciones de memoria HIBYTE y
y luego se almacena el flag de arrastre como byte hi LOBYTE.
(byte alto).
Bifurcaciones, bucles y contadores
No existe una instruccidn exclusiva para
almacenar la bandera de arrastre, pero las Una bifurcacidn es un cambio en la secuencia de
instrucciones ADC (Add with carry: suma con ejecucion de un programa, normalmente determinado
arrastre) fueron formuladas pensando en dicha tras la evaluacidn de unacondicion. Toda bifurcacidn
operacion. ADC significa: “sumar el contenido del se representa en los diagramas de flujo mediante un
operando de la instruccion al contenido actual de la slmbolo de decision, el cual describimos en la leccidn
bandera de arrastre y anadir luego ese resultado al 45 (ver figura 739, pig 492).
contenido del registro acumulador”.
Tenemos una iteracidn o bucle, cuando como
Todo ello significa que antes de iniciar la suma resultado de una bifurcacidn se repite la ejecucidn de
debemos considerar el estado de la bandera de un determinado bloque de instrucciones. El numero
arrastre ya que sera sumada al resultado de la suma de repeticiones esta determinado por un contador (el
propiamente dicha. cual es generalmente un registro intemo de la CPU)
que se actualiza en cada iteracidn.
Lamanera de evitar errores debidos a la condicidn
inicial de la bandera de acarreo es, sencillamente, Aprender a utilizar de manera adecuada las
desactivarla antes de iniciar la suma. bifurcaciones, bucles y contadores es fundamental
para todo aquel que se proponga programar
Para ello se puede utilizar la instruccion ANI, que eficientemente en lenguaje de maquina.
realiza un AND logico entre los ocho bits del
acumulador y cada uno de sus homdlogos en el Tanto los bucles como las bifurcaciones con-
operando de la instruccion. dicionadas hacen uso de las banderas del registro
indicador de estado. Estas banderas, muestran los
Todo lo que hemos dicho hasta ahora no es mis efectos en el acumulador (o en otros registros) de la
que el primer roetodo de la aritmetica de un solo ultima instruccidn ejecutada. Todas ellas se pueden
byte, En resumen, se debera: utilizarenlatomadedecisiones,peroporelmomento
necesitamos considerar sdlo dos de las mismas: las
1. Limpiar el byte alto (hi) de la posicion. banderas de cero (Z) y de arrastre (CY).
2. Desactivar la bandera de arrastre.
3. Cargar el acumulador con un numero. El estado de estas banderas se utiliza para decidir
4. Sumarle el segundo numero. si el microprocesadorejecutala siguiente instruccidn
CEKIT - Carso prdctico de circuitos digit ales y microprocesadores 52-f
Suma con arrastre La direction indicada por el registro se incrementa
en razdn del numero de bytes de la instruccidn, de
C6digo fuente
modo que el contador del programa senala entonces
ORG OOOOH jDireccion de inicio del el codigo de operation de la siguiente instruccidn . Si
;codigo objeto la que esta en curso hace que el contador sen ale a una
SUM1 EQU 0010H ;Direcciones donde se direccidn de algunotro lugar del programa, entonces
;aimacenan se genera efectivamente un sal to.
SUM2 EQU 0011H ; los numeros a sumar
LOBYTE EGU 0012H ;Byte bajo del resultado
Las instrucciones que efectuan el mencionado
HIBYTE EQU 0013H ;Byte aho del resultado
MVI A,00H ;Carga el acumulador
cambio de direccidn se denominan instrucciones de
;con el numero OOH bifurcacion, o simplemente saltos, porque representan
STA HIBYTE ;Limpiar el byte alto (hi) un puntode cambio en el flujode control delprograma.
;de la postcidn En el 8085 existen nueve saltos distintos, que seran
XRA A ;De$acttvar la bandera explicados en detalle en la lection 51.
;de arrastre
LDA SUM! ;Cargar el acumulador Para aclarar esta idea, consideremos la tarea de
;con un numero decidir cual de dos numeros es mayor y almacenarlo
LXI H.SUM2 ;EI registro H senala el
en una posicion especffica de la memoria. Un
;segundo numero
ADC M ;Sumar at acumulador el
diagrama de flujo del programa que realizaesta tarea
;ntimero sefialado por H se muestra en la figura 774a.
STA LOBYTE ;Almacenar el contenido
;del acumulador en el Los dos primerosrectangulos representan la carga
;byte bajo (lo) de los numeros en los registros A (acumulador) y L.
LDA HIBYTE ;Cargar e! acumulador Estas operaciones corresponden direetamente a las
;con el contenido del dos primeras instrucciones del programa (figura
;byte hi 774b).
AC! 00H ;Sumarle el valor
;inmediato OOH
STA HIBYTE ;A!macenar el contenido
El siguiente rectangulo (tercera instruccidn)
;del acumulador en el representa la operation de comparacion, en la cual
;byte hi se resta el contenido del registro L del contenido del
HLT iDetener la ejecucidn acumulador. Esta operacion no influye en dichos
del programa contenidos pero afecta direetamente el estado de las
Codigo objeto band eras (en este caso, la bandera de acarreo).
Diraccidn Instruccidn
0000 3E 00 La figura en forma de rombo es un simboio de
0002 32 1300 decision y corresponde a la cuarta instruccidn del
0005 AF programa. En ella se evalua el resultado de la
0006 3A 1000 comparacion anterior, esdecir, el estado del flagCY.
0009 21 1100
oooc 8E Si el contenido del acumulador es mayor o igual
000D 32 1200 que el contenido del registro L (CY = 0), el programa
0010 3A 1300 continua hacia abajo en el diagrama (y en el listado),
0013 CE 00
0015 32
se almacena en la memoria el contenido del
1300
0018 76
acumulador y se detiene el programa al llegar a la
Fig. 773
sexta linea.
el programa o si salta a alguna otra instruction del En caso contrario (CY = 1), el programa bifurca
mismo. La CPU decide si s altar o continuar, bien hacia la derecha en el diagrama (septima linea del
cambiandoobienaceptandoladireccionquecontiene programa), se almacena en memoria el contenido del
su contador de programa (PC). registro L (pasando a traves del acumulador) y se
detiene la ejecucidn al llegar a la ultima linea.
Este registro siempre contiene la direction de la
proxima instruction en lenguaje de maquina a Una tecnica similar se utiliza cuando se desea
obedecer. Cuando el microprocesador empieza a ejecutar procesos repetitivos, para lo cual se utiliza
ejecutar una instruction, carga en el registro de una estructura conocida como buck o iteracion, tal
instruccidn el codigo de operation (opcode) contenido es el caso del programa mostrado en la figura 77 5. El
en la direction de memoria indicada por el contador programa sencillamente efectua un conteo en forma
del programa. regresiva desde OFH (15 en decimal) hasta cero.
522
Programa para encontrar el mayor de dos numeros
(a). Diagrams de flujo (b), Listado del programa
Modalidades de direccionamiento
MVI A,0FH ;lnicializar contador
LABEL DCR A ;Decrementar contador
NOP ;No opera (proceso repetitive) | Toda instruccion en lenguaje ensamblador,
JNZ LABEL ;Salto condicional explfcita o implfcitamente, tiene que ver con los
HLT Fig, 775 1 contenidos de la memoria, y puesto que un byte s61o
mm:"- se puede distinguir de otro por su dtreccion, toda
CEKff - Curso practicode circuitos digit ales y microprocesador es 523
instrucci6n en lenguaje ensamblador debe relacio-
narse al menoscon una direccion. La forma como se
a hide a el 1 a se conoce como modalidad de
direccionamiento. En el microprocesador 8085
existen cinco modos de direccionamiento, a saber:
1. Imph'cito
2. De registro
3. inmediato
4. Directo
5. Indirecto de registro. (Ver leccion 51)
El usa dc hi pila
La mayorfa de las instrucciones inmediatas del
microprocesador 8085 utilizan al acumulador como El tratamiento de la menioria es la esencia de la
un operando implfcito. En la figura 777 se observa programacion en lenguaje de maquina y la mayorfa
una instruccion que utiliza direccionamiento de las instrucciones que hemos est udiado hasta ahora
inmediato: ADI, lacualsumaelvalordesuoperando estan relacionadas simplemente con cargar datos en
al contenido del acumulador. posiciones de la memoria o tornados de ella.
524
A estas posiciones hemos accedido de diversas Intercambiar los contenidos de dos posiciones I
maneras (lasmodalidades de direccionamiento),pero de memoria 1
hasta aquf todas las instrucciones que conocemos - |
han empleado siempre una direccion especi'fica como
*
Cddigo fuente * :!
parte del operando.
ORG OOOOH
MEMOl EQU 001 OH jPosiciones de memoria &
Existe una clase de instrucciones, sin embargo,
;cuyos contenidos se
que acceden a un area especffica de la memoria pero MEM02 EQU 0011H I han de inlercambiar
que no toman como operando direccion alguna. Son LDA MEMOl ;EI contenido de |j
instrucciones que operan sobre el area de memoria ;MEM01 es cargado en i
denominada pila (stack) y se las conoce como ;el acumulador
operaciones de pila. PUSH PSW ;Ef contenido del M
;acumulador es 1|
La pila o montdn esta creada para que tanto la ;"'empujado" en la pila |
LDA MEM02 ;EI contenido de |
CPU como el programador dispongan de un a memoria
;MEM02 se carga en el ||
temporal donde trabajar. Se trata de una especie de
;acumuiador
“cuaderno de apuntes” comodo para escribir y STA MEMOl ;EI contenido del
tambien facil de leer y borrar. ;acumulador $e 1
;almacena en MEMOl
Las instrucciones de manejo de la pila no exigen POP PSW ;EI ultimo item guardado J§
un operando con direccion ya que un registro especial ;en Ea pila “salta” al S
de la CPU, el llamado indice de la pila (SP: Stack ;acumulador |ii
Pointer) siempre contiene la direccion de laprimera STA MEM02 ;EI actual contenido del
posicion libre de la pila. ;acumulador (que antes |
;estaba en la pila y al
;principio en MEMOl)
Por tanto, todo cuanto se escribe en la pila es ;se guarda en MEM02 |
depositado automatic amen teen el byte senalado por HLT
dicho t'ndice, y los bytes que se sacan de la pila se
toman de la ultima posicion utilizada. Alejecutar una C6digo objeto *
operacion depila, su indice seajustaautomaticamente
como parte de la operacion. 0000 3A 10 00
■I'l'1
■ 'V 2 3 4 5 6
0003 F5
El indice de la pila del 8085 es un registro de dos 0004 3A 11 00 ■Ivl
0007 32 10 GO
bytes capaz de direccionar cualquier posicion entre
O00A FI
OOOOHy FFFFH, o sea, todo el espacio direccion able O00B 32 11 00
i
r;!v
por el propio 8085. Por consiguiente, la pila puede O00E 76 Fig. 779 |
estar situada en cualquier lugar de la RAM, y el
programador puede cambiarla de sitio si lo desea.Sin
embargo, esto no es muy aeonsejable.
Los seis pasos anteriores se ilustran en la figura
Un ejemplo del uso de la pila se tnuestra en la 780. En ella puede verse claramente el camino que
figura 779. Se trata de un sencillo programa que siguen los datos durante la ejecucion del programa y
intercambia el contenido de dos posiciones de lautilizacion delapilacomoareadealmacenamiento
memoria, MEMOl y MFM02. Para Lograr este intermedio.
cometido se sigue el proceso siguiente:
Este fragmento de programa nos muestra que las
1. El contenido de MEMOl es cargado en el operaciones de pila son ante todo recfprocas y
acumulador. secuenciales. El ultimo item empujado en ella, se
2. Elcontenidodelacumulador es“empujado”(push) recupera al primer salto que se ordene desde la pila.
dentro de la pila.
3. El contenido de MEM02secargaenel acumulador. Si ha habido varios “empujones” seguidos sin
4. El contenido del acumulador se almacena en ningun “salto”, los datos se escriben en sucesivas
MEMOl. posiciones de la pila, cada byte “encima” del anterior,
5. El ultimo item guardado en la pila “salta” (pops) y si se piden varios “saltos” consecutivos, estos van
otra vez dentro del acumulador. afectando a las sucesivas posiciones en orden
6. El actual contenido del acumulador (que antes descendente.
estaba en la pila y al principio en MEMOl) se
almacena en MEM02. La pila es una estructura LIFO (LastIn First Out),
o sea, el ultimo dato que entro es el primero en salir,
CEKff- Cur so practico de circuitos digitales y microprocesadores
525
El dato que ocupa en cualquier momento la parte
superior del monton sera el mas reciente, el del fondo
del monton el mas antiguo, y para sacar este ultimo
es necesario sacar primero todos los datos mas
recientemente empujados. Una vez se encuentra la instruccion de retorno, se
hace saltar nuevamente desde la pila hacia el contador
Convencionalmente, al primer byte libre de la pila del programa la direccion de la siguiente instruccion
se le denomina tope, ya que uno se imagina las pilas del programa principal, denominada direction de
creciendo hacia arriba. Aunque, de hecho, el fndice retorno.
de la pila disminuye a cada empujon, por lo que el
tope esta en re alidad en una posicion de memoria Ademds de guardar el contenido del PC cuando se
inferior a la base de la pila. llama a una subrutina, puede ser necesario guardar en
la pila otros registros de la CPU cuyos contenidos
Utilization de subrutinas son necesarios para el programa que efectiia la
llamada, ya que la subrutina puede hacer uso de tales
Una subrutinaes un mecanismo Msico que permite registros y destruir los datos contenidos en ell os.
al programador en lenguaje ensamblador tratar un
bloque de instrucciones del pro grama fuente como Para guardar cada par de registros en la pila, se
una instruccion de nivel mas alto. coloca una instruccion PUSH al principio del codigo
que define la subrutina. Posteriormente, serestauran
Las subrutinas se definen simplemente listando los registros a su contenido original mediante
las instrucciones que la componen, y se ensamblan instrucciones POP, inmediatamenteantes deretomar
como sifueran pequenos pro gramas, independientes al programa principal.
v autonomos.
■r
Punto de entrada £
*AI entrar en ia subrutina, se “empujan” los registros en 1
Guardar los registros de la CPU 1
* la pila
Leer los parametros de entrada i
RUTI PUSH PSW ;Salva ©I contenido del
Cuerpo principal de
;acumulador y las banderas s
3a subrutina
PUSH B ;Saiva el contenido de los ■V
;registro$ B y C
Escribir los parametros de salida , v!
PUSH D * ;Salva el contenido de los S
Hi
Registros de la CPU Cofocar los valores de los parametros en Leer registros de la CPU
registros d© la CPU
Programa principal Ninguna; los valores de los parametros se Leer datos del programa
en M listan como datos en el programa principal I■
principal
Fig. 783
mmmm.
CEKU Curse practice de circuitos digitaies y microprocesadores 527
Leccion 49
Los dispositivos que posibilitan estas operacio- En esta leccion estudiaremos los puertos de en¬
nes de entrada v salida se denominan puertos. Los trada y de salida desde un punto de vista general,
puertos son basicos en la estructura de cualquier haciendo especial enfasis en los conceptos basicos v
sistema basado en microprocesador. El proceso de en ladescripcion de algunos circuitos integrados de
unir un dispositivo de entrada/salida a un sistema gran escala (LSI) desarrollados especfficamente para
microprocesador se denomina interface. Las tecni- ser utilizados como elementos de interface en siste-
cas de interface y la programacion de las mismas se mascon microprocesador 8085. Esto ultimo obede-
estudian en detalle en las lecciones 53 y 54. ce a cuestiones didacticas.
529
debiles y convertirlas en senales de suficiente am-
plitud con el fin de que lleguen a su periferico de
destino sin perdidas.
\-y.
decodificacion previa.
Dispositivo
Puerto de salida periferico
Microprocesador
• Adaptar fisicamente el microcomputador a los A1S
01
requisitos del periferico. Esto incluye la utilizacion 02
de manejadores (drivers) de lfneas de transmision, P0'D7J 03
Q4
eliminadores de ruido, optoacopladores, converso- Q5
res de formato serie a paralelo, etc. Lfnea de ascritura
06
uti — —
•L Q
077-*iL
D Q
DQ-D7: Bus de dalos
-*■-
w microprocesador. Esta circunstancia favorable libe¬
-> ra al microprocesador de la ejecucion de ciertas
> CK
tareas rutinarias y de control, las cuales delega en el
dispositive de interface.
D Micro procasador
I
La caracterfstica anterior, denominada algunas
veces inieligencia distribuida, simplifica el pro gra¬
Lines de s$l@cd6fi
ma y hace posible funciones que no serian realiza-
bles si el microprocesador tuviera que hacerse cargo
< A14-AD]
utilizando circaitos integrados de alta escala (LSI) Las interfaces dedicadas se especializan en una
disenados pamcularmente para el manejo de entra- funcidn especifica, por ejemplo controlar interrup-
das y salidas. Entre las principales caracterfsticas de ciones, temporizar eventos, controlar perifericos,
estos circuitos especializados podemos mencionar etc. Un ejemplo es el circuito integrado 8259, un
las siguientes: controlador programable de interrupciones (PIC)
que describiretnos mas adelante, en esta misma
leccion.
■ ■i.V.U., V.-. ■ ■ ,
AQ
■
hi
Instrucddn de entrada ap
un byte de datos desde el acumulador hasta el puerto {LDA) Cireccion (cyle slgMicativa) f16}| ■
■
i
de perifdricos)
8253-5 Temporizador programable
8257-5 Controlador programable de DMA1
8259-5 Controlador programable
de interrupciones El 8212 proporciona un metodo sencillo de
implementar un puerto I/O por hardware. Otra for¬
tfi 8271 Controlador programable
£ w ma de crear puertos de entrada o de salida es utili-
c o de disco flexible
zando una interface periferica programabletal como
C AS 8275 Controlador programable de CRT
o ° el circuito integrado 8255A. Este chip, que sera
CL -n
E 0) 8279 Interface programable de descrito mas adelante, incorpora tres puertos de 8
o -o
o teciado y display bits que pueden ser program ados como entradas o
como salidas.
8155 256 bytes de RAM,
2 puertos I/O de 8 bits, Funcionesdelos pines. El 8212 constade R flip-flops
omponentes
1 temporizador de 14 bits
inversor de salida. En adicion, el dispositivo tiene
8355 2048 bytes de ROM, dos entradas de seleccion de dispositivo (DS1 y
2 puertos I/O de 8 bits DS2), una entrada de modo (MD), una entrada
o
8755 2048 bytes de EPROM, estroboscopica o de habilitacion (STB) y una entra¬
2 puertosl/O de 8 bits da de clear o borrado (CLR).
Fig. 795
La informacion situada en las entradas Dll hasta
DI8 se transfiere a los flip-flops internos cuando
DS1 =0 y DS2=1 y MD=locuandoMD=0 y STB=1.
Observe que las 8 Ifneas de salida de datos La informacion almacenada en los flip-flops se
(ODO-OD7) de la EPROM 2708 estan conectadas transfiere a las salidas DOl hasta DOS cuando
directamente al bus de datos del sistema y las 10 DS 1 =0 y DS2=J 6 cuando MD=1.
Ifneas de direccionamiento (A0-A9) a 10 de las 16
lineas del bus de direcciones. LaJfnea dejseleccion Recuerde que, para un flip-flop tipo D, la salida
(CS) esta coriectada alas Ifneas RD e 10/M del 8085 sigue a la entrada mientras la serial de habilitacion
a traves de una compuerta OR. este activa (STB=1, en este caso). Para ser utilizado
como buffer de datos, las lineas MD y DS 1 del 8212
Puerto de entrada 1 salida 8212 deben ser bajas (0 V) y las lineas STB, DS2 y CLR
deben ser altas (+5V). La funcion de cada uno de los
El 8212 es un registro de almacenamiento tri-state 24 pines puede resumirse en los siguientes termlnos:
de 8 bits con logica de control y seleccion que puede
utilizarse como puerto de entrada o de salida en Las lineas Dll (pin 3) hasta DI8 (pin 22) son las
sistemas basados en los microprocesadores 8080 y entradas de datos. Las entradas DS1 (pin 1) y DS2
8085. En la figura 797 se muestran la distribution (pin 13) son las Ifneas de seleccion o direcciona¬
de pines, el diagrama logico y las tablas de verdad de miento del dispositivo. El 8212 se selecciona para
este chip, el cual opera con una tension nominal de lectura haciendo DS1=0 y DS2=1. Bajo cualquier
5V aplicada entre los pines 24 (+Vcc) y 12 (GND). otra condition, las salidas adoptan el estado Hi-Z o
534
El circuito integrado 8212
1 • ^ 24
DSl Vcc
2 23
MD- INT
3 22
DI1 DI8
4 21
D01 DOS STB MD os"i DS2 DO CLH DSl DS2 STB ■ SR INT
5 20 0 0 1 0 H 0 ■1 0 0 t i
DI2- DI7 1 0 1 0 Hi-Z 0 D 1 0 1 0
6 19 0 1 1 0 Latch 1 0 1 0 0
D02- 8212 D07
1 1 1 1 0 1 0 1 0
7 18 0 Latch
DI3 DI6 0 0 0 1 Latch 1 1 0 0 1 1
8 17 1 D 0 1 Dl 1 0 1 1 0
D03- DOS
0 1 0 1 Dl
9 16 iLH : Fija am 0's el reglstto de datos
yen Vs el F-F RS. We atecia el
D14- DI5 1 1 0 1 Dl
buffer da salida
10 15 *: Flip-flop SR interne Hhz: Alta impedenela
D04- DOS
14 DO ■ D ate tte sa lida 01 Date de enliada
11
STB- CLR Latch: Roliene date previo
13
12 DS2
1
a. Distritmcion de pines c, Tabfa de funcipnamiento
b. Diagrama logico
0
TC-H»HHKC4e»HH«££Hd
c1
tr J O
tr
O: c> 0
ir~
de alta impedancia. Para escritura, el estado de las la informacion almacenada en el registro, la lfnea
entradas DS1 y DS2 no es de interes. MD debe hacerse alta.
La entrada MD (mode, pin 2) es la lfnea de modo La entrada CLR (clear, pin 14) es la lfnea de
de entrada/salida. Controls el estado del buffer de inicializacidn. Cuando recibe un bajo, borra todos
saliday determina la procedencia de la senal de reloj los flip-flops de datos, llevSndolos al estado de reset
que activa los flip-flops internos. Para habilitar el (Q=0). La salida INT (interrupt, pin 23), activa en
buffer, MD debe ser alta. bajo, actua como lfnea de peticion de interruption.
Se utiliza como entrada en los circuitos encargados
La entrada STB (strobe, pin 11) es una lfnea de de establecer el orden de prioridad de las interrup-
habilitacion. Se utiliza como senal de reloj de los ciones (controladores de interrupciones).
flip-flops de datos. Los datos se pueden escribir en
el 8212 haciendo MD=0 y activando la lfnea de Las lfneas DOl (pin 4) hasta D08 (pin 21) son las
control STB con un pulso positive* (activo alto), sin salida de datos. Cada una de estas lfneas es tri-state
importar el estado de las lfneas DS 1 y DS2. Para leer y puede manejar hasta 10 entradas TTL estan-
CEKIT- Curso prdcticode circuitos digitales y microprocesadores 535
dares. Finalmente, Vcc (pin 24) y GND (pin 12) son El 8212 como puerto de salida
las lfneas de alimentacion del dispositivo. El 8212 i
opera con una tension nominal de 5V y es compati¬ 1
ble con circuiterfa TTL.
mI
El 8212 como puerto de entrada. En la figura 798
m
se indica la forma de utilizarel 8212 como puerto de I
entrada en un sistema 8085. Para que el dispositivo i
externo de entrada pueda escribir un byte en el
registro, debe situarlo en las Hneas Dll hasta DI8 y l/neas de
salida 1
activar la entrada de control STB mediante un alto.
De este modo, el dato de entrada se transfiere a los
flip-flops internos. La lfnea MD debe ser baja-
•••y.
Vcc
i
El 8212 como puerto de entrada Vcc: pin £4
13 2
r
1
GND: pin 12 • ■ ■■'
+5V
6 1r i Ssj:]
AO Vcc- l/OW
Fig. 799
A mm s
Para que un microprocesador 8085 pueda leer Puerto de salida prgctico con 8212 I
i
esta informacion y transferirla a su bus de datos,
debe situar una direccion adecuada en el_bus de
direcciones del sistema y activar sus lfneas RD (pin
32, ver pagina 500) e IO/lVl (pin 34) para una
operacion de lectura desde un puerto de entrada.
Esto ultimo implica que RD debe ser baja e IO/M
debe ser alta.
536
practico de un puerto de salida con 8212 para Z80 al Circuito de soporte 8155
cual se le ha asignado la direccion FFH.
a. D3strlbuci6n de pines b. Diagram* de bloques *imprillcBdo
ce
figura 797, contiene un flip-flop R-S que activa en T.WEF1 OUT
HD.'M
bajo la serial INTcuando recibe una senal en la lfnea ACE- PORT
9
de control o validacion STB y las entradas de selec¬ FO
tion DS1 y DS2 son activas. pbq-7
TIMER DUT
.ere (mo
El circuito de soporte 8155 (HO-RAM) c. Estruclurd interna de registro*
„ .
Rue Inlernci fSrtddluS d# B Mi £
Puertos I/O con memoria para 8085. Puestoqueel
I §
8085 contiene todas las partes de una CPU funcional
asf como un puerto serie, todo lo que necesita para Cum tfvfc PC PB PA
|l HER
| ms-b
TWER
LSB
completar un sistema es una RAM, una ROM y Eii4*>
mrrfr ■ i in i.I 11.11 !
.4 :.-_i I
MUOO
iff
El 8155 puede demultiplexar internamenteel bus La capacidad de RAM del 8155 (256 bytes) es,
de datos y direcciones del 8085. Por esta razon, solo generalmente, mas que suficiente para sistemas pe-
se necesitan 8 lfneas, desde ADO hasta AD7, para queiios. En la mayorfa de los casos, esta memoria se
transmitir datos y direcciones. Las lfneas 10/M, RD utiliza para almacenamiento temporal de datos y
y WR se utilizan para control de memoria y las resultados asi como information de registros y di¬
lfneas ALE y RESET para control interno. Vcc y recciones.
CEKIT- Cur so pr&ctico de circuitos dlgitates y microprocesador es 537
8155. Direcciones internas de puertos y registros
-1-
V.
las seis lineas del puerto C como senales de peticion TW. TM1 IE B IE A PC2 PCI I PB PA j
■ ■:
00 m Alternative 1
11 - Alterfiailva 2
Estos puertos I/O, asi como los registros internos +■ Define PC0-5 01 « Alternaliva 3
10 ■ Alternative 4
del 8155, son accesibles externamente a traves de
las 8 lineas de mas bajo orden del bus de direcciones * Hab|!*f interruP=iifl ~| i . Habilitar
del puerto A I q m ,nhlblr
cuando CE es baja, RD o WR es baja e 10/M es Habilita interrupcion—>
del puert-o 3
alia. La figura 802 muestra las direcciones internas
de cada registro y de cada puerto en el 8155. Por Comando del
ejetnplo, para seleccionar el puerto B, A1 debe ser tempo rizador
alta (1) y A2 y AO deben ser bajas (0). r 00 = NOP. Vo afecta la operation del con tad or. i
Cl ■ STOP. Detiene la cuenia si el temporizador estA trabajando,
to * STOP- TC. Detiene inmediatamente el coniador despu^s de a’car-zar
la CUBnta actual programada.
Formato de la palabra de comando. Despues de 11- START. Si el tempodzador no estci trabajando, carga modo y tong it ud da
un reset, todas las lineas de los puertos del 8155 conleo y lo arranca lomediatameoie.
Si el tenporizador estatraba'ando. lo arranca ir.mediatamente
quedan automaticamente programadas como entra- tfespues de termlnar la cuenta prev;.a con ef nu&vo modo y la
rtueva longilud de conteo programada.
das. Para inicializar los puertos como salidas, debe
enviarse una palabra de comando al registro de Fig. 803
comando.
w
w
ALTERNATIVAS
M2 Ml T13 T12 Til T10 T9 T8 |
Pin 1 2 3 4
PC0 Entrada Salida A INTR A INTR
Modo del
PCI Entrada Salida A BF ABF MSB de la cuenta
temporizador
PC2 Entrada Salida A STB asTb
MVI A.01001101 ;define modo de ondacuadrada y los 6 bitsd& mayor orden de la cuenta
Observe que la direccion de base de los puertos y El MicroCekft I, ademds de la CPU 8085 y del
registros del 8155 es OOH. De este modo, la direc¬ circuito de soporte 8155, solo requiere de una uni-
cion del registro de estado es OOH, la del registro dad de programacion, construida con chips SSI y
inferior de temporizacion es 04H y la del registro MSI, por medio de la cual se cargan los programas
superior es OSH. que ejecuta el sistema. El 8085 y el 8155 conforman
la tarjeta procesadora del mismo (ver figura 758,
Cuando la direccion de base es diferente a OOH, pagina 511).
por ejempio 30H, las direcciones internas anteriores
deben sumarse a la direccion de base. Lo anterior La interface programable (PPI) 8255
implica que, con una direccion de base 30H, la
nueva direccion del registro de estados seria 30H, la Descripcion general. La interface programable de
del registro inferior seria 34H y la del registro perifericos (PPI) 8255 es uno de los circuitos de
superior seria 35H, soporte mas utiles y flexibles del 8085. En la figura
807 se muestran la distribucion de pines y laorgani-
Afortunadamente, en el microcomputador Micro¬ zacion interna de este chip, el cual con tiene tres
Cekft I que utilizaremos para nuestras prdcticas puertos paralelos programables de entrada/salida de
fiuuras, la direccion de base del 8155 es OOH y, por ocho bits denominados A, B y C, cada uno con
tanto, no se requiere haeer esta conversion. caracteristicas propias.
Como veremos mas ad el ante, el temporizadordel Observe que 24 de los 40 pines del 8255 son
8155 se puede usar conjuntamente con una entrada lfneas de entrada/salida. Especificamente, PA0-PA7
de interrupcion al microprocesador para sustituir corresponden al puerto A, PB0-PB7 al puerto B y
retardos de tiempo realizados por software, es decir PC0-PC7 al puerto C. Las 8 lfneas del puerto C se
mediante instrucciones de programa. dividen en dos grupos iguales, cada uno de 4 lfneas
(PC7-PC4 y PC3-PC0). Estos grupos de lfneas pue-
Si no se desea utilizar el temporizador, lo unico den trabajar en combinacion con las puertas A y B
que usted tiene que haeer es enviar una palabra de o como dos puertos individuales de 4 bits.
comando al registro de comandos para inicializar
los puertos de la manera deseada. El sentido (entrada, sal id a o bidireccional) y la
funcion (datos o control) de las lfneas de todos los
Sistema rmnimo con 8155. Dado que demultiplexa puertos se programan durante la operacion normal
mternamente los buses de datos y direcciones, el del dispositivo mediante una palabra de control de 8
8155 puede conectarse directamentea un micropro- bits que envfa el microprocesador al PPI.
cesador 8085 para formar un pequeno microcompu-
tador o sistema minimo. Internamente, ei 8255 dispone de cuatro regis¬
tros, tres de los cuales se dedican a almacenar la
En la siguiente leccion describiremos en detalle informacion que entra o sale por los puertos A, B y
el disehodel MicroCekft I, un sencillo microcompu- C. El cuarto se denomina registro de control y,
tadorde 8 bits con unacapacidaddememoriade 256 como su nombre io indica, se dedica a realizar las
bytes desarrollado de acuerdo a esta filosofia. funciones de control. Programando este registro se
540
Interface programable (PPI) 8255
• I/O
1 40 PA7-PA0
PA3 PA4
2 39
PA2 PAS*
3 38
PA1 PAG
4 37
RAO PA7
5 33
RD ■WR
6 35
CS Reset
GND
7 34 I/O
DO PC7-PC4
8 33
A1 D1
9 32
AO D2
10 31
PC7 D3
11 3255 A 30
PCS D4
12 29
PC5 D5
13 28
PC4 DG VO
14 27 PC3-PGO
PCD D7
IS 26
PCI Vcc
16 25
PC2 PB7
17, 24
PC3 PB6
18 23
PBO PB5
19 22
P01 'PB4
2D 21 I/O
PB2 P83 PB7-PB0
Fig. 807
configuran los puertos y se define el funcionamiento el microprocesador cuando CS=0 y se aisla cuando
general del dispositivo. C5=l.
Funciones de los pines. Ademas de las 24 lrneas de RESET (pin 35). Activa en alto. Iniciaiiza el PPI y
entrada/salida asociadas a los puertos A, B y C, la borra (situa en 0’s) todos los registros intemos,
funcion de las lrneas restantes del PPI 8255 se puede
resumir en los siguientes terminos:
i
■ ■
Fig. 809
HO
registro de control. Este registro solamente puede
AO
Wfl
ser escrito, es decir no es posible leer su contenido
cs
Al
desde el microprocesador.
Mode 0
But do dalo& Puerto A del puerto C, como se ilustra en la figura 813.
(but I KOCH aJ)
Mole 2
S
En la figura 814(a) se indica la forma de progra-
mar el registro de control del PPI 8255 para conse-
Bedsit o Se conffol
|:!i
1 1 guir que los puertos A y B trabajen como entradas y
I1 Ml las Ifneas PC6 y PC7 actuen como Ifneas de salida
Eit.ida do
L
No imports
X .> PCO - PC J como aslldoa
^——■—
(pu&dd ssr 1 0 0}
—» “jerl? P iom a la
_Puetto A en
* Plot to B an moce 0
Fig. 811
Tirrrwrrrrrnrrrw
La rata de baudios no es lo mismo que el numero La entrada de envio (DS, pin 23) le indica al
de caracteres o palabras transmitidas por segundo. UART cuando comenzar a enviar el siguiente carac¬
Ratas de baudios cornunes en sistemas de transmi- ter serie. La salida DAV (pin 19) informa al sistema
sionde datos son 75,110,150,300,600,1200,2400, receptor que el dato en las salidas paralelo es valido.
4800,9600 y 19200 bps. Estas senales las suminis- Una vez capturado este dato, el receptor envia una
tran chips especializados como el MCI4411. senal de reconocimiento al pin 18 (RDAV). De este
modo, el UART queda preparado para enviar el
Una rata de 110 bps, porejemplo, en el caso de la siguiente caracter de datos.
figura 817, implica que el sistema transmite a una
rata de 10 caracteres por segundo, puesto que cada El AY-5-1013 trabaja bien en sistemas dedica-
cardcter consta de 11 bits. Del mismo modo, una dos donde los parametros de transmision y recep-
rata-de baudios de 300 bps implica que el tiempo de cion son siempre los mismos. Sin embargo, en
bit es igual a 1/300 segundos, es decir 3.33 ms. sistemas microcomputadores de proposito general
seprefiere utilizar UARTsprogramables (USARTs),
Los teletipos frecuentemente envfan y red ben como el 8251A, debido a su flexibilidad para aco-
datos en serie a una rata de baudios de 300 bps o modarse a diferentes parametros.
inferior. Un 1 6 marca corresponde a una corriente
nominal de 20 6 60 mA y un 0 6 espacio a una El US ART 8251 A. El 8251A es un US ART progra-
corriente de 0 mA (ausencia de corriente). mable que puede recibir o transmitir datos en casi
cualquier formato serie. En la figura 819 se mues-
Generalmente, para enviar datos, un teletipo re- tran la distribution de pines y el diagrama de blo-
presenta cada bit como un interruptor abierto o ques de este chip y se resume la funcion de cada uno
cerrado. Para interfazar un teletipo a un microproce- de sus terminales. El 8251 viene en presentacion
sador 8085 se utilizan las lfneas SID (pin 5) y SOD DIP de 28 pines y opera a +5V.
(pin 4) de este ultimo. Cuando se utilizan lfneas
separadas para enviar y recibir datos, se dice que el En el 8251 pueden distinguirse los siguientes
sistema esta trabajando en el modo full-duplex. bloques importantes: control de receptor, registro de
corrimiento de receptor, control de transmisor, re¬
El UART AY-5-1013. Un ejeraplo de UART es el gistro buffer de transmisor, registro de bus de datos,
circuito integrado AY-5-1013 de General Instru¬ control de lectura/escritura, y control de modem.
ments (figura 818). Este dispositivo puede enviar o
recibir datos a unarata hastade 30000 baudios o bps, El control de datos y la information de estados se
opera a 5 V y requiere de una senal de reloj de comunican al microprocesador a traves del bus de
546
Interface de comunicaciones (UART) AY-5-1013
Entrada sene de dates
(receptor)
Reset 21 20
XR si ■TjTiabililiiador de reeepcion de
22 19 pHcarac
caracteres
TBWT DAV
23 ii
Orden de envlo DS RDAV Habilitador del siguiente caracter
24 17
Fin de caracter ^ EOC RCP Reloj del receptor (16 x rata de baudios)
25 16
Salida sene de ^ SO SWE (habilita pines 13, 14, 15, 19, 22)
datos (Iransmisor) 26 15
1 DB1 OR Rebasamiento
27 14
2 FE Framing j Salida de error
28 13
3 PE Paridad
CO
Entradas en 29 12 —t
4 RD1
paralelo del
30 11
transmisor 5 -2
31 in» 10
Habnltador de control 6 _3
(Norm aim ente = + 5 V) 32
>- 9
7 < 4 SalEdas en
33 8 _5 paralelo del
Control de paridad 8 DBS receptor
34 _6
con paridad = GND OS
sin paridad - + 5V 35 _7
NP
36 _8
Bits de parada TSB RDS
37 I
[
Bits por NB2 RDE (habilita pines 5 al 12)
1 bit = GND caracter 38
NB1 GND Bits por caracter
1
2 bits = + 5V (ver table) 4
39 2
EPS VGG - 12V PIN 37 PIN 38 BITS/CHAR
40
V,CC
1
Selector de paridad1 TCP + 5V V.
>:■
0 0 5
impar- GND Reloj de transmision 0 1 6
par = + 5V (16x rata de baudios) 1 0 7
1 1 8
datos del sistema y se almacenan intemamente en US ART. Si la lfnea A0 (=C/D) es baja, entonces se
cinco registros: de transmision de datos, de recep- tiene acceso al buffer de transmision de datos o al
cion de datos, de modo, de control y de estado. buffer de reeepcion de datos. Si A0 es alta, entonces
se tiene acceso al registro de estado o de control.
Funciones de los pines. El US ART 8251 se comu-
nica con el microprocesador 8085 a traves de las 8 La senal de entrada RESET, activa en alto, ini-
lfneas del bus de datos de estedltimo (D7-D0), cinco cializa el chip y lo inhibe hasta que recibe una
jfneasde control adicionales (RESET, CLK, C/D, palabra de control. Usualmente se conecta a la lfnea
RD, WR) y una entrada selectora de chip (CS). de POR (power-on reset: reset de aplicacion de
Dispone tambien de lfneas de comunicacion con potencia) del sistema.
modems (dispositivos perifericos utilizados para
transmitir datos a traves de lfneas telefonicas). La lfnea CLK controla los tiempos intemos del
circuito. Se conecta a cualquier senal de reloj que
Las lfneas RxD y TxD son, en su orden, la entrada sea por lo menos 30 veces mayor que la rata de
y la salida de datos en series Las entradas RESET reeepcion y envio de bits. La frecuencia y fase de
(pin 21), CLK (pin 20) y C/D (pin 12) se conectan, esta seiial no son crfticas.
en su orden, a las lfnea de reset, de reloj y de
direccion AO del sistema. La lfnea CS (pin 11) se utilizapara seleccionar el
chip y permitir que se comunique con el micropro¬
Especfficamente, C/D (control/datos) le informa cesador a traves del bus del sistema. Las entradas
al 8251 cuando la palabra disponible en el bus de RD (lectura) y WR (escritura) determinan el tipo de
datos es una dato o un comando de control del operacion de transference de datos deseada. Por
CEKU- Curso prdcticode circuitos digitalesy microprocesadores 547
Interface de comunicaciones (USART) 8251
1 28 3d,
D3 □ 2 27
=K TkD
RxD C 3 26 ~1 Vcc
GND C 4 25 3 rTc
24
D c 5 DTR
Tx RDY
D □ 6 23 3 RTS Tx EMPTY
TxC
7 22 G DSR
°6 C
82 S1 X;
d7
8 21 RESET s
TTcC 9 20 CLK is;
10 19 Ut*d RxD ijf
i:
cs It 18 ^ Tk empty
15 rTc
RxRDY G 14 TxRDY
syndet/brkdet
■§
a, Dlstributyon de pines ::
Nombr* del pin Funelbn o*t Bin Nombrt dH pin FuncJdn dal pin
ejemplo, con C/D=0, un bajo en RD selecciona el Las entradas TxC y RxC son las h'neas de reloj de
buffer de recepcion y un bajo en WR selecciona el transmisidn y recepcion, respectivamente. Contro-
buffer de transmision. lan la velocidad a la cual se envfan o reciben carac-
teres. A estos puntos debe conectarse un reloj exter-
Es decir, las senales C/D, WR y RD, le informan no o un generador de rata de baudios con una
a! 8251 cuando la palabra situada en el bus de datos frecuencia igual o 16 6 64 veces mayor que la rata de
es un catheter de datos, una palabra de control o una baudios deseada. Este numero (1, 16 6 64) se deno-
informacion de estado. En la figura 820 se resumen mina factor de rata de baudios.
las acciones derivadas de la combinacion de estas
senales. El 8251 puede aceptar un cardcter en un buffer de
retencion mientras otro car&cter estd siendo trans-
mitido. La senal de salida TxRDY indica que el
buffer de retencion esta listo para aceptar el prdximo
Direccionamiento del 8251 H
,.,
:-
dato enviado por el microprocesador. La senal de
salida TxEMPTY indica que el buffer de transmi¬
_ sion esta vacio,es decir que el 8251 haevacuado los
C/D HD WR cs Operas id n
caracteres suministrados por el microprocesador.
s
0
0
0
t
1
0
G
0
Leciuradel 8251 al bus de datos
Escritura da! busde dates al 8251
1
1 0 Estado al bus dt< datos
De manera similar, la senal RxRDY indica que el
1 0
1 1 0 0 ! Bus de dates a control. buffer de recepcion tiene un car^cter listo para ser
- - - 1 Bus de datos a esiaoo Ht^Z
leido por el microprocesador. Las senales de entrada
DSR y CTS y de salida DTR y RTS se utilizan en
Fig. 820
1 sistemas que transmiten datos por modem.
548
Un MODEM (MOdulator-DEModulator) es un Palabra de modo del 8251 1
ft!
periferico que se emplea para transmitir y recibir
datos digitales a traves de lfneas telefon;cas. Los D7 DG 05 D4 D3 D2 Dl DO
Por medio de la linea INTR (pin 10), el 8085 Instruccidn Direeeidn de salto
atiende las llamadas interrupciones enmascarables,
es decir aquellas que pueden o no ser atendidas RST 0 0000 H
dependiendo del estado de una "mascara". Esta RST 1 0008 H
mascara la programa el usuario mediante dos ins- RST 2 0010 H
trucciones llamadas El (habilitar interrupciones) y
DI (deshabilitar interrupciones). Estas instruccio- RST 3 0018 H
nes se estudian en detalle en la leccion 51. RST 4 0020 H
RST 5 0028 H
AI final de cada ciclo de instruccion, el 8085
chequea el estado de la mascara. Si esta ultima esta RST 6 0030 H
habilitada, inspecciona la linea INTR para saber si RST 7 0038 H
un periferico esta solicitando atencion.
Fig. 8261
Si este es el caso, el microprocesador acepta la
interrupcion, envfa por la linea de salida INTA (pin
11) una serial de reconocimiento de interrupcion al En respuesta a la instruccion RST n, el 8085
periferico y situa el bus de datos en el modo de suspende la ejecucion del programa corriente, guar-
entrada (figura 825). da la direccion de retorno en la pila (stack), carga el
contador de programa (PC) con la direccion de salto
Para que el microprocesador pueda proceder a la y comienza a ejecutar la subrutina de servicio de
ejecucion de la rutina de servicio, la circuitena interrupcion correspondiente. Esta ultima debe ter-
CEKJT- Curso pr&ctico de circuitos digit ales y microprocesador es 551
minar con una instruction El seguida de una ins- Indices de prioridad
truccion RET.
Indice de Vector de
La primera (El) rehabilita la lfnea INTR con el Interrupcibn
prioridad Interrupcibn
fin de permitir que el microprocesador pueda reco-
nocer una interrupcibn futura. La instruccibn RET TRAP 1 24 H
carga nuevamente el contador de pro grama desde la
pila con ladireccion de retorno y el microprocesador RST 7.5 2 3CH
prosigue con la ejecucion del pro grama principal. RST 6.5 3 34 H
RST 5.5 4 2CH
Las entradas de interrupcion RST 5.5 (pin 9),
RST 6.5 (pin 8), RST 7.5 (pin 7) y TRAP (pin 6) INTR 5 Ver figura
eliminan la necesidad de utilizar circuitena externa 826
para insertar una instmcci6n RST. 827
mmmmz
Estas lfneas se enmascaran por programa me-
diante la instruccion SIM (set interupt mask), la cual el 8085 siempre reconoce una interrupcion solicita-
permite habilitar o deshabilitar cada una de estas da a traves de la lfnea TRAP. Por esta razon, esta
interrupciones situando en 1 6 en 0 los bits corres- entrada se utiliza normalmente para salvar datos en
pondientes de la mdscara. caso de una falla de potencia o para responder a
situaciones de emergencia.
El programador puede conocer el estado de la
mascara utilizando la instruccibn RIM (read La entrada INTR se deshabilita despues de un
interrupt mask). Cuando se aplica una serial de reset, de una instruccibn DI o de una petition de
interrupcion a cualquiera de estas entradas y la lfnea interrupcion y se habilita con una instruccion El.
respectiva estd habilitada, es decir sin mascara, el Despues de un reset, las entradas RST 7.5, RST 6.5
8085 comienza por deshabilitar las interrupciones y RST 5.5 estan deshabilitadas y sin mascara. Se
para evitar que una misma senal de interrupcion habilitancon la instruccion El y se pueden enmasca-
continue interrumpiendo el programa. rar selecdvamente mediante la instruccion SIM,
A continuation, guarda la direction de retorno en Las lfneas de interrupcibn RST 5.5 y RST 6.5 son
la pila y carga el contador de programa con el vector activas en alto mientras que la entrada RST 7.5
o direction donde comienza la rutina de servicio responde al flanco de bajada de la senal de interrup¬
correspondiente a la lfnea activada. Especfficamen- cibn. La lfnea TRAP es sensible tanto al flanco de
te, a TRAP le corresponde la direecion 24H, a RST subidade la senal de interrupcion como al nivel alto
5.5 la direecion 2CH, a RST 6,5 la direecion 34H y. de la misma. Conoceremos otros aspectos relatio-
a RST 7.5 la direecion 3CH. nados con el manejo y programacibn de las lfneas de
interrupcibn del 8085 mas adelante.
Una vez ejecutada la subrutina de servicio, el
microprocesador debe encomrar una instruccion El Controlador de interrupciones 8259A. Disenado
para rehabilitar interrupciones futuras y, natural- para ser usado con las series 8085 y 8086, este
mente, una instruccion RET para cargar el contador potente circuito administra, en orden de prioridad,
de programa con la directibn de retorno y.continuar hasta ocho lfneas de peticibn de interrupcibn. Cada
la ejecucion del programa principal a partir del una de estas lfneas estd asociada con un nivel de
punto donde fue interrumpido. prioridad, una mascara y un vector de interrupcibn,
todos programables. En la figura 828 se muestran la
Las cinco entradas de interrupcibn anteriores distribucion de pines y la arquitectura de este chip.
tienen una prioridadde serviciofija e inmodificable.
Esto significa que si ocurren dos senates de interrup¬ El 8259A incorpora tambibn caracterfsticas adi-
tion al mismo tiempo, solamente serf atendida la cionales que le permiten conectarse en cascada con
que tenga la mds alta prioridad. La tabla de la figura otras unidades 8259A similares y gobemar hasta 64
827 resume el orden de prioridad de las lfneas de niveles de interrupcibn. Se programa mediante pa¬
interrupcion del 8085. Observe que la mas alta labras de control enviadas por el microprocesador,
prioridad le corresponde a la entrada TRAP. de una forma similar a como se hace con el PPI8255
y el USART 8251 discutidos anteriormente.
La entrada TRAP no solamente tiene la nrfs alta
prioridad sino que no puede ser deshabilitada o Operation general. La prioridad de la serial de
enmascarada de ningnna forma. En otras palabras, interrupcibn enviada por un dispositivo la determi-
552
Controlador programable de interrupciones (PIC) 8259A
a, Estructura interna b. Diagrams de pines
1 • 28
cs iiii
D7-D0 27
Wft
3 26
RD
4 25
D7
5 24
D6
6 23
05
7 22
D4 8259 A
B 21
D3
~9 20
D£
10 19
01
11 18
DO
12 17
CASO
16
CAS 1
14 15
GND
SP/EN
5
Fig. 828
11t i WMmMmm
na la entrada de peticion de interrupcidn (IRO hasta ultima es ignorada hasta que haya sido completada
IR7) a la eual este conectada. En condiciones nor- la rutina de servicio correspondiente a la interrup-
males, IRO (pin 18) tiene la mas alta prioridad e IR7 cion de mayor orden y se hayan rehabilitado las
(pin 25) la mas baja, Sin embargo, este orden de interrupciones mediante una instruccion El. Cum-
prioridad puede cambiarse o reconfigurarse en cual- plidas estas condiciones, el 8259A vectorizael pro¬
quier momento por programa. grama a otra direccion para atender la nueva inte¬
rrupcion.
Cuando el 8259A recibe una solicitud de inte¬
rrupcion en una de las lfneas IRO a IR7, envia al Si una interrupcion esta siendo atendida y ocurre
microprocesador 8085 una serial de peticion de una sefial de interrupcion de mas alta prioridad,
interrupcion (INT, pin 17). El microprocesador, a su pueden suceder dos cosas:
vez, responde con una sefial de reconocimiento de
interrupcion (INTA, pin 26). El 8259A usa esta • Si la rutina en curso no tiene una instruccidn El
serial para cargar una instruccion CALL (CDH) en (deshabilitar interrupciones) al comienzo, la nue¬
el bus de datos del sistema. va interrupcion es ignorada hasta que aparezca
una instrucci6n El.
El microprocesador 8085 decodifica esta instruc¬
cion y envia dos pulsos INTA adicionales: uno para • Si se ha incluido una instruccion El previamente,
que el 8259A situe en el bus de datos el byte de la interrupcion de mas alta prioridad interrumpe
menor orden de la direccion de la subrutina de la rutina de la de mas baja prioridad. El 8259A,
servicio y el otro para que libere el byte de mayor entonces, envia una instruccion CALL y ladirec-
orden. Las direcciones de las ocho subrutinas se ci6n del vector de interrupcion de la rutina de mas
almacenan en el 8259A durante su inicializacion. alta prioridad.
De spues que el 8259A ha suministrado la direc¬ Cuando esta ultima termina, el control del pro¬
cion de la rutin a de servicio, el 8085 guarda la grama retorna a la rutina de mas baja prioridad y
direccion de retorno en la pila y carga el contador de de esta al programa principal.
programa con la nueva direccion. Puesto que el
8259A suministra la instruccion CALL y los dos Desde el pun to de vista de su programacion, el
bytes de direccion, puede vectorizar el programa a 8259A acepta dos tipos de palabras de con trol gene-
cualquier parte de la memoria y no a ciertas locali- radas por el microprocesador: palabras de comando
zaciones, como sucede con una instruccion RSI' n. de inicializacion (ICW) y palabras de comando de
operacion (OCW). Los aspectos relativos a la pro¬
Si una interrupcion esta siendo atendida y ocurre gramacion del 8259A se discutiran en detallt en la
una sefial de interrupcion de mas baja prioridad, esta leccion 54 de este curso.
CEKTT Curso praciico de circuiios digit ales y microprocesadores rco
Otros circuitos de soporte de entrada/salida El adaptador periferico de interface (PIA) MC6821
es similar al PPI8255 y al circuito de soporte 8155
En las secciones anteriores se describieron algu- descritos en secciones anteriores de esta lcccion. En
nos circuitos integrados de soporte desarrollados la figura 830 se muestra un diagrama de bloques de
especificamente para el control de operaciones de este dispositivo. Observe que cada mitad del mismo
entrada/salida con el microprocesador 8085. En esta contiene un puerto de entrada/salida de 8 bits y dos
section revisaremos rapid amente el controlador de lfneas de control o entradas de interruption.
interface paralelo Z-80-PIO y el adaptador periferi-
co de interface (P1A) 6821, ideados para sistemas Cada linea de puerto se puede programar indivi-
con Z80A y 6800, respectivamente. dualmente como entrada o como salida. La direccion
de cada linea se programa mediante una palabra de
El controlador paralelo de interface Z80-PIO control que se carga en el registro de direccion de
(figura 829) se utiliza para conectar perifericos al datos (DDR A 6 DDRB). Un 1 en unaposicion de bit
microprocesador Z-80A, Contiene dos puertos de del DDR programa la lfnea correspondiente como
entrada/salida paralelos de 8 bits compatibles con salida y un 0 la programa como entrada.
TTL e incluye una circuiteria logica de control de
interrupciones vectorizadas. El vector de interrup¬ Ademas de los dos registros de direccion de datos,
tion deseado lo suministrael circuito interruptor. el MC6821 tiene dos registros de control programa-
bles llamados CRA y CRB. Durante la fase de
inicializacion, cada uno de estos registros se carga
con una palabra de control que lleva un 0 en el bit!.
Controlador paralelo de interface Z80-PIO Esto se hace con el fin de tener acceso a los registros
DDRA y DDRB y poder programar individualmente
las lfneas del cada puerto.
binario hexadecimal Li
WR : Qrden de escritura (ESC)
RD: Orden de leetura (LEE) 1
ALE: Orden de direccionamiente
Temporizador
Bus de
datos y
direc- Entrada | i Salida
y.
X
PAO-7
Manejadores Qecodificador Puerto j
0 1 2 3 deLED de display [vAVA’l RAM A
4 ; 5 6 7 £
8 9 A B 1 PBO-7
C D E F Codiftcador
de tedado
Registro de
daios y
! CPU
Registro
de
corriandos
Puerto
B
2?
wn direcdones
&
:v
£
j. s.
RD f PC0-5
Tempo¬ Puerto % * v. !■!;
■•v.w .. . . . .....»\v.
Fig. 831
110V
Capacitancia Cl <30 pF Ii
de carga
Resistencia shunt
equtvalente
Rs <75 £2 |
Nivel de manejo — 10 mW 1
Tolerancia do ± 0.005 %
m1
*—
frecuencia sugerida
:)r.:
Circuito de reset. El 8085 puede ser facilmente circuito de reset utilizado en el microcomputador
conectado o desconec tado por hardware mane jando MicroCekit I.
adeeuadamente su entrada de reset (RESET IN, pin
36). Cuando esta linea recibe un nivel bajo, el En el momento de energizar el sistema, es decir
microprocesador ingresa al estado de reset. Bajo de aplicar potencia por primera vez al circuito, el
esta condition, el contador de programa se carga
con ceros y se borran los flip-flops habilitadores de
interruption y de reconocimiento de hold.
t
Puerto C
03 H
6 bytes
Puerto B
02H
Puerto A
01H
Registro de comandos
00 H
Del mismo modo, para programar el temporiza- La entrada intr se mantiene en bajo para
dor de 14 bits, los 8 bits menos significativos de la desactivar las interrupciones vectorizadas enmasca-
longitud de conteo deben cargarse en la parte baja rables solicitadas a traves de esta lfnea. Cuando esta
del registro de temporizacion (04H) y los 6 mas linea es alta y la mascara respectiva esta habilitada,
significativos, junto con el codigo de modo, en la el 8085 envfa por la lfnea inta una serial de recono-
parte alta del mismo (ver figura 805, pdgina 539). cimiento de interrupcion y solicita al dispositivo
externo que especifique la direction (vector) donde
La serial de entrada del temporizador se aplica en comienza la rutina de servicio (ver leccion 49).
la lfnea TI (TIMER IN, pin 3) y la serial de salida se
obtiene en la lfnea TO (TIMER OUT, pin 6). Depen- Note tambien en el circuito de la figura 832 que
diendo del modo programado, esta ultima puede ser HLDA (pin 38), CLKOUT (pin 37), Si (pin 33), SO (pin
un ciclo de onda cuadrada, una onda cuadrada con- 29), INTA (pin 11), RST 5.5 (pin 9), RST6.5 (pin 8),
tinua, un pulso simple o un tren de pulsos. En las RST7.5 (pin 7), TRAP (pin 6), SID (pin 5) y SOD (pin
prdximas lecciones practicaremos intensivamente 4) estan al aire. La funcidn de estas lfneas de control
con estos conceptos. se discutio en las lecciones 47 y 49. En particular,
CLKOUT puede utilizarse para monitorear la serial de
Ot ras Eneas de control. Para finalizar con la tarjeta reloj y SOD para generar sonidos.
procesadora, observe en la figura 832 que la lfnea
READY (pin 35) del 8085A esta conectada a un nivel Diseno de la tarjeta program adora
alto mientras las lfneas HOLD (pin 39) e INTR (pin
10) lo estan a un nivel bajo. Desde unpunto de vista conceptual, el circuito de
la figura 832 es un microcomputador completo
La lfnea READY se mantiene alta con el fin de porque posee una unidad central de proceso, una
permitir que el microprocesador este siempre prepa- unidadde memoriay unos puertosde entrada/salida.
rado para enviar o recibir datos hacia o desde el Sin embargo, le falta lo mas importante: un progra-
8155, Si esta lfnea se hace baja durante un ciclo de ma. Sin un programa que le indique lo que debe
lectura o escritura, el 8085 entra en un estado de hacer, un microcomputador es solo una masa inani-
espera hasta que se le informe que la memoria o el mada de componentes electronicos.
dispositivo externo de entrada/salida esta listo para
transmitir o recibir datos. Para almacenar en la memoria los datos e instruc-
ciones que constituyen el programa de nuestro mi¬
En el estado de espera, los buses del sistema crocomputador, necesitamos asumir temporalmen-
oermanecen en su estado logico vigente hasta que la te el control del circuito de soporte 8155 y aislar el
fnea READY reciba nuevamenfe un nivel alto. Esta microprocesador 8085 del resto del sistema. De este
caracterfstica puede utilizarse para ejecutar progra- modo, podemos introducir informaeion en la me-
mas por pasos ("paso a paso"), siendo cada paso moria sin intervencion de la CPU. Esta es, precisa-
controlable por el operador. Asf, se puede ejecutar mente, la funcion de la tarjeta programadora.
una instruction, congelar el estado del microproce-
sador y observar el contenido de los buses. En la figura 843 se ilustra la forma de conectar la
taijeta programadora a la tarjeta procesadora. Cuan¬
La lfnea HOLD se mantiene baja con el fin de do el interruptor Si de esta ultima (ver figura 832) se
garantizar que el 8085 tenga siempre el control de situa en la posicion "RESET", las lfneas de datos y
los buses del sistema. Si esta lfnea se hace alta, el direcciones ADO hasta AD7 del 8085 adoptan el
microprocesador termina la ejecucion de la instruc¬ estado de alta impedancia y quedan flotantes. Lo
cion en curso y situa las lineas ADO hasta AD7, WR, mismo sucedecon las lfneas de control ALE, WR, RD
RD e IO/M en estado de alta impedancia. Esta cir- e IOAL La lfnea RESET IN del 8085 es de nivel bajo.
cunstancia puede ser aprovechada para asumir el
control de los buses del sistema desde el exterior. Bajo estas condiciones, desde la tarjeta progra¬
madora podemos acceder libremente a la RAM del
En respuesta a la activacion de la lfnea HOLD, el 8155 y escribir en la misma el programa de instruc-
8085 envfa por la lfnea HLDA una serial de recono- ciones que debe ejecutar el microprocesador. Asf
cimiento de hold para informar a la circuiterfa exter¬ mismo, podemos direccionar cualquier posicion de
CEKJT- Curso prdcticode circuitos digitales y microprocesadores
561
Conexion de la tarjeta programadora • Un reloj auxiliar TTL con inversores (IC2E e
liii
!'F IC2F). Este reloj puede utilizarse, por ejemplo,
s <: paracontrolarel temporizadorintemodel circuito
ADO ADO j 1
de soporte 8155.
ADI ADI :i $
![ m
;p• vl;
;.v
AD2 AD2 * Un conector tipo base DlPde 16 pines (Jl), Este
AD3 :| I
AD3 conector se comunica con el conector de acceso
■i 1
AD4 AD4 de la tarjeta procesadora (Jl) a traves de un
ADS ADS l I conector piano (ribbon) de 16 lfneas.
AD6 AD6 l 1Is
„ _(/> Para comprender como opera la tarjeta progra¬
S AD7 AD7 u*> l 1
o 5 madora, consideremos un ejemplo sencillo,
00 l 1
• Dos registros de 4 bits tri-state 74173 (IC6 e • Las lfneas de habilitacion (OE) de los registros
IC7). Estos dos registros configuran un registro IC6 e IC7 reciben un bajo. Como resultado, la
de desplazamiento de dos etapas, cada una de las informacion previamente almacenada en IC6
cuales maneja una palabra de 4 bits. (1100) se transfiere de las salidas Q3-Q0 a las
lfneas AD7-AD4, se visualizaen forma binariaen
* Dos displays decatodoconuin(RSC50 6 similar), los LED D7 a D4 (D7=D6=ON; D5=D4=OFF), se
cada uno asociado a un decodificador de decodifica mediante IC3 y se visualiza en forma
hexadecimal a siete segmentos 9368 (IC3 e IC4). hexadecimal (C) en el display # 1.
• Un arreglo discreto de 8 LED (D0-D7) con • Del mismo modo, la informacion previamente
impulsores 7404 (IC1 e IC2) y resistencias almacenada en IC7 (0010) se transfiere a las
limitadoras de corriente (R1-R8). lfneas AD3- ADO, se visualiza en forma binariaen
los LED D3 a Do (Dl=ON; D3=D2=D0=OFF), se
* Una circuiteria de control formada por, tres decodifica mediante IC4 y se visualiza en forma
compuertas de interconexion (IC8A-IC8C), un hexadecimal (2) en el display # 2. Por tanto, en
transistor(Ql), tres interruptores (S2-S4) y varias los displays se lee el dato C2 y en los LED el byte
resistencias asociadas. 11000010.
Sistema MicroCekft 1. Tarjeta programadora
a
+5V
MSB LSB OC
OC CC: CAlodo
RSC RSC CC
CC 5CPW 50PW comun
WC
D7 D6 D5 D4
+5V
7T
i AS
+5V Rl ^ R2 J R3 R4 Rl < R6 % R7 ^ R6
12 fa 11 o 12 d Is Is MO +SV
15
+5V
:mo
Vcc 14 Jl 16 13 12 11 10 15 14 13 12 11 10 14
1B_ 10 K
14
7
JC1 (A-F)
7404 (C.D)
Vec a b c d a t
1C 3
g a b e d e f
1C 4
g 5
4
6 A9
GND 7404 GND
93GB D C B A 9360 s-6 A9
D C l1 A
1 9 11 13 IT
Al
^ PUENTE
ADD
10IT
ADI
AD 2
12
13 AD 3
AD 4
14 AD 5
13 AD 6
J£.AD 7
+5V
IC 2 1e
11 D3 03 Jl
Add ress
CLOCK
R1-HS-22DO
R17.R1B: 1 K 13 D2 02 +5V
(ALE)
ALE
OUT Cl 3 3(iF 13 IC6 01
D1
C2 0.05 pF 14
DO 74173 Q0 R1S
'47 K
03: 1 jiF
Wft
CP
+5V 8 [9 10 15 lo S3
Mota: Kl incluye Jl* V^rita -1-^2
S3, S3 y S4
IT Jl 3 (ESC) -
10 XI
8 X2
X3
ICS A
X4 ics DA +5V
1 1 74C922 tie S
0 1 2 3 Y1 14 ! 1 Q
2 2 D3 D3 03
4 5 6 7 Y2 15 12 5
Ce
3 3 Y3 16 13 K IC7 02 4
8 9 A B D1 D1 01
17 14 3
4 4 DO DO QO
c D E F Y4 v:
7 1
Kl 9 C2=Tis *i-C3
13 je CP CE
Fig. 844
lAWAWAm^WIWUUWA^WWJWAMAVAV^^ ■ ■ ■ ■ > ... ..■■■ 11 1 ... .■■■■—
* El dato anterior aparece tambien en las entradas Quinto paso. Una vez seleccionada la posicibn de
D3-D0 del registro IC7 pero no se transfiere a las memoria 2A, el siguiente paso es digitar en el
salidas. Por esta razon, la information previa- teclado el dato o in struccion que deseamos almacenar
mente visualizada en los LED y en los displays de en esa localization, es decir 3E,
siete segmentos no cambia, es decir sigue siendo
11000010 y C2, respectivamente. Despues de marcar estos dos dfgitos, el contenido
P del bus de datos (AD7-AD0) sera 00111110.
• La lfnea DA (Data Available) del 74C922 se Nuevamente, esta informacibn es visualizada por
hace alta para indicar a la circuiterfa externa que los LED en su forma binaria y por los displays en su
la informacibn disponible en las salidas del mismo forma hexadecimal (3E).
es valida. A1 mismo tiempo, la entrada de reloj
(CP) de IC6 e IC7 recibe un nivel bajo. Sexto paso. Para almacenar el dato anterior (3E) en
la posicibn de memoria previamente seleccionada
Cuando se libera la teela "9" se suceden las (2A), el siguiente paso es enviar una orden de
siguientes acciones: escritura a la RAM del 8155.
♦ Comoresultado de lo anterior, en las lfneas AD3- Puesto que el pin 10 de IC8C estd a un nivel alto,
AD0 aparece el codigo 1001 (9H) y en las lfneas el bajo en el pin 9 de esta compuerta provoca que las
AD7-AD4 el codigo 0010 (2H). Por tanto, la lfneas de habilitacion (OE) de IC6 e IC7 reciban un
lectura en los displays y en los LED sera ”29” y alto, Como resultado, las salidas Q3-QG de estos
"00101001", respectivamente, correspondiendo registros adoptan el estado de alta impedancia y se
un 0 a un LED apagado (OFF) y un 1 a un LED desconectan del bus de datos y direcciones.
encendido (ON).
El bajo en la lfnea RD del 8155 provoca que el
Tercer paso. El siguiente paso es marcar en el contenido de la posicion de memoria 2A (3E) se
teclado el dfgito de mas bajo orden de la palabra de transfiera al bus de datos y direcciones.
direction ("A"). En este caso, se cierran la columna
"X3" y la fila "Y3". Pasado el perfodo de rebote, en ■Puesto que las salidas de IC6 e IC7 estan
las salidas del 74C922 aparece el codigo 1010. A1 desconectadas, el contenido de estos registros no
liberar la teela "A", en las salidas de IC6 e IC7 interfiere con el dato suministrado por la RAM,
aparece los codigos "0010" y "1010". La lectura en Como resultado, en el display y en los LED se
los displays es 2A y en los LED es 00101010. visualizan, en su orden, los datos 3E y 00111110.
Leccion 51
o
u j2< CD O Q LU x j 2 < 0QO Q UJ ttJQQOJl j< m O Q
c h m n.
2
Q
E > > > >>>>>>>> >>>>>>> >>>>>>> > > >
0 o o o OOOOOOOO ooooooo ooooooo o o o
<
o cc
CO o
TJ
Q LU IL
in in in
Oi-csrco^-irtcot'-. ® <3> < CB O LU U_
2 O 1» W n cMfl N QO O <
a
cj? <Q CD IP <D CC? CD ID tD CO CD CD tp (JD CD
LU
N S N h- N N N r-
O
in
CO co _co co co co
o UJ LU “*• * — —J j < "i-. "l— 1— "l_ < < <
CO
a ■P k
to OOOoOoO
d) uj cd d) 03 03 03 03 rji X Q) 05 _| 05 ddi d)
® o cc® 0000002 0 CD CD O <L CD 03 O E E E E E E E CD O 03
DC X ccccoccccccr 2 cc X O X X 0 q 0 0 0 (u 0
XXX
o
Q
15 ~ "J o "ppp’p^”^"3
P 15 CO
O
ns co co cs IB _<n
** p
CO
E E E E E e E
CO cO CO
< Itj lo 15 i
CO Q O LU X O < !j
(0 (0 (0
a> <C CD O Q LU J 0 o
CL CJ moo
< 03
-•-
o> H O) D3 D) C) 05 Cl ■= Cn
CL
I— « £ ■
ai — O) LU
fflOQUlj<
B ■ I * i ■ A
X
\— * ■ *
05 C7> P>
li
CO 0 P 0 <2 OGilicliQJD^O CO p di 03 X 05
CD
03
CD
03 0> 05
0> 0 03
03
0
Ui
Q3
if) CD Q CD
LJ X X XXXXXXsX X E X
o
o
Ui a; 0 0 03 0 0 0 03
O
LU
CO
O
X X X X X X X 3
LK
XXX I;
o> 03 0000000 "<d "a> "o
o
DC
"P "Q “O
o o o
DC
_J
TJ T3 ■P ■p "D
O O O O O
"P
O
"P ■P
a a
CL
—I
■p X3 x>
o o o o 0 a 0
-J
LU
-O -p T3 TO T) XI TO
ooooooo
X x> x> "P
o o o
Td -O T3 < 72. rs TO P X> S T> O 13 rs ;g ^ ^ ;g :2 < U ^ 10
0. ’cz ’cz c Jc C c c c "c c c c c "c c c c c e c c
o
DC
000
4-H
cz tz c
■+—^
to
o
CD Q CD CD 0
c C c c
CD
t1*-
C
CD 03
-
C C
CO
o
I-
•a1
c c
03 P
- +H
CO
O
0 0 0 0
-H- ■*“1
c C C CZ £Z c c
+J
0
4-f
0 0
+-# +nT
tn
o
a> <d o
P c c
o o o Q o Q ooooooo o o o
u o o o O 8 8 o 8 8 8 O z 8 8 '8 ooooooo OOP
o rCL LU — — — Ui
0 0 "0 ^ "o <D CD ’o 0 CD 03 "q ~0 "03 "a> <D O O CD CD d> dJ OJ UJ CD
u p p p dl n3 P CT3 rs P dJ dS 2 ns dJ flj flj ifl A uj ni dJ dJ (fl
i/3 > > > > > > > > > > > > > > > > > > > > >>>>>>> > > >
CD q aj 0 CD 03 P CD 0 0 CD 03 0 03 03 0 0 d> Q O CD CD CD d>
a 3 3 3 O 3 3 3 3 3 3 3 3 o 3 3 3 3 3
CD UJ
3 13 O
05
LU 2
Q
CO *
LU Q
z ^ ■’tf 't *T
o
*
CD
o
O o
z> u
[QOQUJl j5< cqoqujX—i2< fflODUJX j5<
CL "c m O O lu X
o
H a> OQ CQ CQ" CD CD CD CD o q" o o" d d d d cT q o" d cT o d d LU Ui LU LU Ui
CO o
E tn >>>>>>>> >>>>>>>> >>>>>>>>
CD O > > > > >
LU H OOOOOOOO OOOOOOOO OOOOOOOO O O o o o
Q <
o Q
05
LU
O Q gf-WO^-iOiDN CO05<CQOQUiLL OrWrMttOJOS «) <J1 < CD Q
a in ip u> lo in io io in in in in in in
u <
O
Z
LU
DC
O LU CQ CD CD CD X eft CD a o a o o o o Cl Q Cl O O o LU UJ LU LU LU
1U ■ ■ ■ ■ ■ # ■ ■ ■ •>■■■
o P CD Q) P □) rn DQ Ui d) did) d) d) d? d> d) di o 6 6 O CD D5 O 05 CD CD
0)0><Dd)CDab„o <DQd>a)0>n>QQ CD CD CD 0> QJ nj CD P <D CD d
z cccniririra; 2oc XXXXXqc Q X X X X X CC
“ x O 2 LL GC DC GC CC CC
< X
flj tTJ TO CO— oi dJ (V o O +"-1 UJ m
cc dJ us ca cc 75 7^
tn dJ co o3 aJ a? .2 dj
EC O
X CO 0 Q LU I J CD ^
Ui o □Q O O lu X _ cn ^
O
X O O X
U>
CD
^ O
"ro <b 15 "co
CD O O LU X
"ra
* U » »
< H 1” 0
□5 05 Ui 03 05 03 03 d> Ui d> d> 05 05 d> 1“
AN 03 d> d> 03 03 03 03 03 03 d) d> 05
X UJ CD 03 0 03 03 0 P 03 U) 0 0 0 0 0 0 0 to 0 0 0 0 0 0 p 0 if) 0 0 0 0 0
< X X XXX X X X X X X X X CL cc cc a: X X X E X X X X X X
n O 2 O 0 O
L4n
LU 0 CD 0 0 0 "0 LU LU LU
"0 0 0 0 0 "0 *0 0 0 0 0 0 "0 "0 "0 0 "0 0 0 0 0 0
Ui X ~o "O ■p X3 TD TO *o TD X ■p TP TP ■0 ■p ~o t) XJ X td X3 "O T3 X3 "P ■O "0 X "O ■p X3 "O “O
iLU
11
_j 0 O 0 O O O 0 O 0 O O 0 0 O O 0 -J O O 0 Q O 0 O O j 0 0 O 0 O 1
< JC u ■g 72 TD ■g < 33 g 12 12 2 2 < 12 12 12 32 12 33 X 32 <t ~o "D T3 TJ T> 1
LJ C C c c c C c c c cz C c s= c: c c /ij
fA /n 1A 3 c cz £= CZ p c c c cz CZ C
05 03 0 l/J 03 0 0 0 0 0 0 uJ 0 0 0 0 0 UJ 1" ]
1 1
O O -#—• 2 2 2 2 2 2 J-S 0 0 0 0 0
w M 2 2 2 -4-^
c c c c c c "c c c t C c C c £Z c c ■ "c c c C 0 c cz c 0
1 C c CZ c H ■I;’
0 O 1“
“i 1 0 a 0 a 0 0 O 0 O 0 O 0 O 0 a 0 0 0 D O 0 0 0 0 O a 0 0 0 t'i':
n z L3 u 0 0 0 0 O 0 z O 0 O p O p p p z 0 0 O P u p p p z O 0 p p 0 i'i'i
i'll
X LU UJ LU LU ■1
uL 0 0 Q> 0 0 0 0 0 0 0 0 0 0 0 0 0 ..
H ■E— 0 0 0 0 0 0 0 0 0 0 0 0 0 ■■
fc.-.H
to P p m p p p P p | O p O £0 P p p P s P p P P p 2 ■!*!i
5 P P P P p P P p v.-
Vn'
ffl Z > > >
0
> > >
0
> >
0
>
0
> > > > > > > > > >
0
> >
0
> > > > > > > > >
W‘
03 CD 03 0 /s 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
«*% 1 O 3 3 3 3 3 3 3 3 0 3 3 3 3 3 3 3 3 0 3 33 3 3 3 3 3 O 3 3 3
3 3
i_J
2 S 2 s 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
566
CEKFT-Curse practice de circuitos digitales y microprocesadores 567
Baa!:!:!-!?:!:!:!;.. ..
*
O N t N ^ ^ ^ N ^ N *r ^ ^ h' ^ ^ ^ ^ Tt h- i
i
CD i- OJ i- OJ c\j
O
y ns nS nS
c ^ j, ~o
^
o -£ < -Q X O O UJ S < X O O LU I J s < -g X 5<
c
D
H
E
L
S
o
X X X X X X
ORA
ORA
ORA
ORA
ORA
ORA
ORA
ORA
E < < < < < < _
CMP
CMP
< < < < -
ORI
0 X X X X X X X X XXX
< < < < < X X X X X X XXX O O O O Q o !
o
't LO CO 03 < £D O Q ill LL LU 00 XX
BA
8B
BC
BD
O) <D N (O
BO
B2
B3
B9
*r m © s <o
B1
■u << < < LU £0 ID CD X LU <<<<<< < < LU X £0 X
o
U
<<<<<<
_ ■ ■ ■ ■ * '
<
< < < <<<<<< < 03 03 O) 03 03 rji d)<
■ < a a a a a m o
g> cb
© 0 a
D>
3 03 03 Ol CP) 03 03 o> 03■ <. X X X X X CE ^
r?
X 01
CD
ac cr ~o ■ —^ X CD
o) ® « a) a ® o
>>>>'>'> J >,cc
X X X X X OC ^ X CD
^ 03
>,(£ >,tr CQOQUJI jt < ^ <<<<<< <
< >■ □ O D LD I J ^ < ^ O) 03 03 03 03 03 □ 03 CQ
44 2 2 9 S 2 g G
V.
0 0 0 0 0 0 0 0
d> d> R 03 s
d) 03 03 03 03 03 S X X X X X X "aj X _« .W 5 ,w S « ^2
0 <d u -a
cr ■□
« « ■
0) CJ> CD Q) Q3 01 03 03 03 03 03 03 03
0CCC q « 4S 0 0 0 0 0 0
h_ ■ 0 0 0 CD 0) 0> Q> CD X _ 03
0 0 0 0 0 a: X X X X X X 0) X TJ j ■T ■ JP-1 9d * B _i
■ ■ _■
_
■ ■
i—-
-
1—
c
CL OC OC £E CC (X 2 X
■+-» ■*—11 4—1
0 0 c c c c c c
k_ >_ >w o (1) 0 03 0 03 03 03
4—1 4— 0 0 0 © 0 0 0 0 0 c c c c c ©
c c c c c O O O O O n
a> 0 0 a 0 < 03
c
CD CD 0) CD <D q>
c c
0 0
o O O o o o o o o y o o o o o o
o
u
o > > > > > > > > >
o o o o o
o O O *
Q O O o o "c/3 trt crt tfl £/> in y> t/3 m O Q X X -J ^ <
GOO* o o a O ■fl ft y
u O O
Q O O U ,o y 3 y y y y y y
o o o o o O g o
03 03 03^ Q)
'O kO lO
OJ
'O
o t_J ?■ CD CJi
t_J ? CJ> L^J 03 D> o O y y Q o o ~o < o o "Z 1_
X X X X X X X ft X
_j 'O
^ o Q
"O
i 'O 'O "O
i —i _j
i_
4*4 i
‘O
_l
o
_J
>
LU tu UJ LU LU LU X OJUJ
X
UJ 9
CO C/3 1 to to CO co C *
-»••-— a -“a s
QQQ 03 03 03 03 03 03 § < 03
c g’QQ <£ to O CD CD 03 CD 03 <D
:2 x x x o CC X X X X X X FT'l
CD
CC CC D X X X X X X X X X X <
XXX X X X 03 ^X
*o < < < 11 < < o
0 oo O O O o o o O
0 Jill
o O X
<D 03 © qj
c o O CD 03 03 03
c c c 0 c c c c X c c c c c c cz c a cz cz <
.2 < 3 o — D y X o y y y y y >4 y y X ■rd ns O CO CO CO CO
rr
fO
X 0
i3
tf)
rd ns ns ^ ns co LU co cc o co as m Cfl m UJ ns ns ns 0 0 0 0 2 0 0 2
CL CL a CL CL Cu CL q CL
03 O 03^ O) 03 O 03 03 03 03 03 03 O 03 rr
LU 03 03 a> 03 03 03 03 03 03 E E E E E E e z. e
03 fO (0 fO m (0 fO Q. co ns ns co ro ns co ns m ns ns 0 0 0 0 0 0 0 0 V o o o Q o o
o X X X -o X X o £ X X O X X X X X X X “a X X o O O O OOOQoO
° o o
*
<J h- ^
CD - - - - 04 CM
O
y 0 0
E (3 0 x X
u I —1 < T3 TS < m O Q uj m a x 2 CQ < CC O O LU I to CO o £□ O Q LU
o
E m X X X XrrXXXXXXXXXX
XXXXXXXXxxxx < c < <
0 CQ X OG X X ooooooooaooo X X X X
tf) if) to co to CO OOOQQQQQQQQQ <<<<
o
03 u Q LU LL to LU
■5 03 03 03 03 D D
O^rO^O^Ocoon^tco
rtOOi-T-<MCMOt-fiNCOC*>
OioQioDinOustDCQffla
noor rNNrtrtOrW
O
< <<<
r N CO
|
‘O
o i
■Q) ^: ■*-
4—* 4-4
O O o Q o "O TO k_ h.
c o c c
'2 -g
Cl ^
k "to ^ O O O O O O b- -0 X3
O 2z ±z +-< —
2 k— 2 *— 2 2 2
■4— c: 0 To To To
<
0 0 0 0
■;■;■
a a CD
"O 03 _ 03 V; iS c 0 .£2 .s . V3 .S E/3 .to to 0
03 03 03
a
03 Q5
O 03
© <y ll "to to V) to
03 03 03 ©— S' 03 03 03 03 o> 03 03 y 0 0 0 o
o
y
o o o
a Q ■o
03 03 03 03 03 03 03 03 03 © c 0 0 0 0 0 0 0
^ >> ■y CD _ >,0C o CO 0> OJ0 0 CD 0 <D X X X o Cl
CT>
XXX XXX X y
O XX X X o 03 03 03 03 !y!
- ■ i
■ ■ 9
k ■ !
cz CC < OJ >>
o XXX X X X X
tfl CO « O 0 O 0 C/3 -o -a IQ L- 1
- ■ I
oj . Tj 0 0 0 0 0 0 0 0 0 o O
z
. . .
u GC X y X m
O u
LU ^ ^
c:
4— 4—1
CC c
4—* +-*
£C C C tZ
+J -*-J
c ez c
+4
£ 0 0
C
0
c c
0 0 0 0 0 0 0 0 0
0 < < < <
a
ri.M "a> "0 03 E ® 13
LU
a> tD 03 0 0 a> <d 03 a> 0 0 0 UJ E E E E E E E E E E E E
< Li. V_
y y y 3
c: W
-•
X X r
u 0 CD a> to d> 03 <33
-M X
E
03
E
<D
E
CD
E
0
E
0
E
03
E
03
E
®
E
03
E E E
0 N*0 0Jk, (J
0 0 0 0 0 0 0 0 0 0 0 0
LU 0 (di ro i
033 a
iVi
ifi To T) V CO "to to "to k. hi h'*- y o o y o y o o o O Q o □3 03 03 03 ' -1
a> 03 CD -<D 03 05 <33 y o o y o y y o y o y y LU 0 0 0 0 0 0 0 0 0 0 0 0
Q_
0 tC ns 0
cz
D X X X XXX c c cz c tz c (Z tz Q QQQ Q Q Q Q Q Q Q Q Q o X X X X !''
568
.
n CXI CM G uo
o CM CM CM CM CM CM CM CM CMCMCMCMOOOQtQ OO o <30
s to t— t— t— t— t- t- ~o
d>
+•
C § X
CD t“ ■*“ CM CM .2 a;
Q to
G «
3 CO Q
k— b_
o
y o 5 5
Q cH © >*
©
03
■Q I
"c
PC co to ..e .i ° Q
p CDQlUCDQla R8_ _D
o
z Q — X P"
"c
2
o
o o ^ JO =3 03
o
£ LU I— |— H j— |— |— I— |— Ui
CO to COCO Cl-CLCL Q_x X 9r H
D
© CL CL
xx x tr xxx x x x Q
DDDDOOOOi-cl»^Oj72I±
CLCLIXClCLCLCLPLXCOQLLIZX^OXCO 8 “QS
_
£ 8
G !
> © G "a>
i_
o < c —— cdlB o
O) oo O GO SU-MLMLMl. into tn ud ^ rtT-rtCH*?fiQo<o5S2oo © x Q- Q.
D
LU LL O Q ID LL OQLULLUilLILU.ONGOM^ E
■a OQC3QUJLULLLL o 03 nj
O o 03 O ^ ~Q
O
< Q p 7“ O 03
t/> Q CL Sc G
< 2 - G
i= o co "8 d
Q 03
H) c g
cccccctztz < co CO ._ *- C 05 Z3 Q_
CO
"O 'O ‘‘O ‘■Q -O 'O '■O X TO 5< erf ® Q 3 "Q ^ . 03
o 0 0 o o u o u H •o o> — T3 O O O
CLQ.Q-GlQ-Q.Q_Q. Z Q_ JO C5 ns 03 X to -03
JO O S erf f) to
^ q ^
h_ I-.. "... *_ i_ W i_ 3—
ID to ■ Q.qJE. <5^ tO Q-
03 X .2 o X_Q £ « i
Q- d (ij <u k- ^"Q fc*D fl><D >, 03
a -=
O
t/>
h~
(DlDCJQJCbSJiUfl)
< “ ” C G CO CO
— X q_ a>
-Q O
tJ to O ^ tO fij Q tfl t/) i— -Q ^ l
Q
>
>
IX
c c c c c
3) o aj ^
c^ ^ cs ^ *o ~o -o J2 as a> cl
a— ^_|
t! 2 'O ■§ « 03 gM.! g;
G
G
03
< TJTJTJ'OTQTDTJ'O
E
c c c CO o ui - as § | to
O O o
x£_
it Q_ o>
to o ’EG ^ to g
o V-
H LD ZJ "O to
o O
TJ ^
X
0)
O
G
tn
yj
O CM CO N" LT3 t0 h-
c o c c c c c c
Q
CO
a? <13 tu Q_
Oiu-t-
>,>, >.jb «
0)
c: ® E g S 03 Qi
g
°
o ^ o O O
^ ttJ
~o -S3
c E
03
e X o
X <£> E i
G ^ x ■a 'O 'O 'O g o o o >^-Q §iE tj 5 ® 2 ® to to 03 G E
~6 & 03 LU 5 -S <u o 03 <o
J- O O (/)
"© !y ’2 'o !u ’2 !&>
40 to G to to to to "to Z CO Q I o to to to t P «J o Cl
03 03^ _| _ *2 S3
0*0 ttg.' a) a>
>,.y
"G —1: to
O
Q
-Q
JD -8s 1
G sz
X g>
c LLi OQQOQQOQ o * . * D
to to to -p Qtua^^
%_ ^ T" «—
k_ 3 "2 -S ^ ~Q X3 -O G to c "D O "o X ®
><'g
ra
G Z
o
aaaa-aaaa
a Of! CJ) Ql ni (ICCDCt/)
Q> Q) 03 i= to to to
to 03
^ ■■ 03 C
q ^ < ns to <U Q
'03 _ CG
X3 e «
c CO
-t-11
nJ c to
03
■Q
I
G __
-C OJ ©
g g o g g g o g a tr CE CL g Q Q Q ni 0) tO — 5 nj 03
0) rr rt CO >•-§ 05 8 *o -o o
k_
111
40 Q
a? or 03 Ui © © © © '© '© © CD tO <0 <0 to 03 03 03 03 Q Q anjfijco 03 + ■* 3 k .§ ti to nj
X X to X QC x x x xx x x x
__________
c c
e S-E-EXXXXXSOXZxclcl CQ O O 8 c<Q a I
OOOOOOOO GOCOOQCOOOCOOOCO CM CM CM CM CM
T— 1— T“ t^- “V— T— T—
CO
o t— rv-h^r^-ir^-F^-h^h-h-' tO 03030101C33C3C3>0^ ^ o Q G G G
-.1
-h
m
1
CM cococococococococo ^ cocococococococooo h^.v
■
ha-j‘
ui-!
!« I
< f!*!1
o X
o
Bi» S o "G’G'a"Q"QX3T3'D'0 "Q "Q "G "Q -Q T3 TJ ID -O
c
u
0J
c5
XJ o T3T3TJTJX3_0"Q'0_0
GGGGcOcOGGG
"O T3 "O TD TD TJ "D TD
g ns co co CO G G G G
X
o X
E Og CC-J<qO< -J O M O LU __ h- O IN O
LU x Q isjOuj ?=
© X X_j<<S h-^< 50ZNZQ.Q.0.5 O <OZNZXXX^ UJOZNZ1
a CCddCCOWOQ z
LU
73-0-3-J-Z?"3“0"5^ CL. OOOOOOOOO X XX X X X
o <
.g> ID LLNlLNLLNGN CO<CM<£MCM<OJ<! <3> QU^O^crUifO 03 00 o 00 O o
O O DDOULD
TJ LL OOt— r M CO CO W UQQOOUJLDLDU- UI O Q Q U U ID ID LL LL
■O z
LD
O D
O
LU
if) $
LU m .
§|
a a 'Q 03 XZ G
Cl kT
O o 03 O “D Q c G to 03
v*
k* o 8
0)
o
>
5* 03
C o -
.E X O 0)
X C
fIS G E ° TJ TJ
G ■g G O G G GQ CL G TJ -O G O G G G G
U ffl E “O O G '« 03 G "a £ o Jn TJ TJ 0? 03
< O © G G m 03 EX O 03 £ G -jz o o
OJ 'd tz C G <
O ’D < o TJ C O o ° G G a c 03 G ::]
O o o O m 03 OS G O -=r G G to x X 03 gi X I-:-.
© X Q ea
,2
03
03
“O N
kJ
_G JO © cr
o 03
Vn_ 2 03
5 <U -r;
LD
D
03
G G
G
03
>- 2
O ^
G TD -gs
Q
G G c
OJ —
o «
■°
—
G
Q> * ^ >, G G
G Q Q Q G G .
_jz l: cii; 03 ~Q)
c
03
E o
Q
03
k_
E I
_N <U G OS ai tO CL X 05
_ C —I ID
G c b t/D G
DC G G TJ CO G r 03 03 G re ® O Q G
c JO' G LD E G G TJ t/3 G 03 G G G G G c G
a> jn
.
o < < CO G O G g re OS ^x G G G G G G G G G o G ^ Q
x> LC & ° G
G O G G
O k-_ G "O £= JG C 03 r: a? 03 . C C C C c c C C C 0 Q
^ a Q G "nH L—d G G 03
TJ >*, JO. o
G X
■k_ □
<a c < O f^GGGGGGG « OJ D D J J O G D D 03 >,
T+ G G 03 Qj G 03 k_ k_ i_ t_. i C
Q G Q
. Q G
Xi'cT} 03■ di tL ^ £ « G
C fl? C S3
Q TJ to JD & JD JD JD -Q jQ to C G
;Q ■a © © © © 03 c
“ ‘m
TJ T3 "D TJ TJ TJ TJ acc
o TJ "D "O TJ TJ TJ TJ
< S3
tO
3
U3
G
G
3 ZJ S3
G G G W G t/3 o O
.E G G G
O
Q_
G X X X X
E _Q ^ c X
I— tn G G G G G G G G Q G G G G G G G G G z G L/3
® 03 03 G a> ©
k.
fc-r.
nj
Q_
CO
<
"© "© "© "©
rQ_ —
^ B LO o G G G G G G G ns g g <
O3QO3GO3G030303
X
o
t= O C= tz t= c
O p- nj z I- 03 03 03 W 03 a> 03 S Q Q3
<0 E rs (U to CO
^ £ S fc C3> pD EEEEEEEEE G Q Q O^
-*—1 —1 -f—■
O
-*—*
Q
-J—1
03 Q □ o o Q O - —. Q G I < ~G G G G G G G G GGGGGGGGG LD © © 03 G 0> 03
Q o XXX XOL O X co tfs c/^ co to co to to CO CO CO^ X X X X X X X X
LX! B, 30 00 ('i
_,-v
Antes de Despues de
Ilamados asf porque no se incluye en la instruccion instrucclbn instruceibn
el lugardonde se encuentrael operando, sinoque se Fia.848
us a el contenido de una pare] a de registros para
senalar la direccion en la cual se encuentra
almacenado. Lo anterior se consigue usando dos formas
distintas de direccionamiento: directo e indirecto.
Lasinstruccionesde movimientoinmediato, cuyo
formato generico es: MVI r,data, cargan el byte El direccionamiento indirecto, usado por las
especificado despues de la coma (data) enelregistro instrucciones del tipo STAX y LDAX, se sirve de
que aparece antes de ell a (r). Por ejemplo MVI B,5C un par de registros auxiliares (BC o DE) para in dicar
carga elregistro C con el byte 5C (01011100). la posicion de memoria en la cual se guardaran o
desde la cual se tomaran los datos.
Un caso particular Io constituye la instruccion
MVIM,data, mediante la cualpuede ser cargado un El direccionamiento directo es usado por las
dato en forma inmediata en una posicion de memoria, instrucciones ST A, LDA, SHLD y LHLD, las
especificada por el contenido del registro HL, tal cuales toman la direccion del dato a procesar
como lo indica la figura 847. directamente del operando de la instruccion.
Las instrucciones de carga extendida inmediata, Las mas significativas instrucciones de carga y
LXI rp,data, pueden cargar datos de 16 bits en los almacenamiento se ilustran en la figura 849.
registros pares del microprocesador, incluido el
apuntador de la pila (SP). Sus caracteristicas se La instruccion de transferencia XCHG intercam-
ilustran en la figura 848. Por ejemplo LXI B,7A34 bia el contenido de los registros DE y HL, tal como
carga el registro B con 7 A y el registro C con 34. se muestra en la figura 850.
570
Instrucciones cfe carga y almacenamiento (load and store)
Mamoris de dates Memoria da dates Memoris da dates
(?7)Hx
(7?)Hx (??}Hx
(??)Hx (7?)Hx
Instruction
(??)Hx (?7)Hx
w.v.v
Instnice id n
Reg istros
B C
(4 0)Hx (52)Hx
Acumufador Acumulador
Acumulador Acumulador
(?7)Hx L fi (50)Hx
VViVAViVf'a'VyVV^
1 11
"i ‘ * ' ‘i ‘ r i !i ■ i ‘ i1111 pi "4'»s
Antes de la insiruccidn Despuds de la instruction 4
S:
Ames de Is insiruccion Despues da la jnsiruccibn
sj
Memories da dates Memoria de dates Memoria de dates !
4060
77 4061
(70) Hx 4062
(5Q)Hx 40-63
99 4064
instruction 77 4065
Instruction
SHLD 4062 Hx
...i..-i->
LHLD 3052 Hx (wMwmOSMMWMivvm.
p
■■■■
Antes de la insiruccibn Despues de la instruction Antes de la instruccidn Despubs de la instruccibn §:
I
Fig. 349
tern : : : : : : j .» S £ S !■!: * ^ li !! !! !! ., : : * s;
Registro B
I
|
Bit de Acarreo
1
Resultado en
acumulador ft
ik
t
Bit de acarreo
1
i
generado Fig. 851
572
Se usa direccionamiento inmediato en las
instrucciones SUI data y SB 1 data, las cualesrestan
el valor de su operando (data) del contenido del
acumulador.
A1 igual que las instrucciones aritmeticas, las Las instrucciones de rotacion, como su nombre lo
instrucciones logicas del 8085 permiten realizar indica, permiten “hacer girar” los bits del
operaciones entre los registros de ocho bits, acumulador, es decir, desplazar internamente dichos
posiciones de memoria (definidas por HL) o el bits a derecha (RRC) o izquierda (RLC).
propio operando dc la instruccion, y el acumulador.
En estas rotaciones puede ser incluido el bit de
Entre estas operaciones se incluyen el producto acarreo (CY) como un noveno bit del acumulador
logico (AND), la suma logica (OR) y la OR exclusiva (RAR y RAL).
(XOR), asi como la comparacion binaria.
La forma como se hacen rotar los bits en cada una
En las instrucciones logicas y de comparacion se de las instrucciones se observa en la figura 855.
utilizan tambien tres modos de direccionamiento:
por registro (ANA r, ORA r. XRA r y CMP r), Existen cuatro instrucciones “especiales” en el
indirecto (ANA M, ORA M, XRA M y CMP M) e 8085, encargadas de realizar operaciones tales
inmediato (ANI data, ORI data, XRI data y CPI complementar (negar) el contenido del acumulador
data). (CMA), establecer la bandera de acarreo en uno
(STC), complementar la banderade acarreo (CMC)
Dos instrucciones logicas significativas se ilu strati y ajustar los ocho bits del acumulador (DA A) al
en la figura 854. formato de dos dfgitos decimales (BCD).
Cur so prdctico de circmlos digitalcs y truer oproccsa dor cs
573
Instrucciones para la rotacion de los bits del acumulador
Acumulador Acumulador CY
rqrrppr ^R*
l ■■■■■■ j hli ■■■ ■ ■■ *■»„*.».*.*■*.>.* i i i i i ■ ■ i i i i i
I _ i _ r_ _ . . . . . . ^ , g i a i i a. t. j. a- ^ ^
*.
4*4* V
.'■5
lS •-
RAL (Rotaddn a la izquierda con acumulador) RAR (Rotacion a la derecha con acumulador)
Acumulador Acumulador CY
CY ! .a i ■ ii i ■■ ■ ■ r r r rk Mil ill ill lil ■ ■ ebb ■ E a E a E E E a B a a a a.BE'llllllllllllllll“lljl
' ‘1 * l! *11 j1 t-,'|r»-r‘ r|-rt-rt-r|-'-'“r-l-~-» >;■»>>>>X ■ ■ i ■ > X ■ I ■ X ■ i8 !.■ j X-X ■ i ■ j i ■ i ■. *, ■
yj»
:i|»l
3
6
Fig. 85S
..fess. jMMM EBuliXulululklu m. ■!■!■!■!■!■!■?■!■!■!
Fig.860
La instruction RIM carga !os dates en el acumulador relaciondndolos con La ejecucibn de la instruccibn SIM utilize el contenido del acumulador (el
las interruption's y con los dates do entrada on serie. Estos datos cual ha sido cargado previamente) para realizar las siguientes funciones:
contienen la siguiente information:
H3
‘ Programar la mascaritla de interruption para las tnterrrupciones de
‘ El estado actual de la mascarilla de intertuptibn para las imerrupciones Hardware RST 5.5, 6.5 y 7.5
inhabilitadas siguiendo inmediatamente a una interruptibn TRAP, m
* Restaurar el seguro entrada disparado por la punta RST 7.5
* Estado de la oandera actual de habitation de imerrupciones [1 =
imerrupciones inhabilitadas) siguiendo inmediatamente a una interruptibn * Cargar el seguro de salida
TRAP.
;■>
Pa^a programar I as mascatillas de interruption, prime re se col oca el bit 3
* Las imerrupciones de Hardware pendienies {por ejemplo, senates del acumulador en 1 y se colocan en 1 todos los bits 0, 1 y 2, lo cual
recibidas, poro todavfa no servidas), en las Ifneas de RST 5.6, 6 5 y 7.5 ,.
inhabilita las interrupciones RST 5.5, 6.5 y 7.5, respectivamente,
Posteriorrrente, hagase una instruccibn SIM. Si el bits del acumulador es 0
* Dates de entrada en serie cuando la instruccibn SIM se ejecute, no cambiara el registro de la
mascarilla de interruptibn. Si el bit 4 del acumulador es 1 cuando se
Inmediatamente de spues de una interruption TRAP, debe ser ejecutada ejecute =a instruction SIM, el seguro RST 7.5 se restaura. El RST 7,5 se
I
una nueva instruction RIM, como parte de la rutina de servicio. Despubs es distingue por el hecho de que su seguro esti siempre colocado por el file m■ - »■.
necesarlo consular e! estado actual de imerrupciones. El bit 3 del de subida en la pata de entrada RST 7.5P aun si el brinco a la rutina de i
acumulador es sblo en este caso cargado con la bandera de estado de servicio es inhibido por la mascarilla- Este seguro permanece ALTO hasta
habilitacion de interruptions (IE) que existia antes de la interruption que se blanquea por un RESET IN, por una instruction SIM con el bit 4 de! I
TRAP. Siguiendo a una interruptibn RST 5.5, 6.5, 7.5 o INTR, la bandera de acumulador ALTO, o por un reconotimiento interno del procesador a una
interruptibn tipo MVB refleja el estado actual de la habilitacion de la
interrupcibn. El bit 6 del acumulador {17,5) es cargado con el estado del
interruptibn RST 7,5 seguida de la remotibn de la mascanlla (por meaio de |I
una instructibn SIM). La serial RESET IN siempre coloca los 3 bits de la
MVB 7,5, el cual estei colocado siempre por una entrada en la Imea de mascarilla RST. I
entrada RST 7.5, aun cuando la interruption haya sido enmascarada i
previameme. (Vease la instructibn SIM), Ss el bit 6 de! acumulador en el nivel 1 cuando se ejecuta la instruccibn
SIM, eJ estado del bit 7 del acumulador se carga en la salida SOD y m
entonces se vuelve bisponible para hacer interfaz con un disposirivo i
Codigo da operation: externo. El seguro SOD no es atectado por la instruction SIM si el bit 6 es ii
0. EISOD es restaurado siempre por una serai RESET IN.
0 0 1 1 0
0
7
0 1
Cddjgo de operation:
1 0 0 0
o
0
i!:■:!
7 6 5 4 3 2 1 0 ”l
Acumulador despuds do RIM
7 a 5 4 3 2 1 0
SID 17.5 16.5 15.5 IE M7.5 M6 5 M5.5
_Banderas de habifrtacibn
Mascanlla RST 5,5
de interruption
E- Mascarilla RST 6,5
Macar il la de interruptibn
Mascarilla RST 7.5
Interrupciones pendtentes HabNitacidn de la colocacibn de m.ascariiia
Datos de entrada en sene — MBV de restauracidn RST 7,5
- Endefifiido
-* Habilitatibn SOD
Cicios: 1 —__Datos de salida en sene
Estados: 4
Banderas: Ninguna Cicios: 1
Estados: 4
Banderas: Ninguna Fig. 862
fc. i w 'M ; ■ :■ ; ...iSWiWSj
Las directivas se escriben de acuerdo con las mis- En cuyo caso las instrucciones:
mas convenciones de formato que las instrucciones
ejecutables (etiqueta, opcode, operandos y LDA ALFA
comentarios). LDA BETA
LDA Q9A7H
Las directivas del ensamblador se pueden clasi-
ficar en cuatro grupos principales, con las siguientes Son todas equivalentes. El pseudo opcode SET se
funciones: utiliza para asignar un valor temporal a una variable.
Por ejemplo
1. Definition de simbolos.
2. Asignacion de memoria. PI SET 3142
3. Estructuration del programa.
4. Miscelaneas de formato y tareas de control Asigna el valor 3142 a la variable PL Esta
similares. asignacion se puede cambiar posteriormente con
otra directiva SET, tal como
En la figura 864 se muestran las principales
directivas utilizadas en el lenguaje del 8085, PI SET 1851
agrupadas segun la clasificacion anterior.
A partir de esta directiva, el smibolo PI sera
reemplazado por el valor 1851 cada vez que se
encuentre en una instruction del programa.
Directivas de ensamblador 8085
Ademas de traducir los simbolos a sus valores
Tipo Cadpp Oirictiva
numericos, el ensamblador (programa o usuario)
Definirifri de
simbafcis
EQU
SET
Haoe aquivalenites nembres timbal Icos nuevet y vieijot
Asigna nuevos valores an&mbros sim bailees.
debe encargarse de determinar las posiciones de
As ignatibn de org Origin. Asigna la direcc in iiidal a una teotiin da programa.
memoria donde se handealmacenarlas instrucciones
memona DS 0cfirur byte. Define una. sceuontia do constantes da datos de
ilpe byte. ejecutables y los datos usados por el programa.
M Definir palabra. Define una ■seeuentiade constants da bpo
pal abra (16 bi«).
DS Definir almacerLam ipnto. Reserve positions? de slm.jc«rwniente>
consacudvufi para un numero Bspedhoaco de bytes Las pseudo-instrucciones para asignacion de
Estructwadin MACRO Irwaa ladefiniciiin de una macro. memoria cumplen justamente esta mision. La
del progma ENDM Tecmina la definition de una rflaefo.
directiva ORG indica la position de memoria a
M'scel^r.ess INCLUDE Insurut un programa eseternd como parte den obdigu ob.elo.
partir de la cual se almacenara el codigo objeto del
programa. Asf, la instruction
Fig. 864
ORG 0000H
Un requisito. basico de cualquier lenguaje significa “la direction de initio del programa listado
ensamblador es es dar al programador la posibilidad a continuation es 0000H”.
de definir nombres simbolieos arbitrarios para las
variables (datos y direcciones) y sus valores. Es decir, en la position OOOOH se encontrara el
primer codigo de operation valido del programa o
El primer grupo de directrices ensambladoras subrutina en cuestion.
cumple precisamente con esa funcion. Entre ellas se
encuentra la pseudo instruction EQU. El principal Cuando lo que deseamos es asignar valores
objctivo de EQU es hacer equivalentes dos nombres constantes a posiciones especificas de la memoria,
diferentes que se usan para lo mismo en distintas lasdirectivas DB (definir byte) y DW (definir pal abra)
partes de un programa. Por ejemplo, la directiva: son de gran utilidad.
provoca que el ensamblador asigne el byte AO a la Las directivas MACRO y ENDM (fin de macro)
posicion de memoria DIRE y el byte 06 a la posicion son necesarias para que el ensamblador reconozca el
de memoria DIRE+1. En la memoria se observara principio y final, respectivamente, del bloque de
entonces lo siguiente: instrucciones que definen la macro.
Como vera, es mucho mas facil dar un nombre a Si llcgando a estc pun to dc la Icccidn usted aun licnc la
dichas instrucciones y referirnos en adelante a ese sensation dc "estar atascado" en cl conocimiento del lenguaje
nombre, evitando la tarea de escribir nuevamente ensamblador, no sc prcocupc: la prdxima Icccion ticne como
objetivodisiparsusdudas sobrelaulilizacidndclas principales
cada una de ellas. insiruccioncs.
580
Leccion 52
n _Cl
Cl. d a. Q_ 0_ £Lao.aaa:ffCCfl:CCQQQOOGDQQQQQGQDQQOClCiQD
to
TO
o> ra
« o> as
"O 13 tS D15 tJ 13 Q *3 £ i
<
n> ? * as
"9 "9 "9 "9 "9 "9 "9
co ai as to to to as 5to CQ° CD
T1 * *
to S ^
CO
o
CO X X Q >
ON UJ O < <
CC 5
z £ t i i e i i
OO
-S CL
ZZCLQ.D.N I I I 1 I I O D i= J£ X>S
t CO CO i
Comparacion entre los conjuntos de instrucciones del 8085 y el Z80
a
(A
a. a_ Q.
52 T3 -h «
♦ ■BP *2
x> + "O X "D t) +
T> U, =J X X
o
+ O' >s .
£ ix « Xf *D « TO "U TO TO
TO TO 3 2 + < X . ,
CL
-o N UJ o a> >s LL UJ ST US
s £ JO "8 O Cl CL O. N -s as x £ £ 9- S’
vi
‘o <a«« e< e
CO
N
Q O 0 , , .- --
11 rr
ZZZXI?Z_<<<<<<<<<0&>fLCL£L[LQ-D-Q-Q-<LiJUlLUI-UUJ
<00000 N
z
O
X X X X X <
<<<A1DQ010 0 00000000000000000000000 5o LU 111 inj iij uj l
a X X X X X D D 13 U
X X x ~o XI X X X X
m 2 £ TO TO TO TO TO TO TO TO TO Is? 2 £ £“ a
XCHG
to
XTHL
0 < < d _ O rsi UJ O O _ (L CL < < CC CC X
HIT
to
INR
< O S z z CL CL CL N Scl55 S < O O O
< < 0000000000000 OOOOO | J 0 : uj
Cl Cl
UJ to
o X X
O * j<r
= ^ o TO +
US
0 eg e ?li
£ tj w . X TO
i «
^ <5 X □? ><
—1 Qj >i Q.
O-
£ ■§ S C-aa
r. ^3 |fe_ V
01 ffl 9 On uj O ■ - ^ i -J
GO
O 2zz CL cl cl E -o S£*<" < <" < —I
X < < < < x x >' -S
N
x < < x
_H tU/)<<hhO^!-^l-hhOhhOO LL CD CD . CE EC OOOOOQOQOOOOQ
Cd3nODJHllJlil~JUJliJliJlJJUJUJlIWlUCQ£DDQQDODDUJOOXQQOQQQDQQDQQZ
OOOTQ.Q.cc£cci:£Cccc[o:a:cccciriicco:cD(/)jjjjtow(/)Qxxiu<<<<<<<<<<<<<
i l. i—
TO 0 0 « - -o 5
t3 ID ^ U XI
■D -n
_
t: — ^ w B ^ * *6 B ^■0,713 iS CO X-'
^ 13 -o 13
TO (0 ' D rt O w X o TO ^
3 L.ai Iwas ™U
CO 01 *-
O O
TO TO -Q - to * - - ^ TO CQ ^ X3TO-
-DX^TO-pTOTOTO
TO , TO hq
CL 0 O
TO
Ss 5 -O "8 «
ff ffO" N - uT ^ O “ ^ an -“’SO . N UJ O
TO ' ■—■ -
Ol 03 o>
CO < < < < £ ■§ to o‘ S E Z Z CL CL XI □- N < £ 'OS TO Z CL Z CL CL N < < X CL 03 0) as
N
o oaqoa _r u. _j _j _i _i < q o o
QQQQZZ<<<O.OEL<<<<CL<<<QtULU_
<<<<<<UOOOOOOOOOOOOO<QOO
_< O O
2 2 cl cl cl cl gl cl q. d_ q_ oqooooqO
TO
•*- mi TO
to »- 1- T3
O - -
TO O)^ S
TO £ -
o o O i_ i_ i_ X a
■ o> O)
< !«s’! of 111
X>i_fc_1^fc_XlTOTOTO «1 111 111
i_ TO TO TO TO Xl TO TO w £ b
3TO 3TO 0
CD 1 CL TO TO S1
u*>
co
X o
<OQlOisj
_ O O _ <-J uj^O CC X < < _J — CL
£ O N UJ O
OOOOZZ<OS SS^ZZtUXClCL
<<<<<<000 0000000000 O O Q O O Ui
N< < O O _ _ c X f.
z z S> S Z CL z CL CL N O O X 700 >o
"** “> "J “J ”>
582
SPHL LD SP.HL complicado y que es mas sencillo empezar
LD SP> xy directamente con la codificacion del programa,
LD xy, data 16
LD xy, (addr) saltando las etapas precedences de diseno. Pero la
LD (xy + disp), data experiencia ha demostrado ampliamente que solo
LD (xy + disp), reg
LDD un enfoque metodico y ordenado de los problemas
-- LDDR de programacidn puede dar como resultado
LD!
__
LDIR programas eflcientes y libres de errores.
-- NEG ill:
NOP NOP
OR! data ORI data
ORA M OR (HI) Trabajando con el sistema Micro Cekit I
ORA reg OR reg
—
OR (xy + disp)
—
--
OTDR Antes de entrar directamente en el diseno de
OTIR
-- OUT (C), reg programas es necesario conocer el sistema de
OUT port OUT (port). A y computadoren el cual los ejecutaremos. Con este fin
— OUTD
-- OUT1 jiii se ha construido a lo largo de los proyectos centrales
POP pr POP pr el sistema Micro Cekit I, disenado especialmente
—
POP xy
PUSH pr PUSH pr para fines diddcticos.
-- PUSH xy
— RES b, (HL)
-- RES b, reg El MicroCekit I es un computador muy sencillo,
RET
RES b, (xy + disp) y de bajo costo, que usted mismo puede construir y
RET
RC RET C operar aplicando los conocimientos adquiridos en la
RM RET M leccion numero 50, y siguiendo las instrucciones
RNC RET NC
RN2 RET NZ dadas en las cuatro partes del proyecto central 25.
RP RET P
RPE RET PE
RPO RET PO A1 construir el MicroCekit I, usted tendra la
R2 RET Z oportunidadde aplicardirectamente lo aprendidoen
-- RET!
— RETN el presente curso sobre la arquitectura de los
-- RL (HL) microprocesadores.
-
Rt reg
-- RL (xy + disp)
RAL RLA A partir de este momento supondremos que usted
:-j
Programas aritmeticos
584
(overflow). Para simplificar nuestro programa, vamos
a suponer que ningtin resultado superard el rango
indicado y, por lo tan to, podremos despreciar la
condicidn de sobreflujo,
1. El tipo de datos con los cuales se trabaja. En el diagrama de flujo de la figura 867b se ha
2. Donde se encuentran los datos a procesar incluido en forma detallada cada uno de los pasos
3. En que sitio se almacenara el resultado. mencionados. Llegados a este punto, podemos
4. El almacenamiento intermedio utilizado durante empezar la codificacion del programa en lenguaje
la ejecucion del programa. ensamblador.
5. Los efectos secundarios producidos por la
ejecucidn del programa. El listado del programa se muestra en la figura
868. Las cuatro primeras h'neas corresponden a las
Ante todo, consideremos cuantos numero s de directivas del ensamblador (ver leccion 51) que nos
ocho bits se pueden representar en complemento de indican los valores que tomaran las etiquetas y la
dos. Si, como lo indicamos en la leccidn 28, el bit 7 direccidn de inicio del cddigo objeto.
de cada byte se utiliza para indicar el signo del
correspondiente numero, sdlo nos quedan siete bits La primera instruccion ejecutable es LDA
disponibles. SUSTRA, que carga en el acumulador el contenido
de laposicion de memoria OOFOH. La segunda Ifnea,
Esto quiere decir que cada byte en complemento CMA, complementa el contenido del acumulador.
de dos puede representar un numero entre el -128 y
el 127 (en decimal). Si el resultado de una operacion El siguiente paso es sumar uno (1) al contenido
sobrepasa este rango se dice que hay un sobreflujo del acumulador, mediante la instruccidn ADI 01H.
CEKTT- Cur so practice de circuitos digtialesy microprocesadores 585
Programa de resta binaria
a. COdigo fuente
* (lustra el uso del complemento de dos *
—H ,
31
32
ED
02
;estado !#
- BO -1
33 0B LOOP DCX B ; decrements contador
K = Constants de retardo Delay * Duracion deseada T = Tiempo que dura el ciclo cada reloj o esfado
Fig, 871
Sin embargo, puesto que las instrucciones Luego de inicializar la pila, se carga el primer
adicionales se encuentran fuera del bucle principal, dato de salida en el acumulador, en este caso 01H
se ejecutaran una sola vez y no tendran mayor (0000 0001 en binario). Lo cual quiere decir que el
injerencia en la duracion de la rutina. primer LED que se enciende es aquel conectado al
590
Programa de demostracion del uso de los puertos de entrada/salida
ORG OOQOH
ORG 004GH
TIEMPO MVI B(60H ; Cargar contador externo
LOOP1 MVI Ch0FFH ;Cargar contador interno
LOOP2 DCR c ;Decrementa contador interno
JNZ LOOP2 ;Nuevo ciclo interne
DCR B ;Decrementa contador ex tern o
JNZ LOOP 1 ;Nuevo ciclo externo
RET ;Regresa al programa principal
Posicion
Codigo objeto inicial del SP
0040 06 60
0042 0E FF
0044 0D
0045 C2 4400
0048 05
0049 C2 4200
004C C9
m
:::j
A
Fig. 873
pin 0 del puerto A, al ejecutarse por primera vez la encender el LED se llama a una subrutina de retardo
instruction OUT 01. Inmediatamente despues de (TIEMPO), que explicaremos mas adelante.
CEKfT- Curso practice de circuitos digiiales y microproccsadores 591
El objetivo del retardo es mantener encendido el Cada juego es una secuencia de ocho combina-
LED el tiempo suficiente para ser captado por el ojo ciones y puede ser elegido mediante cuatro
humano. El siguien te paso, en el programa principal, interruptores DIP conectados al puerto B (ver Figura
es rotar los bits del acumulador una posicion hacia 18, proyecto central 26).
la izquierda, mediante la instruccion RAL.
Para comprender la formation de la palabra de
De esta forma el acumulador contendrdel numero control necesaria para programar el puerto A como
02H (0000 0010 en binario). salida y el puerto B coma entrada, puede remitirse a
la lection 49 (pgg 53 ).
En otras palabras, el proximo LED a encender
sera aquel conectado al pin 1 del puerto A, Elio El programa completo, con sus diagramas de
ocurrira en el momento en que la instruccion JMP flujo y subrutinas, se muestra en la figura 874. Si
LED devuelva el flujo del programa a la instruccion examinadetenidamente el codigo objeto ylocompara
OUT 01, junto a la etiqueta LED (posicidn de con el proporcionado en el proyecto central 26,
memoria 09H, en el codigo objeto). seguramente encontrara algunasdiferencias. Enesta
seccidn explicaremos la razon de tales cambios.
Observara que en este programa no aparece la ya
familiar instruccidn HLT, que ha dejado de ser El programa principal, empieza por inicializar el
necesaria puesto que la instruccion JMP bifurca apuntadorde la pila y programar los puertos A y B.
siempre, en forma incondicional, haciendo que el Seguidamente, se lee el puerto B mediante la
programa continue en un ciclo infintto, sacando por instruccion IN 02. El estado de cada bit se copia en
puerto, esperando y rotando el dato del acumulador. el acumulador.
Recuerde que la instruccion RAL provoca que el Mediante la instruccion ANIOFH se aplica una
bit que “sale” por el lado izquierdo (bit 7) del mascara de bits al acumulador, con el fin de tomar en
acumulador reaparezca al siguiente ciclo por el lado cuenta solo el estado de los cuatro bits menos
derecho (bit 0). significativos (B3...B0), donde estan conectados los
interruptores, y despreciar los restantes bits,
Examinemosahorala subrutinade tiempo. Como
puede observarse en la figura 874c, el metodo Hecha la limpieza en el dato de entrada, se
utilizado consiste en “anidar” un bucle dentro de procede a calcular la direccion de inicio del juego de
otro. El bucle externo es controlado por el registro luces elegido mediante los interruptores. Para esto,
B, mientras el bucle interno se controla mediante el las tres instrucciones RLC multiplican por ocho el
registro C. eontenido del acumulador. Posteriormente, la
instruccion ADI 60H desplaza el valor obtenido 96
El numero de iteraciones del bucle interno es, en posiciones hacia adelante.
este caso, 256 (FFH), mientras el bucle externo se
repite 96 veces (60H). Si usted desea calcular el Aquf encontramos la primera diferencia con el
tiempo consumido por la rutina, tenga en cuenta los codigo suministrado en el proyecto central, en el que
siguientes pasos: se sumaba 40H al eontenido del acumulador (un
desplazamiento de 64 posiciones). La razon de ello
1. Calculeel tiempo consumido por las instrucciones es que hemos reubicado el codigo objeto de las
pertenecientes al bucle interno y multipliquelo rutinas utilizadas por el programa, con el fin de
por el valor cargado en el registro C (en decimal). haeerlasmas transportables y dejar espacio suficiente
entre ellas.
2. Al resultado obtenido, sumele el tiempo
consumido por las instrucciones pertenecientes Al aumentar el desplazamiento de la tabla de
al bucle externo (y solo a este) y multiplique el efectos, evitamos que sus datos se escriban sobre las
total por el valor del contador externo (reg. B). instrucciones del programa. La tabla de efectos
quedara ubicada entre las posiciones 60H y DFIT.
Con el metodo descrito, obtendra una muy buena
aproximacion del tiempo consumido porlasubrutina, Calculada la direccion de inicio del efecto
suficiente para la mayorfa de las aplicaciones. deseado, se llama la subrutina BARRER, encargada
de tomar los datos de memoria y enviarlos, uno por
Examinemos ahora el segundo programa del uno, al puerto A, con una velocidad adecuada.
proyecto central 26, cuyo objetivo es visualizar
dieciseis diferentes juegos de luces, cargados en Al regresarde la subrutinade barrido,el programa
memoria. bifurca incondicionalmente hacia atras para examinar
592
1
Juego de luces programable para el MicroCekit I
I
a. Diagramas de flujo
Inicializar sistema
Salvar registros Salvar registros 1
1
r I *
Leer Dip-Switch
i Establecer apuntador
1
Cargar reg. B j
Calcufar direccion
de inicio
. i" £
Cargar contador Cargar reg, C
Baiter tabia
de datos
y
Leer byte de la tabia
5
Decrementar C
)
*
Sacar por puerto
No
—i—
Temporizar
I
Decrementar B
Incrementar apuntador
Decrementar contador No
Recuperar registros
5?
Reeuperar registros
—r
Fig. 874 L-J
de nuevo los interruptores y calcular la direccion de La subrutina BARRER toma el valor calculado
inicio del efecto deseado. Este ciclo se repite en el programa principal como su parametro de
indefinidamente, permitiendo cambiar el efecto entrada, a traves del acumulador, y lo carga en el
en plena ejecucion del programa. registro par HL.
CEKff- Cur so prdctico de circuitos digitales y microprocesadores 593
b. LIstado completo del programa
!•
Programa Principal 14
[>:
LXI 3P,00FFH ;lnieializar SP 0000 31 FF00
MVI A.ODH ;Programar puertos 0003 3E 0D 1
OUT 00 0005 D3 00 I
CICLO IN 02 ;Leer Dip-Switch 0007 DB 02 1
ANI OFH ;Calcu!ar directon de inicio: 0009 E6 OF |
RLO ; Muitipficar por 8 OOOB 07 1
RLC ; mediante tres OOOC 07 1
RLC ; rotadones sucesivas OOOD 07
ADI 60H ;Sumarle 60H (96 decimal) OOOE C6 60 |
CALL BARRER ;Barrer tabla de datos 0010 CD 2000 |
JR CICLO ;Un nuevo ciclo 0013 F2 0700 jj
Rutina de Barrido
ORG 0020H 1
ft
i
ORG 0040H 1;
h.-
De esta forma, HL puede ser usado en adelante El registro B, por su parte, se carga con el valor
como un apuntador, para direccionar en forma 08H con el fin de actuar como contador en el bucle.
indirecta cada ano de los ocho datos del efecto En cada iteracion de este ultimo, se carga el byte
indicado. semtlado por el registro HL y se lleva al puerto A,
594
despues de complementarlo para adaptar sus estados ser resueltos fdcilmente, mediante la simple
ldgicos a los requerimientos de la interface; inspeccidn del listado de instrueciones. Pero no
ocurre asf con aquellos desperfectos que implican
Despuds de visualizar cada byte, la rutina de errores en los procedimientos utilizados por el
barrido llama a la subrutina de tiempo DELAY, e programa. Tales errores son tanto menos probables
incrementa el contenido del apuntador HL, que cuanto mas metodico es el enfoque utilizado durante
senala entonces el siguiente byte de la tabla. A la etapa de diseno.
continuacion se actualiza el contador B.
Resulta muchas veces contraproducente realizar
Luego de ocho iteraciones, el contenido del correcciones “sobre la marcha" cuando un programa
registro se hace cero, activando la bandera Z del no funciona correctamente. Puede suceder que las
registro de estado. La rutina continua hasta la correcciones alteren de tal modo el programa original
instruccidn RET, donde el control regresa al que resulten creando nuevos problemas.
programa principal.
Para evitarlo es necesario proceder con calma en
El funcionamiento de la rutina de tiempo es el proceso de depuracidn y anotar detalladamente
iddntico al explicado anteriormente, con la sencilla cada cambio realizado.
adicidn de las instrueciones PUSH B y POP B al
principio y final de la rutina, respectivamente, para Una herramienta fundamental en el proceso de
evitar que se afecte el registro B, usado como contador depuracidn es la documentacion del programa. Ella
en la rutina B ARRER. puede tomar la forma tanto de comentarios que
aelaran cada una de las instrueciones o rutinas del
Vamos a considerar un ultimo programa programa como de notas adicionales en las que se
perteneciente a los proyectos centrales de esta explique la funcidn del programa, los sfmbolos
enciclopedia. Se trata del control de motores paso a utilizados, los datos requeridos y los resultados
paso (PAP), cuya teorfa y manejo se explica en el producidos por las rutinas y por elprogramaprincipal.
proyecto central numero 28.
Adicionalmente es conveniente conservar los
En lafigura 875 se proporcionan los diagramas de diagramas de flujo utilizados durante la fase de
flujo que lepermitiran comprender mej or la operac i6n desarrollo, los borradores del programa original y
del programa, cuyo listado se proporciona en la un listado completo, indicando la fecha de la ultima
pagina 152 de dicho proyecto. modificacion realizada. Todos estos datos seriin de
utilidad cuando se desee ampliar o modificar el
Para ayudarse en la interpretacidn del mencionado programa para adaptarlo a nuevas circunstancias,
programa, esconvenienterecurriralas explicaciones
dadas en la leccion 51 sobre el conjunto de En el caso de los comentarios hechos directamente
instrueciones del 8085. Trate de identificar que en el listado del programa, trate de seguir siempre
instruccidn o instrueciones conresponden a cada las normas siguientes:
bloque de los diagramas de flujo. Este ejercicio le
sera de gran utilidad para comprender los programas 1) No repita el significado del nemdnico. Elio solo
de las prdximas lecciones. ocupa espacio y no supone ninguna ayuda real.
Depuration y documentation de programas 2) Haga los comentarios en forma clara y explfcita.
No u tilice abreviaciones o aerdnimos que no sean
El proceso de desarrollo de un programa no estdndares.
termina cuando se ha llegado a expresarlo en terminos
de un lenguaje de programacidn. Es frecuente que 3) Comen te cada instruccion importante o cuyo
los programas que se ejecutan por primera vez no objetivo no resulte evidente.
funcionen correctamente. Existen multiples razones
para que se presente dicha situacion. 4) No comente lo obvio, Elio sdlo dificulta el
encontrar los puntos importantes.
Recuerde que un unico y pequeno error, tal como
un opcode mal escrito o la supresidn de un operando 5) Coloque siempre el comentario en la lfnea a la
en una instruccion que lo requiera, puede generar un cual se refiere o al comienzo de una secuencia de
mal funcionamiento del programa. instrueciones.
La mayorfa de estos errores o buggs (bichos) 6) Si usted realiza cambios en el programa, actualice
debidos a la escritura incorrecta del codigo pueden tambien sus comentarios.
CEKIT - Carso practice de circuilos dig dales y mlcrop rocesadores 595
Diagramas de flujo para el programs de control de un motor paso a paso
a. Programa principal b. Barrer secuencia de giro c. Subrutina de retardo
Program*! puwloe
1
i
Uarg ar numetd da
paso® * dflrwtn Cargar conflador
do pulsar
7
Scalar saoiwioi*
pera tif gad a
Cargar 01 pirlSO
3 serial ado y
r1
-1
B*rr*r
1
Kl
-■a*
enviarlo
ai puenc
I
Dacrwnartar com.
4* p**oa
Carg* fiiNTHtroda
paso® a izquarda
Recuperar registros
1
Ssfiatar ucuanci*
para el gjro a tztxuws
T
OacreiTianiar com,
d* pesos
Fig. 875
m iiiii
7) Use siempre formas y tdrminos estandar, Las simbolos que utiliza. Pero es muy probable que
variaciones en los nombres asignados a un mismo algun tiempo despuds encuentre que debe dedicar
elemento suelen causar confusion. gran parte del tiempo a interpretar el codigo que
usted mismo escribid, porque ya no recuerda todos
8) Antes de cada seccionosubsecciondel programa, los detalles. Para evitar semejante inconveniente
inserte ladescripcidn de las funciones que cumple solo es necesario llevar una adecuada documen tacion
dicho codigo. de sus programas.
596
Leccion 53
En esta leccion continuaremos explorando otros Que es una interface. En sentido general, una
aspectos relacionados con el tema de las interfaces. interface es una frontera o punto de contacto entre
Con los conocimientos adquiridos en las lecciones dos partes de un sistema. Como se explico en la
48, 51 y 52 estamos ya en capacidad de programar leccion 8, el termino interface se utiliza en electro-
el microcomputador MicroCekit I (ver leccion 50 y nica digital para referirse a la interconexion de dos
proyec to central N9 25) en larealizacion de tareas de dispositivos, circuitos o sistemas, electricamente
interface especiales, por ejemplo la captacion de incompatibles, de modo que entre el los pueda
inform acion desde un teclado. transferirse informacion de manera eficiente.
El tratamiento y programacion de las interfaces En esta leccion nos referiremos a una interface
de entrada/salida es uno de los aspectos mas impor- como el proceso de unir o comunicar un micropro¬
tantes involucrados en el desarrollo de un sistema cesador con un dispositivo de entrada/salida (I/O)
basado en microprocesador. Como en muchos as¬ que lo relaciona con el mundo externo, por ejemplo
pectos del diseno de sistemasdigitales, las interfaces un interruptor, un LED, un display, un teclado, un
implican una fuerte relacion entre el hardware y el joystick, un mouse, una pantalla de video, un disco
software. Estarelacion afecta los costos de desarro¬ duro, un sensor optico, un motor, una lampara in-
llo y de produccion del sistema completo. candescente, un telefono, etc.
Comenzaremos por definir formalmente el con¬ Para conectar un dispositivo I/O a un microcom¬
cepto de interface, delinearemos algunos criterios putador se necesita un circuito de interface. Este
que deben tenerse en cuenta cuando se disena una circuito acopla las caracterfsticas de las senates de
interface, espeeificaremos las funciones que debe entrada/salida con las del bus del sistema, sincroniza
cumplir un circuito de interface, listaremos algunos la velocidad de operacion de la CPU con la de los
dispositivos I/O comunes y los clasificaremos de dispositivos I/O e identifica direcciones con fin el
acuerdo a su velocidad de operacion, establecer el momento oportuno en que cada uno
debe conectarse al bus del sistema.
Tambien ilustraremos ciertas tecnicas sencillas
de interface aplicables a cadacaso. A continuacion, Consideraciones de diseno de interfaces. Existen
examinaremos las caracterfsticas generales de inter¬ basicamente dos problemas relacionados con el
face, tanto a nivel de hardware como de software, de diseno de interfaces de entrada/salida. El primero es
varios dispositivos de entrada/salida sencillos como como interconectar perifericos al microcomputador
CEKfl- Carso practice de circuitos digit ales y microprocesadores cqy
y transferir datos, informacion de estados y senates microprocesador. Estas y otras variaciones dificul-
de control. El segundo es cdmo direccionar disposi- tan el diseno de interfaces y hacen que cada perife-
tivos I/O para que la CPU pueda seleccionar uno en rico presente suspropiosproblemasde interconexion.
particular con el fin de realizar una transferencia.
Funciones de los circuitos de interface. De acuer-
Este ultimo es, simplemente, un problema de do a las consideraciones anteriores, los circuitos de
hardware. La respectiva interface debe evitar con- interface de entrada/salida deben realizar, bdsica-
flic tos en el uso del bus del si sterna. Para facilitar mente, tres funciones:
este direccionamiento por parte de la CPU, a cada
fuente y a cada destino de datos debe asignarsele una 1. Acoplar las caracterfsticas ffsicas y logicas de
direccion unica. De este modo, la seleccion puede las senates de datos empleadas por el dispositivo de
realizarse de forma similar a como se efectua una entrada/salida a las empleadas por el bus del siste-
operacidn de lectura o escritura en memoria. ma. Esto incluye, entre otras operaciones, la conver¬
sion de senates analogas en digitales, y viceversa, y
La interconexion o interface de un dispositivo de la conversion de formato serie, utilizado por varios
entrada/salida con un microprocesador implica una dispositivos I/O, a formato paralelo, utilizado por la
fuerte interaction entre el hardware y el software. mayorfa de microprocesadores, y viceversa.
Bus de
rnrnmmmm Bus de IN A
- y-j-::;:::: :
lllli; drdy I 1
iiiii
. ... mm
11111111
PRDY
Iv!1!'!'! • X*XX*I-X-X
■x*x r*x*
I ■X'X'Aita
.*i\ V*rtVi
Bus de Bus de
I-::-:?:;:-:-:;:-:-:::::
datos Datos
li!
1
datos IIIPIII Datos
■
Puerto
ibM'b Oil
PRDY 8 WSm
#■55: ■
En la figura 883 se ilustra graficamente la se¬ • Generar y chequear paridad (ver leccion 30). En
cuencia de operaciones de un saludo protocolario de este caso, se usa un bit extra que hace que el
salida. En (a), el periferico proporciona al puerto numero de I s en el dato correcto sea par o irnpar,
una senal (PRDY) que indica que esta listo para dependiendo del esquema de paridad adoptado
recibir el dato, En (b) la CPU lee esta serial a traves tanto por el transmisor como por el receptor.
del puerto, en (c) envfa el dato al periferico y en (d)
envia una senal (OUT RDY) que le indica a este * Usar otros codigos de detection y correction de
ultimo que el dato esta disponible o es valido. errores como el LRC (longitudinal redundancy
check: chequeode redundancia longitudinal) y el
Muchos perifericos transfieren datos a intervalos CRC (cyclic redundancy check: chequeo de re¬
regulares de tiempo, es decir sincronicamente. En dundancia cfclica). El estudio de estos metodos
este caso, el unico problema es arrancar el proceso esta fuera del alcance de este curso y su investi¬
de modo que el receptor o el transmisor sepan cual gation se deja como inquietud para el lector.
es el primer dato de entrada o de salida, En algunos
casos, el periferico proporciona una serial de reloj a Interface con dispositivos de alta velocidad. La
partir de la cual el microprocesador obtiene infor¬ interface de microcomputadores con este tipo de
mation de tiempo. dispositivos requiere metodos especiales. La tecni-
ca mas usual es utilizar un controlador de proposito
El mayor problema con los dispositivos de me- especial que transfiera datos directamente entre la
diana velocidad son los errores de transmision. memoria y el dispositivo de entrada/salida. Este
Existen varios metodos para minimizar la ocurren- proceso de denomina acceso directo de memoria o
cia de estos errores, por ejemplo: DMA (Direct Memory Access).
* Muestrear (leer) los datos de entrada en la mitad El controlador de DMA debe forzar a la CPU a
del intervalo de transmision. liberar los buses, proporcionar direcciones y senales
de control a la memoria y transferir los datos. Ini-
* Muestrear cada entrada varias veces y elegir, cialmente, la CPU debe informarle al controlador
mediante circuiterfa logica apropiada, el dato que donde comenzar la transferencia y la cantidad de
mas se repite en un cierto numero de muestras. information que debe transferir. Al final de la prdxi
602
ma leccion explicaremos como se realiza este tipo Interruptores
de operacion de entrada/salida.
::::
proporcionar pulsos de control para displays, sumi-
nistrar senales de tiempoparadispositivosque trans- ^rV inti
nes: ::
|-V
Fig. 884
1. Por hardware, utilizando multivibradores
monoestables o one-shots (ver leccion 16).
bargo, en lapractica, cuando un interruptor se accio-
2. Por combination de hardware y software, utili¬ na, los contactos rebotan varias veces antes de
zando un temporizador programable, por ejem¬ unirse o separarse definitivamente. Esto ocasiona
plo el timer de 14 bits incluido en el circuito de que, durante un tiempo, la salida oscile entre los
soporte 8155 (ver leccion 49). niveles alto y bajo varias veces hasta estabilizarse,
como se ilustra en la figura 886(b).
3. Por software, utilizando rutinas de tiempo (ver
leccidn 52).
% '[j!
!|J+
:= !'|i
Tiempo t
fc
1 R
[ PAO
Puerto
de I i
El interruptor
'
entrada a la CPU
(El interruptor
;
: (8085)
se derra se abre Pulsador
H (8155} I
10 m$ b) Real
L Ficj. 888
rig
JW v \J[ Tiempo t
-►
>;!
y«ot6n\N0
‘Cpulsado^
Si
p
!-y
Contador=
contador+1 t*
m
■_V
Rutina de
retardo
(10 ms) 1
PI;
P D P D P D P D
00 3E 0B DB 16 DB 31 ED
01 00 OC 01 17 01 32 02 VSS&M- wjb M fc r*- ;?:B0
m m pt \ ss '* fe fe-a >■ * >■ s b
02 D3 OD E6 18 E6 33 OB aaa l
03 00
nam ■ s#•• asa
0E 01 19 01 34 78 naa st ^ s a a? e nt m i
m b a a-
04 31 OF C2 1A CA 35 B1 i 1 j If ■ P t . t i t;
r far *
05 FF 10 0B IB 16 36 C2 ‘ s ■ •
fil
f: •
' 1 fc A -i <,
i! : r |‘- || if 1
; -jN; j ! l‘J
06 00 11 00 1C 00 37 33 7 i‘ r r- r; ; ; '
i
■" I -
r. 1
7
-
i
: ;;
<,
. 'll 1
; b f ■-5- * f \
07 21 12 34 ID C3 38 00 i.' -v!
*"5355
08 40 13 CD IE, 0B 39 C9
09 00 14 30 IF 00
OA 77 15 00 30 01 |
!".i=7 I
f' * r: ~s
f y“fi
P: Posiciones de memoria
D: Dates e instrucciones
mu i
mj n
: k nun'
-* *, I z L * t ■ ?;•
**t a 3.r
. .- It J-'-Jfc J L- .1 J ij.it
El programa comienza en la posicion 0000H e 'iiJJ . ‘J ;> J -Jzl U J-it- ‘j .r .±z£ t :t * 5 6 '
Krj
Enviar un
0 a una
fila Cddigos de files y columnas
X:
1 Garacter C6digo FICO Garacter Codigo FICO
§ 0 4
0111 0111 1101 0111
I
■ 0111 1011 5 1101 1011
‘-■h
-H
y-
:<
i - 1 0111 1101 6 1101 1101 &
I *
!! + 0111 1110 1101 1110
Validar codigo 1 1011 0111 7 0111 0111 j
de filas y ii!i
columnas 2 1011 1011 8 out ion
■!■!
Convertira iV
Si
«'«■
608
este casoes 10110111. Observe queen estapalabra contenido de la position de memoria (M) definida
solo debe haber dos 0’s. por el registro HL. Esta instruccion afecta las
banderas CY {carry) y Z (cero) asi:
Si, despues de confrontar en la tabla todos los
cbdigos vdlidos con el codigo suministrado por el • CY=0 y Z=1 si A=M.
teclado, el programa encuentraque ninguno de ellos • CY=1 y Z=0 si A<M
se acopla a este ultimo, significaque hay mas de una • CY=0 y Z=0 si A >M
tecla pulsada {roll-over). Como resultado, el proce-
so de busqueda se repite desde el comienzo. Si los dos codigos no coinciden, no se cumple la
condicion de salto exigida por la instruccion JZ
Si, por el contrario, el pro grama encuentra que el CONVER, siendo CONver la direccion donde co¬
cddigo suministrado por las filas y columnas existe mienza el segmento de conversion a ASCII. Como
tambien en la tabla de busqueda, identifica la tecla resultado, se incrementan los registros HL y E
pulsada, realiza la conversion a codigo ASCII utili- (instrucciones INX H e INR E) y se decrementa el
zando una tabla de conversion (ver figura 895), registro D (instruccion DCR D).
almacena este cddigo en la direccion RESUL asigna-
da y detiene el proceso. Si el nuevo contenido de este ultimo es poskivo
(mayor o igual a 0), se cumple la condicion de salto
En la figura 897 se presenta un programa en exigida por la instruccion JP SIGCO, siendo SIGCO la
lenguaje ensamblador 8085 que realiza las funcio- direccion donde se encuentra la instruccion CMPM.
nes de exploracion, enmascaramiento de re bote, Por tan to, el cddigode filas y columnas almacenado
detection de roll-over y codification anteriormente en el acumulador se compara con el segundo codigo
explicadas. Tambien se muestra la codificacidn co- de la tabla, y asi sucesivamente.
rrespondiente en lenguaje de maquina para que
usted pueda correr el programa en su si sterna El proceso se repite hasta que los dos cbdigos
MicroCekit I. coinciden. Cuando esto sucede, la bandera Z se
activa, se cumple la condicion exigida por la instruc¬
Estudie los comentarios que aparecen al frente de tion jz y el programa salta a la direccion CONVER.
cada instruccion para comprender la forma como se Se tnicia entonces el proceso de conversion a AS CII,
hadesarrollado el programa y las tecnicas que se han El registro E contiene ahora un numero que indica la
empleado para resol ver ciertas situ aci ones. Porejem- posicibn relativa de la tecla dentro de la tabla de
plo, el 8085 no dispone de una instruccidn para codigos de filas y columnas TAFICO.
borrar la bandera de carry. Sin embargo, mediante
una instruccion ORA A se puede lograr este efecto Los codigos ASCII de cada caracter estan tam-
sin afectar el contenido del acumulador. bi£n almacenados en una tabla (TASCII) en 16 posi¬
*
ciones consecutivas de memoria, y en el mismo
Observe tambien el metodo que se ha utilizado orden en que aparecen en la tabla tafico. Por tanto,
para convertir el codigo de 8 bitsde filas y columnas el numero almacenado en el registro E indica tam-
(FICO) al codigo ASCII de 8 bits equivalente. Las 16 bidn la posici6n relativa de la tecla dentro de la tabla
posibles combinaciones de codigos vdlidos de filas de codigos ASCII.
y columnas estan almacenadas en forma de una tabla
(tafico) en 16 posiciones consecutivas de memo- El proceso para guardar el c6digo ASCII de la
ria, comenzando en 70H (tecla 0) y terminando en tecla en la posicion RESUL es simple:
7FH (tecla #).
Mediante la instruccion LXI H,TASCII cargamos
La direccion donde comienza esta tabla se alma¬ el registro HL con la direccion donde comienza la
cena en el registro HL (instruccidn LXI H.TAFICO). tabla de codigos ASCII. A continuacion (instruc¬
Los registros D y E se utilizan como contadores. El cion MOV A.E) pasamos al acumulador el contenido
primero (D) se carga inicialmente con OF y opera del registro E y le sumamos este ultimo a la direc¬
como contador descendente. El segundo (E) se car¬ cion de comienzo de la tabla ASCII (instrucciones
ga inicialmente con 00 y opera como contador ADD L y MOV L.A).
ascendente. El codigo de filas y columnas ha sido
previamente almacenado en el registro C. El registro HL contiene ahora la direccion donde
se encuentra el c6digo ASCII de la tecla pulsada.
Este ultimo codigo se pasa del registro C al Mediante una instruccion MOV A,M pasamos este
acumulador (A) y se confrontacon el primer codigo codigo al acumulador y mediante las instrucciones
de la tabla mediante una instruccion CMP M, la cual LXI H.RESUL y MOV M,A lo transferimos a la posi-
compara el contenido del acumulador (A) con el cibn RESUL deseada.
CEKTT - Carso pr&ctico de cirmitos digit ales y mi craprocesadores ggg
Programa de codification de teclado hexadecimal X
;TCLAD 14
;EXPLORA Y DECODIFICA TECLADO HEXADECIMAL
;ENMA5CARA REBOTE Y CONSIDERA ROLLOVER 39 IE MVI E.OOH
;Inicializa contador
3A 00 ;ascendente con 0's
; FILAS C03STECTADAS AL PUERTO A (SALIDA) 3B 16 MVI D,0FH ;Inicializa contador
;FILAS Y COLUMNAS AL PUERTO B (ENTRADA) 3C OF ; de seen den te con OF
;TQPE DE LA PILA EN GOFFH 3D 79 MOV A,C ;C6digo PICO en C
;CODIGO ASCn DE LA TECLA PULSADA EN RESUL (5FH) 3E BE SIGCO: CMP M ;Compara c6digos
3F CA JZ CNVER ;Salta si eddigo en
;RUTINA DE TIEMPO EN DELAY (60H) 40 4B ;C=c6digo de tabla
jTIEMPO DE REBOTE ESPERADO^KTRB (C409H) 41 00 ; actual
; TAB LA DE CODIGOS FI LAS/COLUMN AS EN TAFICO (70H) 42 23 INX H ; Buses sgte* c6digo
;TABLA DE CODIGOS ASCII EN TASCII (80H) 43 1C INR E ;Incr. contador* asc.
44 15 DCR D :Decr contador desc
;REGISTROS USADOS: A, B, C, Ds E, L, SP 45 F2 JP SIGCO ;Repite si faltan
46 3E ;cddigos de tabla
E C ETKL NEMO OPER COMEMARIOS 47 00 ;por confront ar
48 C3 JMP 1MCIO ;Repite proceso si
49 OC ;c6digo en C es in-
RESUL EQU 005FH 4A 00 ;valido (no exists).
TAFICO EQU 0070H 4B 21 CNVER: LXI H,TASCII ;Carga direccion de
TASCO EQU 0080H 4C 80 ;tabla de codigos
KTRB EQU 09C4H 4D 00 ;ASCH
4E 7B MOV A,E ;Carga direccion del
ORG OOOOH 4F 85 ADD L ;caracter ASCII
50 6F MOV L(A ;correspondiente
00 31 TCLAD: LXI SPpOOFFH tlnicializa stack 51 7E MOV A. M ;C6d. ASCII en A
01 FF 52 21 LXI H,RESUL ;Dirccci6n del
02 00 53 5F ;resuhado en HL
03 3E MVI A, 01H ;Carga con 54 00
04 01 ;00000001 55 77 MOV M,A ;Carga resultado
05 D3 OUT 00H ; Puerto A=salida 56 B7 ORA A ; Band era CY-0
06 00 ;y piierto B=entrada 57 76 HALT ; Fin del programa
07 21 LXI H .RESUL ;Carga direccidn del
08 5F ;rcsultado 60 01 DELAY: LXI BtKTRB ;Rutina de retardo.
09 00 61 09 tKTRB=tiempo de -V
Vi
610
Visualizadores
El primero se utiliza para representar los digitos Otro tipo de displays que se utilizan con alguna
decimales del 0 al 9 y el segundo para visualizar frecuencia en los sistemas de microprocesador son
caracteres alfanumericos (letras, numeros y simbolos los visualizadores de grdficas de barras (bar-graph
especiales). displays). Estos dispositivos (figura 900) consisten
CEKIl-Curso practice de circuitos dig it ales y microprocesadores
611
informacion deseada; b)tener la capacidad de
Visual izadores de grdficas de barras corriente suficiente para impulsar cada segmento y
c) limitar esta corriente a un valor seguro.
I
i
La generation de codigos puede hacerse por
software o mediante una combination de hardware
y software. En el primer caso, el microprocesador
M WWVYWl ejecuta un programa que entrega directamente los
patrones de 7 bits requeridos para representar el
caracter. El manejo de los segmento s puede hacerse
mediante amplificadores de corriente (drivers) y la
Fig. 900
limitation de corriente a traves de resistencias.
ft
ft
CPU 1 ft
Interface de displays de siete segmentos. Cuando I
se interconecta un visualizador LED de siete . ,
Visualizador LED
segmentos a un microprocesador, el circuito de R1-R7: Resisiencias limitadoras do corriente
do siete segmentos I
interface debe realizar basicamente tres tareas: a)
suministrar los eddigos necesarios para visualizar la Fig. 902
612
al digito decimal 7), el 7447 produce el codigo (ver figura 212, pagina 128). Por ejemplo, cuando se
abcdefg=0001111. Este ultimo codigo energiza los aplica el codigo 1111, no se ilumina segmento
LED o segmentos a, b y c, provocando que se alguno y el display permanece en bianco. Consulte
iluminen. Los demas segmentos permanecen apa- la leccion 10 para conocer los detalles de conexidn
gados. Como resultado, se visualiza el sfmbolo 7. del decodificador 7447.
,v
ft:
(VSUAL1
I iVISUALIZA CUALQUTER DIGITO DECIMAL (0-9) EN UN |
Leer y
I (DISPLAY DE 7 SEGMENTOS CON DECODIFICADOR
enmascarar ;LINEAS DE SALIDA UT1LIZADAS: A0-A3 ft:
.V.'
, ii(|.
codigo BCD 1 (CODIGO BCD DEL DIGITO EN DIGIT[002GH]
I ;REG COs=RE GISTR O DE COMANDOS [00]
;PORTA=PUKRTO DE SALIDA A [01] &
■\y
I (REGISTROS US ADOS; A, IIL
1
1
CODIGO CODIGO ft?;
OBJETO FUENTE
;-k
Si
PORTA EQU 01H
t
i ORG 00 OOH 1
m |
00 3E VSUALI: MV1 A,01H (Carga A con |j
01 01 (00000001 §!
1 02 D3 OLT REGCO (Define puerto A
ft:: 03 00 (como salida s
tv.'
1
i Fig, 904 |
Codigo BCD bftft":'
1
!;!
0000 = 0 0101 =5
0001 =1 0110 = 6 Se supone que el codigo BCD del digito a
0010=2 0111 =7 visualizar esta almacenado en la parte baja de una
0011 =3 1000 = e losicion de memoria DIGIT previamente definida
0100 =4
m
1001 =9 O020HJ. Si este codigo es invalido, el display no se
_Fig. 903 ; ilumina. Esto ultimo se logra enviando el codigo
I... DCBA=1111 por las h'neas de salida A3A2A1A0.
CEKIT- Curso practice de circuitos dig dales y microprocesadores g-| g
Interface de display sin decodificador Programa de visualizacibn sin decodificador
1
I 1
Puerto A Driver Display
a) Diagrama de flujo
{salida) (74041 £nodo cofnOfi Ij'-S
r
R
i. . a
■K-i
t
/dr*
del
i
8035
i|
in A3 + 5V
tn
ft
'—)/ »
m
vw
I
rrm
12 3 4 5 >
1
■a
*: A no do comOn
p: Punto decimal
R:470 n
Fig, 905
!l!l!l!l!l!l!l!,!l!l!l!l!l!'l'!'Ll!.,l'J.l'J.',vi'l\'iLitLViL\vZ~jLVjj,iViT.T..V.v.i'i'iYi'iYi'i'iYi'i'iVi'iViVi'
Em
m
En la figura 905 se ilustra una forma de conectar w
1
el display anterior al sistema MicroCekit I sin utili-
zar un decodificador extemo. En este caso, el puerto
de salida suministra directamente al driver un
codigo de siete bits que produce en el display la M
im
visualization del caracter deseado. El octavo hit se
puede utilizar para controlar el punto decimal. b) Formato de la palabra de salida (Puerto A) W
p
Afl AS A4 A3 A2 Al AO
0 issgnwnoQFF
debe aplicar un bajo a los segmentos a, b, c, e y f con
X
el En de energizarlos y lograr que se iluminen. Esto P s f e d e b
* i
s s
implica que el microprocesador debe suministrar r' :I‘ is :l! Iii-;!! iti&i&iS?
1: Punto ON / i 1 ; ssgmenlo ON
por el puerto A el codigo A7A6A5A4A3A2A1A0 Cddiga d* 7 segment®*
=01110111. En este caso no se ilumina el punto 1000000-0 O0000O0-8
11110O1-1 0010000-9
decimal (A7=0). Del mismo modo se procede para 0100100-2 0001000-A
visualizar otros sfmbolos. 0110000=3 000001t-B ftt;;
0011001=4 1000110-C m
tl;
0010010=5 0100001-D I---'.1
0000010-6 0QQQMQ-E
En la figura 906(a) se muestra el diagrama de 1111000-7 0OO1110-F Fig. 906
flujo de un pro grama que visualiza digitos hexade¬
cimal es, desde 0 hasta F, utilizando el esquema de
interface de la figura 905. En la figura 906(b) se
especifica el formato de la palabra de salida (puerto Se dispone, por tanto, de unicamente 12 termina-
A). La correspondiente codificacidn en lenguaje les externos de control, en contraste con los 35 que
ensamblador 8085 se presenta en la figura 907. se requerirfan si se utilizara una configuration de
anodo o de catodo comun. Para producir un caracter
Se supone que el codigo binario de 4 bits del (ver figura 655, pagina 423), se necesita de un
dfgito a visualizar esta almacenado en la parte baja circuito que seleccione, por ejemplo, una fila del
de una position de memoria DIGIT previamente visualizador y active selectivamente los LED de esa
definida [0020H1. Estudie los comentarios para com- fila durante un breve penodo de tiempo.
prender el desarrollo del programa.
Cada fila se selecciona sucesivamente hasta com-
El control de visualizadores de reticula de 5x7 es pletar el caracter. Si este proceso se repite a una
relati vamente mas complicado que el de displays de frecuencia adecuada, la persistencia del ojo hace
siete segmentos. Como vimos en la lection 35, por que se vea la imagen completa del caracter, a pesar
razones de espacio, este tipo de visualizadores no de que en un momento dado solo estan iluminados
disponen de un terminal de salida para cada elemen- ciertos LED de una fila. La exploracion puede
to sino que vienen estructurados en filas y columnas, hacerse tambien por columnas, como se ilustra en la
con un terminal de acceso para cada una. figura 908 para el caso del sfmbolo
614
Codificacidn del programa de visualizacidn 1 Primero se selecciona la columna 0 y se energiza
la fila 1. Luego se selecciona la columna 1 y se
Lrj
§!'
energiza la fila 0. A continuacion se selecciona la
;VSUAL2
;VISLrALIZA DIGITOS HEXADECIMALES (0-F)
columna 2 y se energizan las filas 0, 3, 4 y 6.
;EN UN DISPLAY DE 7 SEG. SIN DECODIFICADOR Enseguida se selecciona la columna 3 y se energizan
; LINE AS DE SALIDA UTILIZADAS: A0-A6 las filas 0 y 2. Por ultimo, se selecciona la columna
;CODIGO BINARIO DEL DICITO EN DIGIT[0020H] ijj
;REGCO=REGI5TRO DE COMANDOS [00] 4 y se energiza la fila 1. El proceso debe repetirse por
;PORTA=PUERTODE SALIDA A [OlJ lo menos 60 veces por segundo.
CODIGOS DE SltTE SEGMENTOS EN 7SEG [001 OH] $
;REC3ISTROS USADOS: A. 11, L
Vl
“V En la figura 909 se muestra el esquema de un
CODIGO CODIGO WJ
OBJETO FUENTE y,
circuito de interface adecuado para visualizar carac-
§I1!1 teres en una reticula de puntos de 5x7 con el sistema
POS DAT ETIO. NEMO OFER COMENTARIOS | MicroCektt I. El repertorio de 64 caracteres que
iji] pueden generarse con el display (ver figura 653-e,
DIGIT EQU 0020H
|«|i
pagina 422) esta almacenado en un generador de
REGCO EQU OOH
PORTA EQU 01H caracteres ROM o EPROM. Los generadores de
T7SEG EQU 0010H ijl| caracteres se estudiaron en la leccion 35 del curso.
ORG 00 OOH iji
XAX XX !
DO
del ¥¥ 1
0A S5 ADD L ; Direction de eod-igo a eufii A6 R
0B 6F MOV L,A ;dc 7 seg, en HL 1 — TV
ViAr R
OC
0D
0E
7E
m
01
MOV
OUT
A,M
PORTA
;C6d. de 7 seg. en A
;Visuali?.a digito
i un
A3
-i m
ft
ce _MJl_
t¥¥
X X X XX [ ■
OF 76 RET :Termmar
§
ift
»
w
At
AC
* M
I
1
Z
03 AAA.
R X X X X X r| 1m vl
! XXXXX
* A3 *
S 1
-
10 3F 7SEG) 0-00111111
y
11
12
06
5B
1 =00000110
2 = 01011011
r _AAA_1____
R A X X XX
i A
X X X XX |
- A2 | Dfi VA * 1£
13 4F 3 = 01001111 ji; 1¥1
14 66 4 = 01100110 iji R
15 6D iji
UA
5 = 01101101
A X XXX
TY1
16 5F 6 = 01011111 Ft J3Q £1
§ i vvj
17 07 7 = 00000111 r—1 Vo
DticcUSn
IS 7F 8 - 01111111 ,-|H
« Helcua de 1 2 3 ?:■:
:vl
19 6F 7
9-01101111 '-'H
fMANZAl
Dsodllcador
i :vi
tdefi
1A 77 A =01110111
ri'ij
>: B
IB 7C B =01111100
1C 39 C =00111001
ID 5E D =01011110
IE 79 Aft A3. OlrwesOfi de* carle w : B i
E « 01111001 J-jl
ROM A2-ACV DlnjcclOntfc *a Coniaoof
IF 71 F = 01110001 — fclpj
rndduto 5
(1 KHz) yy.
Fig. 907 |
Fig. 909
.. ..—... i.. i,
aSSfiaS -- ...
616
Codificacion del programa de visualization
POS DAT E TIP NEM.Q OPER COMENTARIOS .V1
Programa principal
■V
35 F0 £
NUMERO BCD DE CARACTERES EN LONGD [6QHJ. T
Codigo de caracteres 1 20
1111 Jh 10 GND
*22H 2 -►32H + 5V
lit tet
c *03H s *13H # -*23H 3 •♦33H 15
Reset 'OD Q0 1 At
vee
1Y1
T ■*14H
1
D *04H $ *24H 4 «*34H G1 -clit
V5
§
6
E ♦Q5H U ■P15H % -p25H 5 -*35H iok: OS
10 [A3 1Y2
1
V ■H6H
03
F *06H & •♦26H 6 *36H 13.
04
11 12
\M
2A!
1Y4
11
W ■* 17H 14 SY1
G *07H •♦27H 7 *37H 4 022 05 2A2
13
ORG OOOOH
T 0068
006D
0072
7E0909097E
7F49494936
3E41414122
DB
DB
DB
7EH ,D9H i09HT09H,7EH
7HL49H.49H,49II>36H
3EH,41H ,4111,41 H*22H
fAw
;"Bri
l ^
^
1;
Dejay 0077 7F4141221C DB IFH/ttlMlH^HjCH ;'D" |
Recuperar direcci6r| 007 C 7F49494941 DB 7FH149HI49H,49II141H ;"E" 1
de barndo ocgirraf 0081 7F09090901 DB ?™n09IIp09Hj09H301H ;WF" i|
0086 3E41414979 DB 3EII,4111,4111,4911,7911 ;"G" §
0Q8B 7FOSOSOS7F DB 7FH>08II>08HJ08H17FH ;HfH" 1
Senalar siguiente 0090 00417F4100 DB OOHP41HP7FIIP41H,OOH l'T' \
0095 2141413F01 DB 21H P41H p41 Ht3FH, 01H t J i
caracter 00 9A 7F08142241 DB 7FHP08HP14I Ifc221 lp4 111 t J!v j>
009F, 7F40404040 DB 7FH>40H>40Hp40Hl40H ;HL" f:
T OOA4
OOA9
7F020C027F
7F0408107F
DB
DB
7FH,02ILOCHJ02H17FH
7FH,04H108HP10HP7FH ;hNrt !
b) Formato de palabra 00 A E 3E4141413E DB 3Eirp4lH,4inp4inp3EH ;nO"
de salida 0QB3 7F09090906 DB 7FHa09H,09Hf09Hp06H :TJ|
00138 3E4151215E DB 3EHT41Hp51Ht2llL5EH fO™ i
OOBD 7E09192946 DB 7 El 1,0911 p 191 [, 29H*46H ;"R" §
0OC2 2649494962 DB 26 HP4911.491 L49IL62H ;"S’'
PuiriO A
A7 AG A5 M A3 A2 Al At) Recuperar ! OOC7 O1O17FOI01 DB 01 H.01 H.7FH.01 TTn01H ;T* §
registros :■ 0QCC 3F404Q403F DB 3FIIP40HP4011,401153FH ;"U" \
CK
00 Dl IF2040201F DB IFIUOn.dOH^OH.lFH ..■v- :
FT Fft FS F4 F3 F2 FI
OOD6 3F403S403F DB 3FH,40HP3SHp40ilp3FII ;”Wn
OODB 6314081463 DB 6 3H+1411±08H, 14 H±63H ;"X,K
I IL
g* I Hd
OOEO 0708780807 DIJ 0711,0811,78Hi0BH,07H i,rY’p
O0E5 6151494543 DB 61^5111.499,4511,4311 rr
Sef'i d I de
rcbl
F I . Hid PUpfP^
F7; Fllj infwicx
;>
-j-
.-v.
OOEA 0000000000 DB 0011.0011.0011,0011,0011 . >i »t
f
!
!■
D a
■§ N o b
1
Q o c
« c
° =
r
3
hs g e d
O m U3
B 90)
<D
Ti
o
ifl 6
a
f
A 7447
9
620
En la figura917 se ilustra un circuitode interface Programa de vlsualizacldn de un nOmero de
adecuado para controlar el visualizador anterior con 8 digitos
el sistema MicroCekit I desde el puerto de salida A. I
Observe que se utiliza un decodificador 7447 para a) Diagrama de flujo
alimentar simultdneamente todos los segmentos y
un decodificador 74138 para seleccionar el display
correspondiente al dfgito que se desea visualizar en
un momento dado.
Programa Principal
1000 0101 (85H) • ;
0101 0110 (56H) ORG 000QH 1
1
0100 0111 (47H)_ 0000 3IFF00 LX1 SP,0OFFH 1
0003 3E0F MVI A.OFH ;Puerto A como salida $
En un momento dado, cada uno de estos codigos 0005 D300 our 00 1
V,
0007 0600 GTRO MVI BtG0H ;Primer dfgito |
excita e ilumina un solo display. Para observar todos 0009 218000 LXI H+NUMERO ;Carga a puma dor del
los digitos al mismo tietnpo, con suficiente brillo y ;numero £
oooc 7E DISP MOV A„M ;Carga el paquete BCD f
sin parpadeos, la secuencia debe repetirse continua- 000D E6F0 AN1 0F0H ;Selecciona los 4 bits MSB $
mente a una velocidad adecuada (mas de 60 veces OOOF 4F MOV CtA ;Almacena temper aim ente |
0010 78 MOV A,B ;Carga contador dc digitos |
por segundo) con el fin de producir en la retina la 0011 B1 ORA C ;Construye la palabra de
sensation de una imagen estatica y brillante. ;saiida ji|:
0012 D3G1 OUT 01 ;Saca por el puerto A $
0014 CD4000 CALL DELAY 1
Como se deduce del diagrama de flujo de la 0017 04 INR B ;Siguieiue dfgito S
figura 918(a), para visualizar un dfgito cuyo codigo 0018 7E MOV A,M ;Carga el paquete BCD
0019 E60F ANI 0FH ;Selecciona los 4 bits LSB
BCD esta almacenado en la parte alta de una posi¬ G01B 07 RLC ;TrasUda los bits a las
tion de memoria se procede asf: Q01C 07 RLC ;posiciones MSB :ijj
0O1D 07 RLC
00 IE 07 RLC |
1. Se carga todo el byte en el acumulador 001F 4F MOV C.A ;Almacena tempo ralmente
2. Se seleccionan por mascara los 4 bits mas signi¬ 0020 78 MOV AJB ;Carga contador de digitos |
0021 Bl ORA C ;Construye la palabra de
ficative s del paquete ;salida
3. Se inserta en la parte baja del acumulador el 0022 D301 OUT 01 ;Saca por el puerto A %
La Ifnea Vref/2 puede tambien forzarse mediante En la figura 923 (a) se presenta el diagrama de
un voltaje dereference externocon el fin de adecuar flujo de un programa con el MicroCekft I que realiza
el convertidor a cualquier ran go de senal de entrada. las siguientes tareas utilizando el esquema de inter¬
Por ejemplo, si la serial de entrada aplicada entre las face de la figura 922:
lfneas Vin (pin 7) y Vin4 (pin 6) solo varia entre 0.5
V y 3.5 V, el voltaje de referenda aplicado a la Ifnea 1. Arranca el proceso de conversion.
Vref/2 puede hacerse igual a 1.5 V, es decir a la mitad 2. Espera que el convertidor entregue la senal de fin
del rango de variacion (3V). de conversion
3. Lee la informacion suministrada por este ultimo
La red RC externa formada por la resistencia Rl al puerto de entrada (A)
(10K) y el condensador Cl (150 pF) habilita la 4. Almacena esta ultima en una posicion de memo-
operacion del reloj interno del convertidor. La en¬ ria RESCAD previamente definida [0030HJ
trada CLKIN (pin 4) puede tambien ser excitada
mediante una senal de reloj externa, derivada, por En la figura 923 (b) se especifican los formatos
ejemplo, de la serial de reloj del microprocesador. de las palabras de entrada/salida asociadas a cada
En nuestro caso, el reloj interno opera a una frecuen- puerto. En la figura 924 se mucstra la codificacion
cia de 600 KHz, aproximadamente. en lengtiaje ensamblador 8085 del programa corres-
pondiente al diagrama de flujo dc la figura 923 (a).
La entrada CS (pin 1) actua como Ifnea de selec- La secuencia del programa se puede resumir en los
cion. Cuando CS=0, el dispositiyo se habilita y siguientes pasos:
trabaja en forma normal. Cuando CS=1, el dispositi-
vo se inhibe y sus salidas adoptan el estado de alta 1 -)Se especifica en el registro HL la direction donde
impedancia. En nuestro caso, el estado de CS lo debe guardarse el resultado de la conversion
controla la Ifnea de salida PB0. (instrucciones LXI H,RESCAD, MVI A,00 y MOV
624
Codificacibn del programs de conversibn A/D
■
;CQNVAD
;DIGITALIZA VOLTAJES ANALOGOS ENTRE OV y 5V
;UTILIZANDO UN CONVERTIDOR A/D DE APROXIMACIQNES
;SUCESIVAS ADC0804
iRESULTADO DE CONVERSION EN RESCAD (3011)
;PUERTO A-ENTRADA; PUERTO B=CONTROL
;PUERTO €-MONITOR DE FIN DE CONVERSION
;REGISTROSLSADOS; A. Ht L
ORG on non
MOV M.A ■
05 77 9
06 3E MVI A.02H p Dcfinir configuration
07 02 P de puenos.
m D3 OUT REGCO 1
09 00 9
MVI A ,0611 T Sdeccionar convertidor
a
OA 3E
OB 06 9
OC D3 OUT PORTB 1
OD 02 1
OE 3E MVI A,02H ■,Arrancar convertidor
i
OF 02
10 D3 OUT PORTB
11 02 1
12 3E MVI At06H ! Iniciar conversion
13 06
14 D3 OUT PORTB
15 02 !
16 3E MVI A .07 Inhibit convertidor
17 07 1
IS D3 OUT POTB
19 02
1A DB CONVEC; IN PORTC ^Fin de conversion?
■
IB 03
M,A) y se define la configuration de los puertos 1C E6 ANI OlH ■
ID 01
cargando el registro de comando (REGCO) con el IE C2 JNZ CONVEC No, ropedr chaquco
byte 00000010 (instrucciones MVI A.02H y OUT IF 1A
20 00
REGCO). Asf, A y C quedan configurados como 21 3E MVI A,OSH Si, seleccionar
entradas y B como salida. 22 06 convertidor
23 D3 our PORTB
24 02
29)Se selecciona o habilita el convertidor (instruc¬ 25 3E MVI A,04H Enviar orden de
ciones MVI A,06H y OUT PORTB) y se da la orden 26 04 leciura
27 D3 OUT PORTB
de arranque del mismo (instrucciones MVI A,02H 2S 02
y OUT PORTB). En el primer caso (byte 00000110 29 DB IN PORTA Lerr resuhado do
2A 01 conversion
en el puerto B),"CS recibe un bajo mientras RD y 2B 77 MOV M,A Guard a r resultado
WR se mantienen altas. En_d_segundo (byte 2C 76 HALT Parar
00000010 en el puerto B) WR_se hace baja Fig. 924
KWJ'AWi' rrrr i; * j * j i; j ; ip; i~i p "■ p p ■
1 i
3")Se inicia el proceso de conversion enviando el 4-)Se de tecta el fin de la conversion leyendo el
byte 00000110 al puerto B para mantener RD alta estado de la salida INTR del convertidor, Esto se
y CS baja mientras WR se hace alta (instruccio¬ logra leyendo el puerto C y enmascarando la
nes MVI A.06H y OUT PORTB). A continuation se information recibida mediante una operation
inhibe el convertidor enviando el byte 00000111 AND con 00000001 (instrucciones IN PORTC y
al puerto B para hacer nuevamente alta la lfnea AN101). Si el resultado de esta operation no es 0,
CS"mientras RD y WR se conservan altas (instruc¬ significa que INTR es aun alta y por tanto la
ciones MVI A,07 y OUT PORTB). conversion no ha concluido.
CEKIT- Carso practice de circuit os digtiales y microproces adores gog
52)Se repite el paso 4 hasta que termine la conver¬ mente solo se requiere una tension de referencia. La
sion (instruccion JNZ CONVEC). Una vez finali- teorfa basica de los convertidores D/A se estudio en
zado el proceso, se selecciona el convertidor la leccion 36 del curso.
haciendo baja la lrnea CS (instrucciones MVI
A.03H y OUT PORTB) y se envfa una orden de La interface de un microcomputador con un
lectura haciendo baja la lrnea RD (instrucciones DAC es relativamente sencilla. En la figura 925, por
MVI A,04H y OUT PORTB). ejemplo, se ilustra una forma de conectar el sistema
MicroCekft I al circuito integrado DAC0808 6
62)Se procede, entonces, a leer el resultado de la MC1408, un convertidor D/A de 8 bits representa¬
conversion (instruccion IN PORTA ) y a almace- tive estudiado en la leccion 36. Observe que las
narlo en la posicion de memoria RESCAD previa- entradas del DAC estan conectadas directamente a
mente definida (MOV A,RESCAD). Hecho esto, las lfneas del puerto de salida (A).
concluye la ejecucion del pro grama (instruccidn
HALT),
(c) Codificaeibn
;CONVDA
;CGNVIERTE UN CODIGO BIN ARID DE 8 BITS EN UN VOLTA JE
;DC POSITIVO ENT RE 0.00 Y 10,20 V UTILIZANDO UN DA COS OS
tCQDIGO BINARIO EN DA TO (1011)
;REGlSTROS US AD OS: A, Hh L
ORG 000011
10 C5 tEjemplo (Vo=7,SS V)
Fig. 926
Sjij
Carga (115V, 1000W, max)
115 VAC
60 Hz
2N6154 z
i
Fig. 928
.....
628
Lecci6n 54
+ 5V
_1
r 14
[-
R/C
1C C
Vcc
74121
Q
Q
XL
Salidas
i'sfl
$
:’!<i
,ill
.',1
"IX
5 B
Entrada ] Ancho de pulso
da disparo
Al A2 GNC Tw= 0.7 xRxC
\ Al pin 8 (RST 6.5) det 8085A El programa tambien inicializa el stack pointer y
enmascara y habilita interrupciones. Se supone que
la tabla de datos comienza en la posicidn 008QH.
Cuando el dispositivo externo aplica un alto a la
entrada B del monostable 74121 (verleccion 16), su Aunque el programa esta confeccionado para ser
salida Q, conectada a la entrada RST 6.5 del 8085, se corrido en el sistema MicroCekft I, puede ser fdcil-
hace alta durante un tiempo (~20 ps) determinado mente adaptado para correr en cualquier otro micro-
por los valores de R (10 KQ) y C (0.005 pF). Esta computador basado en 8085. Su secuencia se puede
estrategia garantiza que RST 6.5 permanezca alta el explicar en los siguientes terminos:
tiempo suficiente para ser reconocida y evita la
ocurrencia de interrupciones multiples. Despues de inicializar el stack pointer (instruc¬
cion LXI SP.00FFH), el programa carga el registro HL
Despues de un reset, por ejemplo cuando la con la direction de comienzo de la tabla donde se
entrada RESET IN (pin 36) del 8085 recibe un bajo, van a almacenar los datos suministrados al puerto de
la entrada de interrupcion RST 6.5 esta desenmasca- entrada (instruccion LXI H, 0080H).
rada y deshabilitada. Antes de que responda a una
petition de interrupcion debe ser enmascarada me- Observe que no se necesita inicializar el registro
diante una instruccion SIM y habilitada mediante de comandos del 8155 porque, despues de un reset,
una instruccion El. Las instruccion es SIM y El se todos los puerto s quedan definidos automaticamen-
explicaron en la lection 51. te como entradas.
En la figura 931 se muestra un circuito experi¬ Debido a que el programa principal puede reque-
mental desarrollado alrededordel sistema MicroCe- rir el registro doble HL para varios propositos, su
kft I que utiliza una senal de interrupcion RST 6.5 contenido debe ser protegido en memoria con el fin
para leer un byte de datos suministrado por un de que no sea destruido y la subrutinapueda utilizar-
circuito externo al puerto A. La senal de interrup- lo si lo necesita. En nuestro caso, guardamos el
cidn la Simula el interruptor S8 y la information de contenido de L en la posicion 00B0 y el contenido de
entrada el juego de interruptores logicos S0-S7. El H en la posicion 00B1H (instruccion SHLD 00B0H).
estrechador de pulsos es el mismo de la figura 930.
Hecho esto, se carga el acumulador con el codigo
En la figura 932 se muestra un programa en SIM requerido para enmascarar unicamente la inte¬
lenguaje ensamblador 8085, basado en el circuito rrupcion RST 6.5 (instruccion MVI A,0DH) y se ejecu-
anterior, que utiliza una rutina de servicio de inte¬ ta una instruccion SIM para fijar la mascarilla de la
rrupcion para leer el dato del puerto de entrada, entrada RST 6.5. A continuacion se habilitan las
almacenarlo en una tabla y retornar el control al interrupciones mediante una instruccion El. El for-
programa principal en espera de la proxima inte¬ mato de las mascaras de interrupcion del 8085 se
rrupcion a traves de la entrada RST 6.5. explica en la figura 862 (verleccion 51, pagina 577).
CEKff• Cur so practico de circuitos digitales y microprocesadores 631
Programa de lectura de datos por 1 en la memoria (instruccion SHLD OOBOH) y carga el
interrupcibn RST 6.5 | registro HL, el acumulador y el registro de estados
Lac DAI ETlo. SEMQ QPER CDMENT A RIQ S 1
con los valores que tenfan antes de producirse la
■ -i interrupeion (instrucciones POP H y POP PSW).
;INDATA £
;Inicializa sistema, Simula el programa principal mediante un bucle y £
;transfiere el control a una rutina de servido cuando recibe una |
;irUemipci6n RST 6,5 ;> Puesto que el sistema de interrupciones se
$
RDATA EQU 0020H
-1 deshabilita automaticamente cuando el 8085 res-
i
ORG OOGOH i
ponde a la interrupeion RST6.5, es necesario rehabi-
§
litarlo para que responda a cualquier interrupeion
00 31 FF 00 TNDATA: LXI SPpOOFFH ^Define suck pointer
03 21 80 00 LXI H„00S0H ;Define imcio tabla :|i posterior (instruccidn El).
06 22 B0 00 SHLD OOBOH ;Salva direc, tabla
09 3E 0D MVI A.0DH ;Codigo de mascara
OB 30 SIM ;Fija mascara ii; Finalmente, la instruccion RET devuelve el con¬
oc FB El ;1 lab. interrupciones
0D C3 0D 00 WAIT: JMP WAIT ;Espcra interrupeion trol al programa principal, el cual se reinicia a partir
34 C3 20 00 JMP RDATA ;Llama nit de servicio de la direccion OOODH, donde se encuentra la ins¬
>!
truccion JMP WAIT. El proceso se repite.
§1
Rutina de servicio de la inlcrrupct6n
i
; RDATA 8
;Lee dato aplicado al puerto A cuando recibe una inteiTupcion RST 6,5 ;
;y lo almacena en una tabla a partir de la posicion 00SC IH
s Terqporizacion de eventos por interrupciones
|
yv
A continuacion incrementa el registro HL para Con el fin de relevar a la CPU de la tediosa tarea
apuntar a la siguiente direccidn de la tabla (instruc- de generar senales de protocolo, estas ultimas pue¬
cion INXH), guarda el nuevo valor de esta direccion den ser producidas automaticamente por puertos
632
paralelos programables como el circuito de soporte
8155 de Intel y la PI A MC6821 de Motorola. En esta
seccion mostraremos como utilizar el 8155 para
operaciones protocolarias de entrada/salida.
.■,*
dispositivo y envia una serial de lectura (RD). Esta Timer= Interruption por temporizador interno ii
serial, activa en bajo, provoca que la _salida PCO ,.1Tr .. f Habilitador de interrupciones
(intr) del 8155 se haga baja. Cuando RD se hace INTtB(INTEA)|pue„oB(puerra4) ^
otra vezalta, la salida PCI (bf) se hace autom&tica- BBF {ABF} | Buffer del puerto B (A) lleno/vacio 1
mente baja, indic^ndole a la unidad de cinta que
puede repetir de nuevo la secuencia para enviar el INTR B (INTR A)|^^°nDd*
siguiente caracter o dato. puerto B (puerto A) Fig. 934 I
CEKff- Curso prdctlcode circuit os digitales y microprocesadores 533
Leccion 55
astado
>44ida 120VAC
4PCO
-1SV
Amptiflcador de la
(55R) 50/6CHZ
tend* 4* tamperatura
+ SV
74C14 IPB7
t 9
0€ eoc 66
26
0 START
27 m Puarto 6
1 ALE i 1 m
2S 23 1 63 (02H)
ADDC Tl. P62
1 ADDS 24
0.001 jif A a
< ADDA 25 1
»- o 21
O f®
^ o
D7 %
20
SS 06
i
7 © 05 19 PA7
^^
10
11
CLK
U
04 IS
a
PA6
PAS
l
Vcc DO PA4 u* Puarto A
l 2K +VRJBF 02 15
PAO I
•ft
(01H)
Raftrancla
para al ADC 14 PA2
Vfi£F D1
1
J? ^ p fli GW DC-
17
i 2 * 10K
LM32G 2 0«t *lta d#l $SR
:iok T* mporijadof
220Q <04H)
(OSH)
“J;
(Tantalio)
0.0l]iF|
2N6154
CLK OUT
{pm 27)
Fig, 936
t*y.vv?.vT'!■ i■'■ y ■ • '■ '■ ■ ■ ‘ '■ '■ ■ - *■1 j . ..i..
636
Por ejemplo, para especificar que se desea llevar
la temperatura del tanque a 75 °C, en la posicidn
TEMBCD (00EDH) debe almacenarse el codigo BCD
01110101, correspondiente al numero 75. Para efec-
tos de computo interno, este valor se convierte a
binario mediante una subrutina (bcdbin) y se alma-
cena por programa en la position TEMBIN (00EEH).
El transistor 2N3906 suministra la corriente de Nota: Antes de correr el programa de control, debe
excitation del SSR, aisla el puerto B (lmea PB7) de calibrarse la sonda de prneba sumergiendola en hielo
este ultimo y lo mantiene desconectado cuando se a 02C y ajustando los potenciometros Rx y Ry hasta
aplica potencia por primera vez al circuito. Esto es obtener una lectura de 0.0 V en la entrada 10 (pin 26)
necesario debido a que las lineas de los puertos del ADC0808. Tambien debe calibrarse el voltajede
quedan flotantes despues del reset de encendido. referencia de este ultimo ajustando Rz hasta obtener
una lectura de 5.12V en la entrada +VREF (pin 12)
En la figura 938 se presenta la codification en del mismo.
lenguaje ensamblador 8085 del programa de control
del sistema propuesto, acompanado de los comenta- Utilice el termometro construido en el proyecto
rios explicativospertinentes. Aunque aquf este pro¬ central Ns 16 para medir la temperatura del tanque y
grama reside en una RAM, para facilitar su depura¬ evaluar el grado de confiabilidad del sistema de
tion y permitir su evaluation, en la prdctica, una vez control, Experimente con otros valores de ONCNT,
adquirida su forma definitiva, debe almacenarse en OFFCNT y PLSCNT y observe los resultados. Sea
una memoria fija (ROM o EPROM). cuidadoso durante el montaje de este circuito debido
a que maneja altos niveles de corriente y de voltaje.
Se supone que el valor de la temperatura deseada,
entre 00SC y 99 JC, se especifica mediante un codigo Estudie los comentarios del programa para com-
BCD empaquetado (ver lection 53), almacenado prender mejor su desarrollo y las tecnicas y estrate-
durante la escritura del programa en una posicion de gias utilizadas. Analice el alcance y la utilidad de las
memoria TEMBCD previamente definida. subrutinas empleadas. Por ejemplo, OFFCAL para
dividir un numero de 16 bits porun numero de 8 bits,
Los cuatro bits de mas alto orden corresponden al CONVAD paracontrolar un convertidor multiplexado
MSD (dfgito mas significativo) y los cuatro bits de ADC0808, CONTEO para contar pulsos, BCDBIN
menor orden al LSD (dfgito menos significativo). para convertir un numero BCD en binario, etc,
CEKIT- Curso prdcdcode circuitos digitales y microprocesadores goy
Programa de control de tcmperatura
11 32 E9«) STA PL5CNT ri GCD- A031 < 1 GO BuliiepiDdw) SF 32 EC 00 STA TEMPAC /Tefaperamn, keui] Rid eti TEMP AC
H 3E&1 MVI A.01H Jnlcatlrtt eDntadnTti de tkmpoi de ONVOFF del SSR. A2 C9 rjtt /Fin de 9a eenveraidn AJD. R Komar el program* de etaarol
16 32 EA 00 ST A ONCNT tiempo d e MUtthdn (ON) del SSR=03 H (1 buck)
1$ 32 EB 00 STA OFFCNT ;Tiempo de apegtdo (OFF) del SSR 01] [ [1 frude)
1C 3E3Q MVI A, eon ^ApiUt element) ctJefucUJf CP> Lmdo tm 1 par FB7
IE D3 02 OUT 02 H Rutina de calcul
20 CD 1C 00 CALL UCDBIN iCwvLene woipaaiura deseada a binario
13 CD 41 00 LOOP: CALL CONTRO ^Realiza el bucrle de c or u ni dr lempenluti
26 CD C7 00 CALL CONTEO .BaaMt 160 IIW unua del prdakmo budede conliul jtalcul* *pan.lr del rmf deletnpmiur* AT eo ERROR cl [iempa que debt meii Lrarree draccbectado el SSR cugnda Ik
25 C3 23 00 IMP LOOP .ReptLe buclede CenLiti ;tempera£iira real « menar que ladeeegda y Id atmacaru en OFFCNT
tUliliii It Mnnuli empiric t ToFT = WO + AT, Lacual traducida a beiadoriinal« OFFCNT= t4K +FRKOR
;IEldivLdmdo (10GD=i&4H), del 6 tier, lie ilmece&a M cl Rgi«fo fiC y el di^iaor (ERROR), de 8 biis, en el legjitro D.
tSubruLma* LlHZDHJm; Ninguna ftqgisirM miiiziKlcs: A, 0, C. [>, E
Rutina de conversion de OCD a binario (liCDBlN)
ERROR EQU EM3EF1I
tCoDVient e! valor BCD de la Lemperamna d efiekl* (TEMBCD) a su vaJw btoiHfl eiqutvaleme. Reiuliada «3 TEMBIN. OFFCNT EQU MEBH
^utenaLinu llamedaa. N*^ufla Registrns uulizadaa: A, □
ORG 00A3H
TO MB CD EQU OOGDH
TEMBIN EQU OOEEH A3 01 64 00 OFFCAL: LXI B.00AIH iDI* Idendo (1MD=64H) ea regiirn B C
Afi '3A EF 00 LDA ERROR ;Dsv lsoi (AT) en registry D
ORG 0tf2 CH A9 57 MOV DhA P
/EvaJuid emif 4c Rinpenmfi (dkfercaei* eaine It tauperirura deattdty U tetnpenuffa real del process) y determine loi
lEempos de ON y de OFF de la pedal decmuDl PWM del SSR.
I^TUWias Utmadai: CONVAD, QETCAL. Refutrui ufiLzadas: A,B
Rutina de conteo de pulsos de temporiaacion (CONTRO)
CONVADEQU OffiLdH jCuetita un cieno niiriem binuia dcpulacs almaeeniio en, FLSCNT jnLee. de catianuevobucle de cnnliol.
TEMPAC EQU CKJECH
;‘L iempo de irlardo cn miliieguiidoa (ISO) numdficacnmie Lgual a PLSC.NT (AOH)
ERROR EQU OfiEFH ,$;e iiume qut la entnda d el tempotrizMarec la icflal de relo) de la CPU (E 2 MHz, pin 37).
OFFCAL EQU DQA311
;La aailida del (nroori: ad rar e* ixu ood a caotmua de 1 KHz fFerodi>-1 edi)
vX
jSLibEUlmts llaimdu: N in gun a Regiairos uLilizadce: A
GRO 0O41II
PLSCNT EQU ODE9H
41 3AEA OGCGNTRO: LDA ONCNT tDecretneutacDEUKtdf de ueotpodc ON del SSR
44 3D DCR A ytTLm^3o4e ON=QT
ORG D0C7H
4i CO RNZ ^0,4 radfflealprogniiii principal
46 3E 01 MVI A.D1H .5 l, * Rein iciabce: blccinladafde ON Cab OH 1
C7 3AE9 00 CONTEO: LDA PLSCNT ;Lee esiado acltial del Donudorde puli os de [empoiizBcida, Is
4K 32 EA 00 STA ONCNT B
CA 3D DCR A idKrecrwou y ^.wdaniJevD tsiada
4B 3ESO MVI A.SOH DcEconcclar cilefacEar
CB 32 E9 00 STA PLSCNT ■ ^CtM3tador=07 !■!■!■!
4D D3 03 OUT Q3H B 111111
CE CA H2 00 JZ 5ALIDA ;SL * lenudne
4F 3A EB » LDA OFFCNT DeciEEDcnlawnCidOTde uempn de OFF del SSR
D1 DB 03 LAZOI: IN 03 /N□, +■ lee esladode iedai, dc Letc^arieiCidD
52 3D DCR A ^Tiempo de OFF=07
DJ EfilQ ANI 2011 liSeOiJb**a (0)7 1
53 CO RN7 >rO, 4 rrt.ofne al pttusTaiUt pn.bCipat
Ti$ C2D100 JN'Z LAZOI /No, espeii cue acabaji
54 CD BO 00 CALL CONVAD .Leer temperai'aia acLual
DS DU 03 LAZ02: IN 03 ;I.ec bLtcvirQcntz aedal de lemporizacidn
57 3A EC W LDA TEMPAC ,C™parir Lenfimilira aclual COd ictupemurt decetdt
DA E6 2D ANI 2011 ^SeQat alLa (1)7
5A 47 MOV B.A i DC CADS00 JZ IA7.02 ;Nu, e^peraque aea apla
SB 3 A EBM LDA TEMBIN I-
DF C3 C7 00 JMP CONTEO ;Sl, cueoti Eilgukcote pjtsn
5E 90 SUB B iCakularla difetiHCia 4 ettut (AT=TEMB1N-TEMPAC) E2 3EA0 SAE.5DA: MVI jVAOH ;ReLbiciaii7a eontad or dc pulses de (empaiizacidb i
5F 32 EF 00 STA ERROR .F.irur aeiual de temperamn en ERROR E4 32E9 00 STA PLSCNT ij!j
62 CA 75 OO JZ SALIR iTeodpemurt actual mayor»ipjal a tcrnpcfawridcacadaf E7 C9 RET f in de la Lrmporizacidb. Retema al programs, principal X'::
65 FA 75 00 JM SALLR ;Sl. RemkLaLzar tjflt^osdc ON y OFF.
GS CD A3 00 CALL OFFCAL /No, * tilcular mievo uttopo de OFF del SSR
613 3E 04 MVI A04I1 /FJjar ouevo Licmpc de ON del SSR (04EL640 mi)
6D 32 FA 00 STA ONCNT P l^riitiftlrot y daiaj (Let proecso
70 3E00 MVI A.00E1 ;Ccbectu c alcJ actor
72 D3 02 OUT 02 B EDiTEMBCO (Teeppertcma 6tstaiia. BCD. Uiuario)
(:D= Pt^SCNT (CtMiiailorde pulsoi dt temporizacidn)
74 cs RET fin del buck de c poled]. Relomar al programa principal EE=TEMFUNrCrctnperaliJii, deseadi. Bintriu. CtnveiUdi)
EA — ONCNT (CuoLidor de tiempo de entiKlidfl del SSR)
75 3E0| SAIJR: MVI A ,01H ;RAb leialn'Ar cfirutdtird.e cief^o de O N can 01H
F-B = OFFCNT (CenLadar de tieenpa de ap agado d el 55 R) EfTERROR (Error t)t Lfinperaiws)
77 32 EA00 STA ONCNT ¥ FF=Tope de la pLla (abaci)
EC - TEMP AC O'rajipcimur* tetutl del proceiui)
7A 3F.7F MVI A7F1I ^.cifiicptliurcocLl^lGFde dtoipo dc OFF god 7FH
7C 32 EB M STA OFFCNT r
638
Leccion 56
Perspectivas de los
microproeesadores
Abordaremos tres aspectos que han marcado la Dichos circuitos de apoyo significan un aumento
pauta para los desarrollos futuros: microcontro¬ en la complejidad y costo de los sistemas, ademas
ladores, arquitectura RISC y sistemas multiproce- del mayor espacio ffsico utilizado. Por esta razbn,
sador, intentando realizar un pronbstico de lo que los fabricantes de microproeesadores han hecho un
serd el microprocesador en los proximos anos. esfuerzo considerable por desarrollar dispositivos
que eliminen estos inconvenientes y permitan dis-
Mic roc on tro ladores poner de las ventajas del microprocesador en una
gran cantidad de aparatos domesticos e industiales.
El uso de los microproeesadores se ha extendido
de tal manera a lo largo y ancho del mundo, que ya El resultado ha sido el microcontrolador, un
es casi imposible encontrar un artefacto electronic© dispositivo que incluye, en un mismo circuito inte-
que no disponga en su interior de algun sistema grado, launidad central deproceso (CPU), memo-
basado en ellos. ria RAM y ROM, y puertos de entrada/salida, as(
a
vi-
XTALf
CO Puerto
1 XTAL1
XTAL2
TO 1
2
3
* 40
39
38
n vcc
^ T1
1
ft):
Res 01
Paso
CO Puerto
2
PD
Reset
SS
INT
4
5
6
37
36
35
3 P26
n pas
3 P24
i
-xj
■wj
simple
EA 7 34 a P17 £
Mernoria
axterna
vm RD 8 33 3 P16
1
^SEN 9 l 32 13 P15 m
8748 VW to 3 31 ^ P14 :S:
Test
r Habiliia
programa
en ta mamoria
ALE
DB0
n
12
m
°
30
29
3 P13
p P12
X-:
&
DB-I 13 20 ^ P11
Interrupcidn DBg 14 27 □ P10 y.'i
ALE db3 15 26
Bus 13 VoQ
D84 16 25 PROG :::::
<0 Habilitador DBc 17 24 =1 PZ3
del puerto de
expansion
06 e ■ 18 23 ;□ P22
oe7 19 22 Zl P21
Vss 20 21 ^ P20
a) Diagrams da bloques b) Simbolo loglco c) Conflguracfdn de pines Fig. 939
I'l l.l.l.l.< I.I.I.I.M,1.! 1,1.1.1 l.l I,- MJJJ ..JJ.i . IJ . I I . I I 1 . ] ■ I.II.Ill.I . . . ! II I . . I . . I . . -I.. . , , .ILL'. L ',1M,‘ V* f i .'l I I II
5s
CEKJT- Curso prdctico de circuitos digit ales y microproeesadores 639
como circuitos temporizadores, contadores, e inclu- El conjunto de instrucciones del 8748 cuenta con
so, convertidores A/D. extensas facilidades para la manipulation indivi¬
dual de bits y las operaciones aritmeticas tanto en
Tal integracion permite utilizar el microcontro- binario como en BCD. El 8748 puede usar ademas
lad or en una gran varied ad de artefactos de uso toda la gamade perifericos existentes para los micro-
cotidiano: alarmas, sintetizadores musicales, relo- procesadores 8080/8085.
jes, video grabadoras, homos microondas etc. Tam-
bien representan, por supuesto, un gran avance en el A modo de ejemplo, en la figura 940 se ilustra un
diseho de sistemas industriales para el control auto- circuito de aplicacion para el microcontrolador
matico de procesos. 8748. Se trata del control de dos motores paso a
pa so, usados para mover un pequeno robot (el fu n-
Uno de los primeros microcontroladores comer- cionamiento de los motores paso a paso fue estudia-
ciates fue el Intel 8748. Se trata de un mi- do en el proyecto central numero 28).
crocomputador de ocho bits encapsulado en un
unico chip que incorpora una memoria EPROM de Como puede observarse, el sistema en sf requiere
1 Kilobyte programable por el usuario, 64 bytes de solamente dos circuitos integrados, uno de ellos (el
memoria RAM, tres puertos de E/S (uno de ellos ULN2803) utilizado simplemente para amplificar
usadocomo bus dedatos) y un temporizador/conta- las senales que se inyectan a las bobinas de los
dor de eventos de ocho bits. motores. Todas las demas tareas requeridas quedan
en manos del 8748.
En la figura 939 se proporcionan el diagrama de
bloques, el simbolo logico y la configuracion de Otro destacado microcontrolador de la firma
pines del microcontrolador 8748. Intel es el 8051, de diseno mas reciente. Se trata de
640
un microcontrolador optimizado para aplicaciones firma Motorola, cuyo diagrama de bloques se mues-
de control, el cual incorpora, en una misma pastilla tra en la figura 942. Este dispositivo incorpora 1804
de 40 pines, una ROM (o EPROM) de 4 Kilobytes, bytes de memoria EPROM y 112 bytes de memoria
una RAM de 128 bytes, dos temporizadores/conta- RAM en su versi6n mas sencilla (el MC 68705P3),
dores de 16 bits y cuatro puertos de emrada/salida. Incluye ademas un temporizador/contador de ocho
Uno de estos puertos (el #1) puede funcionar alter- bits y tres puertos de entrada/salida, dos de ellos (A
nativamente como canal para comunicacion serie. y B) de ocho bits y el tercero (C) de cuatro bits.
El 8051 posee ademas un conjunto de 111 ins- Cabe destacar que el temporizador/contador in¬
trucciones diferentes, facilidades para el tratamien- cluye un divisor de frecuencia de 7 bits, que le
to de interrupciones y capacidadparamanejarexter- permite ampliar su rango de trabajo. Asi mismo,
namen te 64 Kilobytes de memoria de programa y 64 cada uno de los 20 pines disponibles en los puertos
Kilobytes de memoria de datos. En la figura 941 se puede serprogramado individualmente como entra-
puede apreciar el diagrama de bloques y la configu- da o salida, permitiendo una gran versatilidad y
racion de pines del 8051. eficiencia en el uso de los mismos.
Entre los microcontroladores de ocho bits mas Otra version del 68705, el MC68705R3, posee
destacados se encuentra tambien el 68705, de la una memoria EPROM ampliada a 3776 bytes, 24
P0.0PU.7 P20-P2.7
mirni immi
Bubers BuHefs
puerloO Puerto 2
/x
11 Tt
iz \z
Segura Sejuro
Puerto 2
EPROM
ROM
K 5
H 11 lz Pi oc
Pl.iC
1
®
40
»3
Vw
P0 0 (400)
■i
S
30
H
PTiC 3 P01 (ADI)
pi.3e * 37 PC.2 (AD2)
Pi 5 30 Z2 P0 3 (AD3)
pi se $ 36 P0 4 (ACM)
N
ACC Reglstro de
ACC
direocionee pi 7 34 P0.5 (AD5|
pi 7e * 33 PO-6 <AD6|
RESETC * 32 P0,7 (AD7)
RegtE.tr d (RkDfPaoe to 31 3 Ei/VPP
£
B
Tempcfizadw 2 Temporiiador 1
^ Buffi. (TXDJP31C 11 30 =] AL£^R55
WL___ (WTC)pj.ae iz » P5EF5
mm. is 20 P2.7 (A15)
a *Lu 1C llll
.;:Vi v,:-x tfi<y*rn enladcr
(T0>P3.*C
(T1)P3,5C:
1*
I®
27
26
P2j6(A14)
P2.5(A13)
■ _ . ■_ del PC
Bloques de m terrupcitm
IS asp P2.4 (At2)
{RB} P3.7e 17 24 , 3 P2.3 (A11)
Itt
puerto serie
xTALae i> 23 =1 P2.21A10)
y lempofteador Contadbr dal
ptogrwn*
XTALie i* 22 P2.1 (A»)
VttC 20 21 3 P2.0(A3)
JE3L
DPTfl
1C?
nSegura Ln
s S-egu-ro
b) Configuration de pine* I
Puerto 3
nButters.
S ButFore
3
Puerto 1 puerto 3
>rto3
XTAL1 , KTAL2 mm
Pi 0-P1.7
iron
P3.0-P3.7
PAO
PA1
Puerto PA2
A PA3
llneas PA4
de E/S PA 5
PAG I
PA?
k
b) Configuracibn de pines
a) Diagrams de bloques
Fig. 942
!W!
..........r-----■-■-■-■^l^^J.V
pines de entrada/salida, distribuidos en tres puertos de una mdquina anterior de 8 bits (en este caso, el
de ocho bits, y un convertidor analogo-digital (A/D) microprocesador 8080).
de cuatro canales, que lo hacen ideal para aplicacio-
nes de control en procesos industriales. Ademas de trabajar con palabras de datos de 16
bits, el 8086 tiene nuevos tipos de instrucciones
Es de anotar, por ultimo, que existen sistemas de realizadas por hardware, incluyendo multiplica-
desarrollo creados especificamente para cada fami- cidn y divisibn, asf como varios modos de direcciona-
lia de microcontrol adores, que hacen sumamente miento nuevos.
sencilla la labor de diseno de circuitos y sistemas de
control con estos dispositivos. En la Figura 943 se muestra la organizaeion
interna del microprocesador 8086. Los registros
A1 disenar un sistema, la programacion del sombreados no estan disponibles en el 8080/8085.
microcontrolador se realiza en forma similar al Esto nos da una idea del considerable aumento en la
proceso de “quemado” de memorias EPROM, potencia de proceso con respecto a los micropro¬
cesadores de 8 bits.
Nuevas arquitecturas
Tambien se incluye la organizaeion interna del
Nos hemos centrado a lo largo del presente cur so 68000 de la firma Motorola, que incorpora caracte-
en el estudio de la arquitectura interna y funciona- rfsticas como la deteccion de errores durante la
miento de los microprocesadores de ocho bits, y ejecucion de programas. El 68000 puede ademas
hemos cumplido con ello nuestro principal objetivo. tratar cada uno de sus ocho registros de datos de 32
Ahora daremos unarapida mirada a las perspectivas bits como si se tratara de acumuladores.
que se abren actualmente en materia de arquitectura
de microprocesadores. Pero el desarrollo de los microprocesadores no se
detuvo. El 8086 evoluciono hasta convertirse en el
Para ello debemos cruzar la “barrera de los ocho 80286, el 80386 y luego el 80486, cada uno con
bits", y considerar las caractensticas y filosofias de mejoras de diseno respecto al anterior.
diseno de los microprocesadores de 16 y 32 bits.
Lafamilia Motorola siguio un desarrollo similar,
El primer microprocesador de 16 bits en una sola con los microprocesadores 68020, 68030 y 68040.
pastilla fue el PACE (Processing And control
Element) de National Semiconductor, introducido Dicho desarrollo no consistio solo en ampliar el
en 1976. Fue seguido por el iAPX-86 de Intel, que numero de registros y el ancho de la palabra de
al igual que muchos otros microprocesadores de 16 datos. La filosofia misma de diseno sufrio un cam-
bits puede considerarse como una version mejorada bio considerable. La ya tradicional arquitectura.
642
Microprocesadores de 16 bits 6086 y 68000
de 16 bits cx CH CL
D4 IwJ
tfl DS
f
ac 06
DX D DL
D7
'/Amw, Sw
*
A3
A4
CT AS
ftogiatro de 1 A6
1 ill!
tadcfe
6 bytes para A7 Puntero ptla de usuario
instruccionw Segmento de codigo CS 8c trol y
« rizacidn 1 A7‘ Puntero ptla supervisor
e I
T
Segmento de datos DS rTJ
0
ted i)
31 23
Contador del|
Segmento de ptla SS PC programa
Ldgica de Unidad 0
tempcmzactd de interface Segmento extra E/S St
0 20 / 23'' ie'
y control CC 15
con el bus
(unidad 1)
sI Registro be estado SR
g*« Unea£ 0US Bus *> n
]
rr ® «
control.
- dates [ rt_ 1
Sistema Usuario
direc ciones
16 Jf
tineas de Bus AD A16:A19
Control de dates y b) El microprocesador 68000 de Motorola
direcciones a) El microprocesador Intel 8036
Fig. 943
..—
La presencia de varias CPU (de uso general) en el El vertiginoso desarrollo tecnologico que ha sus-
mismo sistema hace que este se denomine citado la aparicion del microprocesador estd en
multiprocesador o multhnicroprocesador. Un realidad muy lejos de llegar a su fin. Dfa a dia se
multiprocesador puede realizar varias tareas iguales avanza en el diseno de nuevos circuitos integrados
e independientes simultaneamente, estando cada de alta densidad, que incorporan cada vez mds
tarea asignada a una CPU distinta. Por tan to, con los transistores dentro de una misma pastilla.
multiprocesadores puede obtenerse una produc-
tividad mucho mayor que con los monoprocesadores. Entre los fabricates de microprocesadores se
maneja un criterio, conocido como Ley de Moore,
En la figura 944 se muestra el diagrama de segun el cual, el numero de transistores que pueden
bloques del Transputer IMS T800, de la firma ser integrados en una unica pastilla se puede dupli-
INMOS, un microcomputador en una sola pastilla car cada 18 meses.
disenado especificamente para funcionar en siste¬
mas multiprocesador. Tambien se ilustran, en for¬ Laleyde Moore haresistido hastael momento la
ma simplificada, algunas de las muchas geometrfas prueba del tiempo, pues en el espacio comprendido
de interconexion que puede adoptar una red de entre 1971 y 1989, el numero de transistores inclui-
Transputers. dos dentro de un microprocesador comercial paso
de dos mil (en el Intel 4004) a un millon doscientos
mil (en el Intel 486DX). Se espera que esta tenden-
cia continue hasta mas alia del ano dos mil.