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