SIMULACIÓN DEL MICROPROCESADOR 8086

14
SIMULACIÓN DEL MICROPROCESADOR 8086 INTRODUCCIÓN: El microprocesador Intel 8086, (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 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.

Transcript of SIMULACIÓN DEL MICROPROCESADOR 8086

SIMULACIN DEL MICROPROCESADOR 8086

INTRODUCCIN:

El microprocesador Intel 8086, (llamados oficialmente iPX 86) es el primer microprocesador de 16 bits diseado por Intel. Fue el inicio y el primer miembro de la arquitectura x86, actualmente usada en la mayora 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 DISEO DEL PROYECTO:

Para el circuito externo el microprocesador 8086 usa un interface de E/S programable (PPI) y multiplexores para controlarlo. A continuacin veremos detalladamente cada uno de ellos con su descripcin y configuracin en Proteus.

Microprocesador 8086:

Figura1.En la figura 1, se tiene el microprocesador 8086 (simulacin en Proteus), donde AD [015] es el bus de datos y direcciones y A [1619] 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 laMultiplexacin de las direcciones.

FlipFlop 74373:

EL Flipflop 74373 asncrono 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, adems 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

Figura2.las direcciones) esto har que solo pasen las direcciones mas no los datos.

PPI 8255:

El Intel 8255 ProgrammablePeripheral Interface (PPI), interfaz programable de perifricos, se utiliza para dar al CPU acceso a puertos de entrada/salida paralela programable. Es un chip controlador de perifricos 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) ms tarde por muchos otros fabricantes. D0..D7:Bus de datos bidireccional de 3 estados.

RESET:Esta seal borra el Registro de control y todos los puertos (A, B y C) son colocados en modo entrada.

-RD:Utilizada por la CPU para leer informacin de estado o datos procedentes del 8255.

-WR:Utilizada por la CPU para enviar palabras de control o datos al 8255.

A0 y A1:Lneas de direccin: 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.

Descripcin del integrado:

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. Adems para el control de los 3 grupos (A, B y C) tenemos las lneas de direccin 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 sern llamados a un registro (DX) y sern 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 dgitos):Utilizaremos este grupo de display para mostrar los mensajes escritos en el programa.

Figura4.

EL CIRCUITO FINALIZADO:

CDIGO DEL PROGRAMA:

Debemos tener en cuenta primero los encabezados que nos pide el Proteus , estos son : Tamao Pila Datos CdigoSe reserva 512 bits para la pila.

Tenemos tambin los grupos:

GRUPOA=0080H GRUPOB=0082H GRUPOC=0084H

Estos hacen que las direcciones controlen el PPI a travs del latch especificado anteriormente.

Luego comenzamos con el cuerpo del cdigo:

Lo que se busca con este programa es mostrar palabras escritas desde el programa por medio de cdigos. Este programa est diseado para los nombres de los alumnos y sus respectivos cdigos indefinidamente.

Definimos todas las letras del abecedario y los numeros para que posteriormente las llamemos en una macro instruccin

Cdigo:

Creamos una macro instruccin donde nos pida dato1,dato2,selecPrimero mostramos los leds a prender que estar en el dato 2 a travs del Grupo A, despus mostramos el dato1 a travs del Grupo B y selec va a tener el dato del display a encender pero como el display a utilizar es ctodo comn con la instruccin not negamos ax y lo mostramos a travs del grupo C. posteriormente despus de mostrar la letra deshabilitamos con 00h el grupo C para no generar error al mostar el siguiente digito.Las palabras a mostrar en nustrodisplay ser:ALUMNOSBONIFAZEDUARDO11132100 ; lo mostramos 3 veces el codigo11321006 ; para q se vea como un despalzamiento13210068 ; hacia la izquierdaLOVATONEMILIO111322021132202413220244

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 [07]), tambin se pueden utilizar 16 bits pero en ese caso se tendran que utilizar 2 PPI.

Tenemos que tener en cuenta tambin 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 simulacin por medio del Proteus.

Adems se ha podido observar, experimentar y aprender en nuestra simulacin 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 programacin en EMU8086 donde hemos visto una vez ms como los subprogramas ayudan a ordenar el cdigo y hacerlo mucho ms rpido ya que es una opcin que est esperando a ser llamada y ejecutada cuantas veces sea necesaria.

BIBLIOGRAFIA

Los microprocesadores Intel deBrey Barry Btercera edicin http://www.youtube.com/watch?v=ljt71vVfgGo http://atc.unex.es/gacdlRepertorio de instrucciones del 8086/8088 http://es.wikipedia.org/wiki/Intel_8255 http://atc.ugr.es/docencia/udigital/1202.html