Ir a la página principal del Dto. de Electricidad del IES "Río Cuerpo de Hombre"Ir a la portada de la revistaZona de descargaElectroEnlacesLos que han colaborado en este WEBContacte con nosotrosIr al WEB del IES "Río Cuerpo de Hombre" Ir a Portada REEA ElectroEnlaces
.

.Simulador SIM8085
 
En esta práctica la intención es que toméis un primer contacto con el 8085, y realizar los ejercicios de un microprocesador en un PC, para después pasarlos a la práctica.

Los ejercicios van ordenados de menor a mayor complejidad, realízalos primero en una hoja aparte, discutiéndolo con tus compañeros de práctica, y realízalos en el ordenador.

Tienes que ensamblarlos, comprobar que funcionan, y entregar los listados *.LST o *.ASM, no entregues una hoja por ejercicio, sino un listado donde estén todos los listados de los ejercicios para ahorrar papel.

Ejercicios:

10.1.- Realizar una transferencia de datos [1500] <= [1503] y [2500] <= 0 con las instrucciones MOV MVI.
  10.2.- Idem pero con las funciones LDA y STA

10.3 .- Sumar 3 números de 1 byte, almacenar su resultado y su posible acarreo, [1003] <= [1000]+[1001]+[1002] el acarreo almacenarlo en [1004]

10.4.- Sumar dos números de 2 bytes de la siguiente forma, con registros simples

1º número         [1000][1001]
2º número    + [1002][1003] .
resultado [1006] [1004][1005]
10.5.- Idem con registros dobles.

10.6.- Multiplicar un número por 4 de la siguiente forma : [1001] <= [1000] * 4

10.7.- Multiplicar 2 números de un byte : [1002] <= [1000]*[1001]

10.8.- Dividir 2 números de un byte : [1002] <= cociente [1000]/[1001]
                                                     [1003] <= resto de [1000]/[1001]

10.9.- Hacer un intermitente de un LED por el puerto paralelo OUT 00H

10.10 .- Encender 8 Leds secuencialmente por el puerto paralelo OUT 00H

10.11.- Ejercicio de libre enunciado, tiene que ser original respecto a los demás grupos de prácticas, si no se te ocurren enunciados, consulta al profesor, imprime el listado *.ASM y adjúntalo a los anteriores, crea una transparencia del diagrama en bloques para exponerlo a la clase y explicar a los demás qué has hecho y cómo. Este ejercicio es el que realmente puntúa. Cuando acabes con la exposición, enseña todos los listados al profesor. (Esto se hace para obligar a que tengas los listados, quizás el día de mañana los necesites)


3.- Manejo del micro 8085 desde el PC

3.1 Introducción

Para utilizar el micro 8085 desde el PC, se debe de poner el conmutador Teclado/CRT en la posición CRT. En el fichero CONFIG.SYS del PC debe de existir la línea DEVICE=ANSI.SYS. Y también tener conectado un cable conexión serie de tres hilos de la siguiente forma:

En el micro (tres hilos) En el PC (macho de 25 pines)
TX ------------------------- RX (3)
RX ------------------------- TX (2)
  RTS (4) con CTS (5)
GND ----------------------- GNE (7)
  DSR (6) con DTR (20)

Ejecutar el fichero DDT85 he indicar en qué puerto esta COM1 COM2 etc..., de esta forma se consigue una comunicación de 2400 baudios cada dato de 8 bits, con 2 de stop. Pulsar INIC antes de utilizar los comandos. Si se quiere ensamblar un fichero por ejemplo PRUEBA.ASM para el 8085, ejecutar HACERHEX PRUEBA, es un fichero BATH que ensambla y ejecuta a la vez el DDT85.

3.2 Comandos

D dirección baja,dirección alta =Visualiza la memoria desde la dirección alta hasta la baja, ejem D1009,2A50
Gdirección comienzo =ejecuta el programa desde la dirección comienzo, si no se pone, ejecuta desde donde apunta el registro PC.
N =ejecución paso a paso
I dirección =inserta en la memoria a partir de dirección.
Mdirección baja, dirección alta, destino = mueve la memoria, ejem M1E00,1E06,1F00 = mueve el bloque de memoria desde la 1E00 hasta 1E06 a la 1F00
Sdirección =Visualiza y modifica la dirección, ejem S1000
Xregistro =Visualiza y modifica los registros, ejem XA, si no se pone el registro, los visualiza en este orden: A B C D E F H L M P S
L nombre del programa offset = carga un programa desde el ordenador a partir de la dirección 1000H, el offset es el número de posiciones de memoria que se incrementa el programa, ejem offset=10, entonces lo carga en la 1010, luego es aconsejable utilizar en vuestros programas ORG 0000H o ORG 0500H
H = fin de la comunicación
3.3 Subrutinas

Estas son algunas de las subrutinas que podéis utilizar:
 
Dirección nombre descripción Interrupc reg. alt.
0A51 CI1 Carácter de consola al acumulador Masc F
0A5D CO1 Del registro C al display   A F
0A33 PRIMES un mensaje que esta en memoria, que comienza en la dirección apuntada por HL se visualiza en el display   A H L F
0AB7 ADRD el contenido de HL se visualiza en el display   A B C F
04C9 UPDAD "   TODOS
04D5 UPDDT el contenido del acumulador se visualiza en el display   "
0B74 DELAY retraso de 1 mseg    
044E RDKBD ídem CI1   H L F
041D OUTPT ídem Primes    
037D GTHEX nº hex de 2 bytes ejem A725 desde el teclado, al display y al registro DE    
02BF TODIR Idem que el anterior, pero sin visualizarlo    

Para utilizar estas subrutinas, hay que utilizar el comando EQU, por ejemplo:

