SIMULACIÓN DEL MICROPROCESADOR 8086 INTRODUCCIÓN: El microprocesador Intel 8086, (llamados oficialmente iPX 86) es el primer microprocesador de 16 bits diseñadopor Intel. Fue el inicio y el primer miembro de la arquitectura x86, actualmente usada en la mayoría de los computadores. El trabajo de desarrollo para el 8086 comenzó en 1976 y el chip fue introducido al mercado en el verano de 1978. El 8086 tiene una cola de 6 bytes para instrucciones. Exteriormente el 8086 tiene un bus de datos de 16 bits y un bus de direcciones de 20 bits. DISPOSITIVOS USADOS EN EL DISEÑO DEL PROYECTO: Para el circuito externo el microprocesador 8086 usa un interface de E/S programable (PPI) y multiplexores para controlarlo. A continuación veremos detalladamente cada uno de ellos con su descripción y configuración en Proteus. Microprocesador 8086: En la figura 1, se tiene el microprocesador 8086 (simulación en Proteus), donde AD [0…15] es el bus de datos y direcciones y A [16…19] es solo para direcciones, esto quiere decir que solo posee 16 bits de datos y 20 bits de direcciones. Este bus comparte tanto datos como direcciones, ya que posee una arquitectura Von Neuman, donde primero transmite las direcciones y luego los datos, el pin ALE/QS0 (patilla 25) está en 1 (alto) cuando se transmiten las direcciones y en 0 (bajo) cuando se transmiten datos, esto nos servirá para la Multiplexación de las direcciones. Figura1. Utilizada por la CPU para enviar palabras de -WR: control o datos al 8255.D7: Bus de datos bidireccional de 3 estados. . y como tal miembro de una gran lista de chips conocida como la Familia MCS-85. -RD: Figura3. se utiliza para dar al CPU acceso a puertos de entrada/salida paralela programable. Descripción del integrado: D0. El papel principal de este flipflop es separar las direcciones de los datos. además de controlar el PPI. Líneas de dirección: permiten seleccionar A0 y A1: uno de los tres puertos o el registro de control. PA0-PA7: Puerto A: puerto de entrada/salida de 8 bits. Para configurarlo ponemos el control de salidas OE a nivel bajo(tierra) y conectamos el habilitador del latch LE a la salida ALE del 8086(esta salida se activa cuando salen las direcciones) esto hará que solo pasen las direcciones mas no los datos. porque todos viajan en un mismo bus. B RESET: y C) son colocados en modo entrada. Utilizada por la CPU para leer información de estado o datos procedentes del 8255. PB0-PB7: Puerto B: puerto de entrada/salida de 8 bits. PC0-PC7: Puerto C: puerto de entrada/salida de 8 bits.. Figura2. Fue fabricado (clonado) más tarde por muchos otros fabricantes. interfaz programable de periféricos.FlipFlop 74373: EL Flipflop 74373 asíncrono de tipo “D” (latch) de 8 entradas y 8 salidas que en este caso lo utilizaremos para controlar el PPI que describiremos luego. Este chip se utilizó posteriormente con el Intel 8086 y sus sucesores. Esta señal borra el Registro de control y todos los puertos (A. Es un chip controlador de periféricos desarrollado originalmente para el microprocesador Intel 8085. PPI 8255: El Intel 8255 ProgrammablePeripheral Interface (PPI). para el grupo B y 0084. Es por eso que debemos aumentar un inversor para conectar el lacth con el PPI ya que la salida es lo contrario que se quiere. Para nuestro programa utilizaremos las direcciones 0080. Además para el control de los 3 grupos (A. Estas direcciones se cargaran en el programa en el 8086 y serán llamados a un registro (DX) y serán enviados solo a un registro de 8 bits (AL). Figura3. para el grupo C por lo que conectaremos A0 a Q1 (pin 5) y A1 a Q2 (pin 6). Figura4. Inversor (7404): Inversor aumentado para conectar el lacth con el PPI puesto que la salida es lo contrario de lo se quiere. Display 14 segmentos (8 dígitos): Utilizaremos este grupo de display para mostrar los mensajes escritos en el programa. conectamos el Chip Select (CS) a un pin del latch (Q7 pin 19) de tal manera de que al entrar las direcciones esté en alto y no deje entrar al PPI pero al cargar las direcciones hagan que este se ponga a nivel bajo yasí solo puedan cargarse los datos. para el grupo A.Para que en este PPI (Figura3) solo reciba los datos mas no las direcciones. . B y C) tenemos las líneas de dirección A1 y A0 en una serie de configuraciones en conjunto con RD (leer) y WR (escribir) que son usados por el microprocesador con las instrucciones IN y OUT. 0082. EL CIRCUITO FINALIZADO: . CÓDIGO DEL PROGRAMA: Debemos tener en cuenta primero los encabezados que nos pide el Proteus . estos son : Tamaño Pila Datos Código Se reserva 512 bits para la pila. Luego comenzamos con el cuerpo del código: Lo que se busca con este programa es mostrar palabras escritas desde el programa por medio de códigos. . Este programa está diseñado para los nombres de los alumnos y sus respectivos códigos indefinidamente. Tenemos también los grupos: GRUPOA=0080H GRUPOB=0082H GRUPOC=0084H Estos hacen que las direcciones controlen el PPI a través del latch especificado anteriormente. Definimos todas las letras del abecedario y los numeros para que posteriormente las llamemos en una macro instrucción . hacia la izquierda LOVATON EMILIO 11132202 11322024 13220244 .dato2. Las palabras a mostrar en nustrodisplay será: ALUMNOS BONIFAZ EDUARDO 11132100 .Código: Creamos una macro instrucción donde nos pida dato1. después mostramos el dato1 a través del Grupo B y selec va a tener el dato del display a encender pero como el display a utilizar es cátodo común con la instrucción not negamos ax y lo mostramos a través del grupo C. lo mostramos 3 veces el codigo 11321006 .selec Primero mostramos los leds a prender que estará en el dato 2 a través del Grupo A. posteriormente después de mostrar la letra deshabilitamos con 00 h el grupo C para no generar error al mostar el siguiente digito. para q se vea como un despalzamiento 13210068 . Circuito en funcionamiento: Se muestra a mostrar la palabras pre establecidas . . . Tenemos que tener en cuenta también las direcciones de segmentos adecuados para su utilizar el PPI y el encabezado correcto que nos pide el proteus. o sea se guardan o se escriben desde un registro de 8 bits. también se pueden utilizar 16 bits pero en ese caso se tendrían que utilizar 2 PPI. .OBSERVACIONES: Cuando hacemos uso de nuestro PPI. cabe resaltar que la entrada y salida del PPI son en forma paralela por grupo. por eso solo utilizamos solo 8 pines del bus de datos (AD [0…7]). Nuestro programa desarrollado .html .es/docencia/udigital/1202. experimentar y aprender en nuestra simulación el funcionamiento del PPI 8255 y la variedad de aplicaciones que se les puede dar.com/watch?v=ljt71vVfgGo http://atc.youtube.ugr.org/wiki/Intel_8255 http://atc.es/gacdlRepertorio de instrucciones del 8086/8088 http://es.CONCLUSIONES: En el desarrollo de este proyecto hemos aprendido llegar a programar un microprocesador 8086 y hacer su respectiva simulación por medio del Proteus. BIBLIOGRAFIA Los microprocesadores Intel de Brey Barry B tercera edición http://www. Además se ha podido observar. se pudo hacer uso de todos los conocimientos compartidos en clases de programación en EMU8086 donde hemos visto una vez más como los subprogramas ayudan a ordenar el código y hacerlo mucho más rápido ya que es una opción que está esperando a ser llamada y ejecutada cuantas veces sea necesaria.unex.wikipedia.