SIMULACIÓN DEL MICROPROCESADOR 8086
Short Description
Download SIMULACIÓN DEL MICROPROCESADOR 8086...
Description
SIMULA CIÓN DEL MICROPROC ESA DOR 8086
INTRODUCCIÓN: El microprocesador microprocesador Intel 8086, 8086, (llamados (llamados oficialmente iPX 86) es el primer microprocesador de 16 bits diseñado por 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 DISPOSITI VOS USADOS EN EL DISEÑO DISEÑO DEL PROYECTO: Para el circuito externo el microprocesador 8086 usa un interface de E/S programable (PPI) y multiplexores multiplexores para controlarlo. A continuación continuación veremos veremos detalladamente 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, 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.
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. El papel principal de este flipflop es separar las direcciones de los datos, porque todos viajan en un mismo bus, además de controlar el PPI. 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.
Figura2.
PPI 8255: El Intel 8255 ProgrammablePeripheral Interface (PPI), interfaz programable de periféricos, se utiliza para dar al CPU acceso a puertos de entrada/salida paralela programable. Es un chip controlador de periféricos desarrollado originalmente para el microprocesador Intel 8085, y como tal miembro de una gran lista de chips conocida como la Familia MCS-85. Este chip se utilizó posteriormente con el Intel 8086 y sus sucesores. Fue fabricado (clonado) más tarde por muchos otros fabricantes.
Descripción del integrado: D0..D7: RESET: -RD: -WR: A0 y A1:
Bus de datos bidireccional de 3 estados. Registro de control y todos los puertos (A, B y C) son colocados en modo entrada. Utilizada por la CPU para leer información de estado o datos procedentes del 8255. Utilizada por la CPU para enviar palabras de control o datos al 8255. Líneas de dirección: permiten seleccionar uno de los tres puertos o el registro de control.
PA0-PA7: Puerto A: puerto de entrada/salida de 8 bits. PB0-PB7: Puerto B: puerto de entrada/salida de 8 bits. PC0-PC7: Puerto C: puerto de entrada/salida de 8 bits.
Figura3.
Para que en este PPI (Figura3) solo reciba los datos mas no las direcciones, 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. 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. Además para el control de los 3 grupos (A, 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. Para nuestro programa utilizaremos las direcciones 0080, para el grupo A, 0082, para el grupo B y 0084, para el grupo C por lo que conectaremos A0 a Q1 (pin 5) y A1 a Q2 (pin 6). 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).
Inversor (7404): Inversor aumentado para conectar el lacth con el PPI puesto que la salida es lo contrario de lo se quiere.
Figura3.
Display 14 segmentos (8 dígitos): Utilizaremos este grupo de display para mostrar los mensajes escritos en el programa.
Figura4.
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.
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. 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.
Definimos todas las letras del abecedario y los numeros para que posteriormente las llamemos en una macro instrucción
Código:
Creamos una macro instrucción donde nos pida dato1,dato2,selec Primero mostramos los leds a prender que estará en el dato 2 a través del Grupo A, 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. posteriormente después de mostrar la letra deshabilitamos con 00 h el grupo C para no generar error al mostar el siguiente digito. Las palabras a mostrar en nustrodisplay será: ALUMNOS BONIFAZ EDUARDO 11132100 ; lo mostramos 3 veces el codigo 11321006 ; para q se vea como un despalzamiento 13210068 ; hacia la izquierda LOVATON EMILIO 11132202 11322024 13220244
Circuito en funcionamiento: Se muestra a mostrar la palabras pre establecidas
OBSERVACIONES: Cuando hacemos uso de nuestro PPI, cabe resaltar que la entrada y salida del PPI son en forma paralela por grupo, o sea se guardan o se escriben desde un registro de 8 bits, por eso solo utilizamos solo 8 pines del bus de datos (AD [0…7]), también se pueden utilizar 16 bits pero en ese caso se tendrían que utilizar 2 PPI. 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.
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. Además se ha podido observar, experimentar y aprender en nuestra simulación el funcionamiento del PPI 8255 y la variedad de aplicaciones que se les puede dar. Nuestro programa desarrollado , 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.
BIBLIOGRAFIA
Los microprocesadores Intel de Brey Barry B tercera edición http://www.youtube.com/watch?v=ljt71vVfgGo http://atc.unex.es/gacdl Repertorio de instrucciones del 8086/8088 http://es.wikipedia.org/wiki/Intel_8255 http://atc.ugr.es/docencia/udigital/1202.html
View more...
Comments