RDKBD EQU 044EH
UPDDT  EQU 04D5H
Para permitir desenmascarar todas las interrupciones, es necesario poner 08H al Acumulador, y ejecutar SIM, y para habilitar el sistema de interrupciones EI

Estas direcciones pertenecen a la ROM y son inalterables, pues vienen de fábrica.

3.4 Direcciones de nuestros programas.

Nos dividiremos la memoria RAM para efectuar nuestros programas y así no "chafar" los programas de nuestros compañeros:
 
grupo
direcciones
grupo
direcciones
profesor
1000
10FF
GRUPO 4
1700H
18FFH
GRUPO 1
1100H
12FFH
GRUPO 5
1900H
1ªFFH
GRUPO 2
1300H
14FFH
GRUPO 6
1B00H
1CFFH
GRUPO 3
1500H
15FFH
LIBRE
1D00H
1FFFH

4 Manejo del micro 8085 desde la cónsola

4.1 Introducción

El 8085 como tiene los buses de datos y el de direcciones multiplexado, el 74373 los demultiplexa, 8085 ------ AB y DB (8) ------- 74373 ----- ABL (8) ----- DB(8)

Tiene un reloj de cuarzo de 4.915 MHz, un dedodificadro de 3 a 8 canalies 74138 y puertas and 7408 para la realización del mapa de memoria, que es la siguiente:
 
Direcciones chip, mapa hardware descripción, mapa software
0000
0FFF
EPROM 4k
2732
Programa monitor de la cónsola y subrutinas anteriores
1000
1FFF
2x RAM 2k
4016
Programas de usuario
2000
20FF
RAM 256 bytes
8155 U17
Utilizado por la cónsola

Periféricos:

Tiene una ranura de expansión J1 de 50 hilos, una salida MIC EAR para comunicarse con un cassette, como memoria externa, y tres puertos:
 
tipo jumper puerto chip ref
SERIE J8   8251 U13 U11 U12
PARALELO J5
J6
J7
PA
PB
PC
81555 U14
" J2
J3
J4
PA
PB
PC
8255 U15

4.2 Comandos

INIC = Se produce un "reset" y aparece en el display 8085.
S.M/ANT =Sustituir memoria y anterior

POST =Posterior, equivale al "enter"
ejemplo, queremos meter a partir de la dirección 1000 los siguientes datos 31,8C,1F, solución: SM/ANT 1000 POST 31 POST 8C POST 1F si hay error: SM/ANT 1000 POST 31 POST 8D POST SM/ANT 8C POST 1F

E REG =Examinar los registros, para ver uno concreto, pulsar su nombre, si quieres ver todos, pulsar POST (hacia delante) o ANT (hacia atrás) y se verán en el siguiente orden: A B C D E F I H L SPH SPL PCH PCL
F= S Z X AC X P C
I=X X X IE M7.5 M6.5 M5.5
IE =Validación de interrupciones, y las M son las máscaras de las interrupciones

GO = Ejecuta el programa, visualiza el PC, introducir la dirección de comienzo, y pulsar EJEC, para interrumpir INIC, el programa puede finalizar con alguna instrucción como RST0, RST1 o JMP 0000H, se aconseja situar la pila al final (LXI SP. 1FFFH)

EJEC =Ejecuta paso a paso, POST para pasar al siguiente paso

INTR VECT = Se realiza la interrupción 7.5, (RST 7.5), es un interruptor conectado directamente al pin 7 del 8085 (Ver interrupciones)
E =Lee un programa desde el cassette C =Graba un programa al cassette

4.3 Interrupciones

En las interrupciones vectorizadas, el micro salta a una dirección fijada, donde se trata a la interrupción, hay de dos tipos:
Interrupciones tipo software: RST0, RST1, RST2 .... RST7
Interrupciones tipo hardware: RST5.5, RST 6.5, RST7.5, INTR, TRAP
(la interrupción 5.5 es la que utiliza el teclado)
En las interrupciones tipo hardware, es necesario que para que no tengan máscara, para quitarles las máscara se puede modificar el registro I, o con la instrucción SIM.
También hay que validarlas con la instrucción EI
En la interrupción 7.5 el 8085 salta a la dirección 00CEH, que en este entrenador esta en la ROM, y tiene grabado la siguiente tabla:
00CE C3
00CF CE
00D0 20

Es decir JMP 20CE, lo que significa que vuelve a saltar a la dirección 20CE y que pertenece a la RAM pequeña 8155, que sólo tienes 3 sitios libres, donde se puede poner un salto a otra dirección de tu programa entre la 1000 y la 1FFF
Conclusión: si pulsas la tecla INT7.5 el programa salta a la dirección 20CE y sólo tienes 3 sitios libres para poner lo que desees.

4.4 Grabar y leer programas desde una cinta de cassette

Grabar:

Leer:
  1. Prácticas
5.1 Prácticas para el manejo del entrenador

Enunciado:
Se realizará un programa que efectue la suma de los 10 primeros números hexadecimales, es decir 1+2+3+4+5+6+7+8+9+A, el resultado da 37H.

Solución:

Programa:

Realizarlo en el entrenador a través del ordenador, y desde la consola, observar sin pulsar INIC pues borra los contenidos de todos los registros, como en el acumulador se ha almacenado un 37H

Desde el ordenador hacer el fichero que se llame por ejemplo PRUEBA.ASM y ejecutar después HACERHEX PRUEBA.
(todo en el directorio 8085). Cargar el programa con el comando L, y ejecutar con G1000 (recordar que ORG 0000H).

Desde la consola, ir metiendo los códigos máquina en hexadecimal, con la tecla SME/ANT y ejecutar con GO 1000 y EJEC.


©  Autor: J.J. Quintana Péiro