50
Facultad de Ingeniería ETN-801 Microprocesadores Ingeniería electrónica Aux.: Univ. Ariel Marcos Condo Merlo 1 Lenguaje de Maquina Un microprocesador solo puede entender lenguaje de maquina (Código). Los lenguajes de programación como los el BASIC, FORTRAN, C++ que son lenguajes de alto nivel son equipados internamente con funciones de traducción. Por lo tanto el usuario encuentra el lenguaje fácil y conveniente para el uso. Pero los lenguajes de alto nivel, como funcionan a través defunciones de traducción, por lo tanto la velocidad de proceso se hace de manera lenta, por que las instrucciones pasan por una etapa intermedia que es la traducción. Diagrama de flujo de programas escritos con lenguajes de alto nivel Diagrama de flujo de programas escritos con lenguaje de maquina Expresiones de Instrucciones Los lenguajes de máquina de un microprocesador están representados por una combinación de „1‟ y ‟0‟ Como ejemplo en un microprocesador de 8 bits, una instrucción es expresada por una combinación de grupos de numerosa binarios llamado 1 byte. Es el código de máquina para el up z80 que nos representa Mover el contenido del registro D al registro A

Tutorial Trainers

Embed Size (px)

DESCRIPTION

Tutorial Trainers

Citation preview

Page 1: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 1

Lenguaje de Maquina

Un microprocesador solo puede entender lenguaje de maquina (Código). Los

lenguajes de programación como los el BASIC, FORTRAN, C++ que son lenguajes de

alto nivel son equipados internamente con funciones de traducción. Por lo tanto el

usuario encuentra el lenguaje fácil y conveniente para el uso. Pero los lenguajes de alto

nivel, como funcionan a través defunciones de traducción, por lo tanto la velocidad de

proceso se hace de manera lenta, por que las instrucciones pasan por una etapa

intermedia que es la traducción.

Diagrama de flujo de programas escritos con lenguajes de alto nivel

Diagrama de flujo de programas escritos con lenguaje de maquina

Expresiones de Instrucciones

Los lenguajes de máquina de un microprocesador están representados por una

combinación de „1‟ y ‟0‟

Como ejemplo en un microprocesador de 8 bits, una instrucción es expresada

por una combinación de grupos de numerosa binarios llamado 1 byte.

Es el código de máquina para el up z80 que nos representa

Mover el contenido del registro D al registro A

Page 2: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 2

La combinación de „1s‟ y ‟0s‟ es muy dificultoso para recordar como una

instrucción y normalmente un número binario de 8 bits es dividido en dos partes (cada

uno de 4 bits) cada parte representada por un número hexadecimal.

El anterior código de maquina es expresado como:

En otras palabras, su representación es 7Ah (h significa número hexadecimal),

pero también se hace dificultoso entender para la gente la expresión hexadecimal, por

lo tanto se adopta el nombre nemotécnico correspondiente a cada código de maquina,

Este lenguaje varía con cada CPU en el caso del uP z80 el nemotécnico de la

instrucción 7Ah es:

En este caso LD significa “Load Data”, podemos tener instrucciones que no

solamente tengan un tamaño de 1 byte sino que podemos tener de 2,3,4 bytes a

continuación se muestran algunos ejemplos de estas clases de instrucciones:

Page 3: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 3

Procedimiento para el diseño de un programa

Diseño de un acoplamiento con pantalla de leds kentac 800z

1. Consideraciones para el Análisis y el diseño

Matriz de Leds.-

Funcionamiento de la matriz de leds

Información binaria de las filas:

0000 1000 >> 08h 1scan

0000 0100 >> 04h 2scan

0010 0010 >> 22h 3scan

0000 0010 >> 02h 4scan

0000 0010 >> 02h 5scan

0010 0010 >> 22h 6scan

0000 0100 >> 02h 7scan

0000 1000 >> 08h 8scan

Los periféricos de I/O

Tarjeta Número Nombre Dirección Nota

E/S IC2 8255 F8 Puerto A (entrada)

F9 Puerto B (salida)

FA Puerto C (salida)

FB COMANDO

E/S IC1 8255 FC Puerto A (entrada)

FD Puerto B (salida)

FE Puerto C (salida)

FF COMANDO

Page 4: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 4

Configuración del Conector CN2

Circuito propuesto

Page 5: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 5

2. Algoritmo

§ A. Variables y datos

1. Contador de datos

- De un valor del numero de columna de la matriz

- De un valor de veces que se realiza la visualización

2. Puntero a bloque de datos fila de la matriz

3. Bloque de datos de la fila de la matriz

4. Acumulador para poder sacar los datos

5. Pila para el almacenamiento de la variable de escaneo

6. Retardo para la visualización

7. Puertos de salida fila y columna

§ B. Procedimiento

1. Iniciar variables

- Contador1 veces de visualización

- Puntero de pila (SP)

- Dirección de memoria datos de la fila

2. Iniciar variables para ver una sola vez la figura

- Contador2 columnas de la matriz

- Acumulador valor para habilitar la columna

- Puntero

3. Transferir los datos de fila y columna a los puertos

- Puerto_columna Acumulador

- Depositar a la pila el Acumulador

- Acumulador Leer el dato de la memoria

- Puerto_fila Acumulador

- Apuntar a la siguiente posición de dato de fila

- retardo

- Recuperar de la pila el valor de habitar la columna

- rotar a la derecha

- Decrementar el valor del contador 2

4. ¿Ultimo valor de columna?

No, Repetir el paso 3

5. ¿Ultimo valor de despliegue de la figura?

No, Repetir desde el paso 2

6. Finalizar

Page 6: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 6

3. Flujo grama.-

Desplegar figura por matriz

Iniciar Variable

- Contador 1 veces de visualización

- Puntero de pila (SP)

- Dirección de memoria datos de la fila

Iniciar variables para ver

una sola vez la figura

- Contador 2 columnas de la matriz

- Acumulador valor para habilitar la columna

- Puntero

Transferir los datos de

fila y columna a los

puertos

- Puerto_columna Acumulador

- Depositar a la pila el Acumulador

- Acumulador Leer el dato de la memoria

- Puerto_fila Acumulador

- Apuntar a la siguiente posición de dato de fila

- retardo

- Recuperar de la pila el valor de habitar la columna

- rotar a la derecha

- Decrementar el valor del contador 2¿Ultimo valor de

columna?

NO

Decrementar el valor de veces que se

quiere visualizar

- Contabiliza el numero de columnas de la matriz

- ¿ultima columna? No , repetirSI

- Es el número de veces que se podrá

visualizar la figura en la matriz

¿Ultimo valor de

despliegue de la figura?

NO

FIN

SI

- Contabiliza el numero de veces que se

observara la figura

- ¿ultima columna? No , repetir

Page 7: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 7

4. Modelo de Programación Microprocesador z80

Bloque de datos fila octetos en memoria

Puerto de salida columnas (FDh)

Puerto de salida filas (FEh)

Transporte acumulador A

Puntero de datos BC

Puntero de datos IX

Puntero de pila SP

Contador de columnas C

Contador de veces H

Nota: Se reutilizara el acumulador A para que se pueda sacar datos de los puertos (FDh) y

(FEh).

Se utilizara un servicio del entrenador Kentac 800z que es el del retardo de 1ms (call

0103h) que necesita del registro E 0Ah

5. PROGRAMA ;segmento de datos de fila de la figura

org 8010h

SCAN1 DEFB 08H

SCAN2 DEFB 04H

SCAN3 DEFB 22H

SCAN4 DEFB 02H

SCAN5 DEFB 02H

SCAN6 DEFB 22H

SCAN7 DEFB 02H

SCAN8 DEFB 08H

;segmento de programa

org 8050h

LD H,0Ah ;contador de veces de mostrar la figura

LD SP,8EFFh ;segmento inferior de la memoria del entrenador

LD B,80h ;direccion de memoria donde se encuentan

LD C,10h ;los datos

LD (8000h),BC ;almacenamos en la dirección 8000h

LD E,0Ah ;para uso del servicio 0103h

bucle1:

LD C,08h ;numero de columnas de la matriz

LD A,80h ;habilitador de columnas

LD IX,(8000h) ;apuntamos a la dirección de los datos

bucle2:

OUT (0FDh),A ;sacamos el bit que habilita columnas

PUSH AF ;almacenamos e la pila

LD A,(IX+0) ;cargamos el dato de fila dela matriz

OUT (0FEh),A ;sacamos el dato de la fila

INC IX ;actulizamos el puntero

CALL 0103h ;retardo de 1mS...5ms

POP AF ;recupera el bit que habilita la columna

RRCA ;rotamos el A a la derecha

DEC C ;decrementa el # de columnas

JP NZ,bucle2 ;si no es cero salta a bucle 2

DEC H ;decrementa el # de veces que se visuliza

JP NZ,bucle1 ;si no es cero salta a bucle 1

HALT ;alto

.END

Page 8: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 8

6. Programa en Lenguaje de Maquina

0001 0000 ;segmento de datos de fila de la figura

0002 0000 org 8010h

0003 8010 08 SCAN1 DEFB 08H

0004 8011 04 SCAN2 DEFB 04H

0005 8012 22 SCAN3 DEFB 22H

0006 8013 02 SCAN4 DEFB 02H

0007 8014 02 SCAN5 DEFB 02H

0008 8015 22 SCAN6 DEFB 22H

0009 8016 02 SCAN7 DEFB 02H

0010 8017 08 SCAN8 DEFB 08H

0011 8018 ;segmento de programa

0012 8018 org 8050h

0013 8050 26 0A LD H,0Ah ;contador de veces de mostrar la figura

0014 8052 31 FF 8E LD SP,8EFFh;segmento inferior de la memoria del entrenador

0015 8055 06 80 LD B,80h ;direccion de memoria donde se encuentan

0016 8057 0E 10 LD C,10h ;los datos

0017 8059 ED 43 00 80 LD (8000h),BC ;almacenamos en la dirección 8000h

0018 805D 1E 05 LD E,05h ;para uso del servicio 0103h

0019 805F bucle1:

0020 805F 0E 08 LD C,08h ;numero de columnas de la matriz

0021 8061 3E 80 LD A,80h ;habilitador de columnas

0022 8063 DD 2A 00 80 LD IX,(8000h);apuntamos a la dirección de los datos

0023 8067 bucle2:

0024 8067 D3 FD OUT (0FDh),A ;sacamos el bit que habilita columnas

0025 8069 F5 PUSH AF ;almacenamos e la pila

0026 806A DD 7E 00 LD A,(IX+0) ;cargamos el dato de fila dela matriz

0027 806D D3 FE OUT (0FEh),A ;sacamos el dato de la fila

0028 806F DD 23 INC IX ;actulizamos el puntero

0029 8071 CD 03 01 CALL 0103h ;retardo de 1mS...5ms

0030 8074 F1 POP AF ;recupera el bit que habilita la columna

0031 8075 0F RRCA ;rotamos el A a la derecha

0032 8076 0D DEC C ;decrementa el # de columnas

0033 8077 C2 67 80 JP NZ,bucle2 ;si no es cero salta a bucle 2

0034 807A 25 DEC H ;decrementa el # de veces que se visuliza

0035 807B C2 5F 80 JP NZ,bucle1 ;si no es cero salta a bucle 1

0036 807E 76 HALT ;alto

0037 807F .END

0038 807F

Number of errors = 0

Page 9: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 9

SIMULADOR KENTAC Z800mk2

El simulador y ensamblador del uP z80 que se explicaran en esta guía es el “Z80

simulator IDE”

Creación del archivo *.asm

Un programa alternativo para la realización de archivo *.asm es el programa

“Notepad++Portable” que es un programa que nos permite realizar el archivo, pero

que no es una condicionante ya que el archivo *.asm también puede ser escrito en el

bloc de notas de Windows

Para el ejemplo es el siguiente:

Utilizando el programa Notepad se evita cometer errores comunes como es el de las

tabulaciones, los comentarios y las etiquetas ya que se ve de diferente color cada una

de estas.

Page 10: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 10

Para poder guardarlo en formato *.asm en el programa notepad tiene que estar

seleccionado la opción de lenguage Assembly en la barra de herramientas del

programa editor, o con note pad con la extensión *.asm

Creación del archivo *.obj y el archivo *.lst

Para poder crear el archivo *.lst y el *.obj que nos sirven para poder cargar en los

entrenadores los que tenemos que hacer es ensamblar el programa editado con la

extensión *.asm

Luego de la instalación del programa accedemos de la siguiente forma:

Page 11: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 11

Que nos proporciona la siguiente ventana

Luego debemos entrar a la opción de la barra de herramientas tools Assembler

Page 12: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 12

Donde luego nos proporciona la ventana del ensamblador del up z80 donde también se

puede realizar la edición del archivo *.asm

Como para este ejemplo el archivo ya esta diseñado en esta ventana debemos abrir el

archivo *.asm accediendo a FileOpen

Page 13: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 13

El archivo para este ejemplo es el MATz80.asm

Luego de cargar el archivo se podrá ver de la siguiente manera en la ventana de

trabajo del ensamblador.

Page 14: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 14

Una vez cargado el archivo *.asm debemos ensamblarlo en la barra de herramientas

tools Assemble o simplemente presionando la tecla F7, luego de realizar esta

operación podemos ver el reporte de los errores que se cometieron en la edición

En caso de existir errores el ensamblador nos indica en que líneas se encuentran los

errores:

Page 15: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 15

Luego de corregir los errores el ensamblador nos proporciona el mensaje de Number of

errors = 0

En el caso de no existir errores entonces se crean los archivos *.obj y *.lst donde el

archivo *.obj nos sirve para poder cargar al simulador y el archivo *.lst nos sirve para

poder cargar en el entrador Z800km2 (Kentac)

Page 16: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 16

El archivo *.lst tiene la siguiente estructura

Donde se puede ver en la primera columna donde se encuentra el numero de líneas de

las instrucciones y en lña segunda columna el lenguaje ensamblador del up z80 y a

continuación el programa diseñado, lo mas importante de este archivo es el lenguaje

ensamblador el cual será utilizado en el entrenador.

Page 17: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 17

Simulación del programa con el Z80 Simulador IDE

Para poder realizar la simulación debemos seguir los siguientes pasos:

a) Cargamos el programa con la opción Load o presionando ctrl.+L

Que luego de presionar no muestra lo operación que esta realizando y el tamaño del

programa en la parte inferior de la ventana del editor del programa

Page 18: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 18

Otra forma es poder acceder de la ventana inicial del simulador y acceder a la barra de

herramientas con la opción de File Load Program

Y seleccionamos el archivo *.obj para cargar la simulación

Page 19: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 19

Como se puede ver se encuentra la dirección donde se encuentra el archivo *.obj

Antes de comenzar con la simulación debemos configurar algunos parámetros del

simulador y que tenemos las siguientes opciones

Simulación

1 Start F1 Iniciar la simulación en forma secuencial

2 Step F2 Iniciar la simulación en forma paso a paso

3 Stop F3 Para la simulación del programa

Page 20: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 20

Rate

1 Step by Step Ctrl.+F1 (Paso a Paso)

2 Slow Ctrl.+F2 (Lento)

3 Normal Ctrl.+F3 (Normal)

4 Fast Ctrl.+F4 (Rápido)

5 Extremely Fast Ctrl.+F5 (Extremadamente Rápido)

6 Ultimate (No refresh) Ctrl.+F6

En esta opción podemos seleccionar la velocidad con que se ejecuta la simulación

Tools

Memory Editor Ctrl.+M (Editor de Memoria)

Disassembler Ctrl.+D (Desensamblador)

Peripheral Devices Ctrl.+P (Dispositivos Periféricos)

I/O Ports Editor Ctrl.+I (Editor de puertos I/O )

External Modules Ctrl.+X (Módulos externos)

Assembler Ctrl.+A (Ensamblador)

Brekpoints Manager Ctrl.+B (Postas de Parada )

BASIC Compliler Ctrl.+R (Compilador básico)

IEEE 754 Conversión Tool Ctrl.+T (Conversión a punto flotante)

Simulation log Viewer Ctrl.+V (Visor de simulación)

Interactive Assembler Editor Ctrl.+E (Editor de ensamblado interactivo)

Page 21: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 21

Para la simulación las ventanas que necesitamos son las siguientes

Visor de simulación

En esta ventana se pueden ver los estados de todos los registros y banderas que con

cada paso de instrucción se van actualizando los valores, esta lista es posible

guardarlos como archivo de texto.

Page 22: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 22

Editor de Memoria

En esta ventana se observa el contenido de las posiciones de memoria desde una

dirección 0000 hasta FFFF, las cuales se pueden cambiar haciendo un clic en la

posición de memoria que se desea cambiar y luego ENTER

Page 23: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 23

Edito de puertos de I/O

Tenemos la opción de poder ver los puertos de I/O desde una dirección 00 a F0h

Inicio de la Simulación

Lo primero que se debe realizar es de cambiar la dirección de inicio del programa con

la opción de la barra de herramientas Opcion Change Staring Adress

Que nos da la opción de variar la dirección des de 0000 hasta FFFF.

En el caso del ejemplo el programa empieza en la dirección 8050h y después de

cambiar la dirección de inicio y de ejecutar en forma paso a paso se presenta la

siguiente ventana.

Page 24: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 24

Tenemos que tomar en cuenta que se presenta la anterior instrucción y la siguiente

instrucción y se van actualizando los registros las banderas, etc.

Page 25: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 25

Y las demás ventanas se presentaran del siguiente modo:

Editor de Memoria

Editor de puertos I/O

Page 26: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 26

Visor de simulación

Cuando finalice el programa se observara la siguiente ventana

Page 27: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 27

Cargar un programa al entrenador Kentac z800km2

El maletín del entrenador se presentara como la anterior figura, que tiene las

siguientes características:

Tarjeta del CPU

CPU :Z80A

Velocidad: 8MHz (Velocidad de la CPU es 4MHz)

Memoria: ROM 2732 x4 16Kbytes

: RAM HM6117LP-3 x2 4Kbytes

E/S de serie: RS232(8251) x 1

: Velocidad 150 – 19200 baud

E/S paralelo: 8255 x2 (8 bits x 3 puertos)

Interrupción: 8259 x1 6 niveles para usuario (IR1-IR6)

Tarjeta de E/S

Introducir : 25 botones

Indicar: 8 cifras de números

E/S paralelo: 8255 x2 (8 bits x 6 puertos)

: Salida 8 leds x 2 puertas

: Entrada 8 botones y 8 Leds

Entrada de Interrupciones: 2 niveles IRQ5, IRQ6

Page 28: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 28

El alumno deberá instalar la tarjeta de Entrada/Salida que es la siguiente a través de

su bus de trabajo.

Tarjeta de E/S

Conexión de la tarjeta de E/S

Page 29: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 29

Al encender el entrenador se inicia automáticamente

Presionando la tecla de RESE y la tecla de nos muestra lo siguiente los

display

Escribir un programa

La estructura de la información que nos muestra es la siguiente:

Page 30: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 30

Para poder escribir el programa en lenguaje de maquina primero se tiene que definir

las direcciones

Definir las direcciones

Por ejemplo: si queremos establecer la dirección 8000h se realiza le siguiente

procedimiento.

(1) Primero presionamos una vez y presionamos:

, , ,

Y en la pantalla de display se observa la siguiente información

(2) Segundo presionamos , se observa 8000 en el lado izquierdo de la

pantalla y luego al lado derecho se observa un dato de 2 cifras que indican el dato

que esta contenido en la dirección 8000h en ese momento.

Se usa para escribir un dato en una dirección establecida

Page 31: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 31

Por ejemplo:

Si queremos escribir el siguiente programa:

Introducimos:

de la siguiente manera:

(1) Definimos la dirección de inicio del programa, con la tecla , como se

definió anteriormente.

(2) Presionamos , y , entonces la pantalla se observa el siguiente

dato

(3) Presionamos entonces como se observa.

La tecla de escritura tiene la facultad de poner el dato y de incrementar la dirección

Page 32: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 32

(4) A continuación se debe presionar , entonces la pantalla se

observa del siguiente modo:

Otra vez presionamos ,luego como se observa se incrementa la dirección y a

continuación se van llenando todos los datos que se pretende introducir.

Antes de ejecutar el programa debemos verificar los datos introducidos.

Teclas para verificar los datos introducidos en cada dirección.

Se usa para leer e incrementar la dirección

Se usa para leer y decrementar la dirección

Ejecutar el Programa

Se realiza el siguiente procedimiento:

(1) Presionamos , , , ,

Page 33: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 33

Que es la dirección inicial del programa, es decir donde empieza el programa , la

pantalla se observara lo siguiente:

La tecla tiene la función de ejecutar el programa desde la dirección que

esta establecida.

(2) Presionamos la tecla para detener el programa que se esta ejecutando.

tiene la función donde la computadora vuelve al estado del monitor en

Kentac 800z (estado para escribir y probar los programas), tambien podemos ver los

registros, y las banderas

(3) Observar el contenido de los registros, primero presionamos , y después

escogemos que registro queremos revisar.

O puede ejecutar la opción de presionar la tecla y después y un

nombre de algún registro.

Page 34: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 34

(4) Si se desea continuar con el programa se presiona la tecla , y continua el

programa desde donde se detuvo.

NOTA

Se tiene que presionar la tecla y establecer la dirección con

Otras Funciones.

Mover memoria ,

Esta función sirve para mover los contenidos escritos en memoria a diferentes

direcciones sin modificar contenidos, por ejemplo se puede usar para mover el

contenido de las direcciones 8000h a 8100h hasta la dirección 8200h a 8300h.

La forma de ejecutar esta función es presionando y .luego se

realiza los siguientes pasos

a. Introducir 4 hexadecimales de la primera dirección para mover dentro de la

memora los datos, y presionamos

b. Introducir 4 hexadecimales de la ultima dirección y presionamos

c. Finalmemnte 4 hexadecimales de la primera dirección a donde se quiere mover

los datos, y presionamos , entonces se procede a mover los datos

Page 35: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 35

Llenar en memoria , Esta Función sirve para llenar en memoria el dato deseado, por ejemplo si queremos

llenar la dirección 8000h a 8100h con el dato 00h debemos seguir los siguientes pasos.

La forma de ejecutar esta función es presionando y .luego se

realiza los siguientes pasos

a. Introducir 4 valores hexadecimales que es la primera dirección para modificar

los contenidos en la memoria y presionamos

b. Introducimos 4 valores hexadecimales que es la ultima dirección y presionamos

c. Finalmente introducimos 2 valores hexadecimales que es el dato deseado y

presionamos , entonces se procede a llenar las direcciones de

memoria con ese dato.

Entrada de datos (IN) ,

Esta función es usada para introducir los datos de los puertos en este caso la entrada

de datos, se debe seguir los siguientes pasos:

a. Presione , y este le indicara el estado de IN.

b. A continuación se introduce el valor de la dirección del puerto de IN (2 datos

hexadecimales, y presione entonces se observa el dato del puerto en

los leds

Page 36: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 36

Salida de datos (OUT) ,

Esta función sirve para sacar los datos a los puertos de salida

Se debe seguir los siguientes pasos:

a. Presionar , y este le indica el estado de OUT en los

leds.

b. Introducir la dirección del puerto de salida y presione (2 valores

hexadecimales) y presione .

c. A continuación introducimos los datos que se quiere sacar por el puerto. Y se

presiona

Page 37: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 37

SIMULADOR “SIMU TRAINER 7.0”* PARA EL PROCESADOR 6800 Y 8080

Una vez instalado en se accede de la siguiente forma haciendo doble clic en el icono

SimuTrainer7.0

El simulador cuenta con herramientas para realizar la simulación y ensamblado de los

programas elaborados para los procesadores 6800 y 8080 en este documento solo se

tomara en cuenta al 6800 siendo los pasos para el 8080 los mismos.

Luego de acceder al programa la pantalla se observa de la siguiente manera

Elegimos la Opción ET-3400 que es el entrenador para el procesador 6800 y

seleccionamos el icono programar

* Este simulador fue diseñado por el Univ. Alonso S. Choque

Page 38: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 38

Luego se observa la siguiente ventana.

Para poder abrir el archivo *.asm se tiene que presionar el icono abrir de la pequeña

barra de herramientas.

También como en el caso del simulador z80 IDE se puede editar el programa *.asm o

un archivo de texto *.txt o cualquier archivo editado por el bloc de notas simplemente

abrir.

Page 39: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 39

Luego la ventana se observara de la siguiente manera:

Para poder ensamblar el documento debemos presionar el icono Ensamblar

En caso de existir un error nos muestra el tipo de error y en que fila se encuentra este

Page 40: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 40

Si el documento no tiene errores nos mostrara la siguiente ventana.

Que es el código ensamblado

Este documento puede ser impreso o copeado para el uso en laboratorio

Page 41: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 41

0001 0000 ; *********************************************************************************** 0002 0000 ; UNIVERSIDAD MAYOR DE SAN ANDRES 0003 0000 ; FACULTAD DE INGENIERIA 0004 0000 ; CARRERA DE INGENIERIA ELECTRONICA 0005 0000 ; ETN 801 - MICROPROCESADORES 0006 0000 ; ************************************************************************************ 0007 0000 ; mrp_0301.asm 0008 0000 ; Multiplicación de dos números binarios de cuatro bits 0009 0000 ; por el metodo del desplazamiento y acumulación parcial 0010 0000 ; Procesador : 6800 0011 0000 ; Ing. Marcelo Ramirez M. 0012 0000 ; 15/05/2004 0013 0000 ; ************************************************************************************ 0014 0000 ; *** Equivalencias *** 0015 0000 TAMAÑO .equ 8 ;Multiplicacion de 8 digitos 0016 0000 ; *** Datos *** 0017 0000 .dseg 0018 0000 .org 0 0019 0000 00 00 prod .word ? ; producto 0020 0002 02 mador .byte 02 ; multiplicador 0021 0003 05 mando .byte 05 ; multiplicando 0022 0004 ; *** programa *** 0023 0004 .cseg 0024 0100 .org 0100h 0025 0100 ; ***iniciar variables 0026 0100 0027 0100 CE 00 00 ldx #prod ; borrar producto 0028 0103 6F 00 clr prod,x 0029 0105 C6 08 ldab #TAMAÑO ; contador de dígitos 0030 0107 ; ***analizar LSB del multiplicador 0031 0107 0032 0107 ciclo: 0033 0107 64 02 lsr mador,x ; aislar LSB 0034 0109 24 06 bcc actualizar ; ¿LSB = 1 ? No, omitir suma 0035 010B ; *** sumar multiplicando al producto 0036 010B 0037 010B A6 00 ldaa prod,x 0038 010D AB 03 adda mando,x 0039 010F A7 00 staa prod,x 0040 010F 0041 0111 ; *** actualizar suma pacial 0042 0111 actualizar: 0043 0111 64 00 lsr prod,x 0044 0113 66 01 ror prod+1,x 0045 0115 ; *** ¿Ultimo digito? 0046 0115 5A decb ; contabilizar iteración 0047 0116 26 EF bne ciclo ; no, continuar 0048 0116 0049 0116 0050 0118 ; ***finalizar 0051 0118 96 01 ldaa prod+1 0052 0118 0053 011A 3E wai ; si, volver al monitor 0054 011A 0055 011B .end 0056 011B 0057 011B 0058 011B 0059 011B 0060 011B 0061 011B 0062 011B Errores = 0 *** Ensamblado con SIMUTRAINER - 7.0 *** Microprocesador a programar : 6800 Para Laboratorio de Microprocesadores ETN-801

Page 42: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 42

SIMULACIÓN con SIMU TRAINER 7.0

Para la simulación se tiene que presionar el icono SIMULAR

Y la ventana cambiara al modo simulación

Donde se observa el segmento de código inicial, los registros PI, A, B, X, SP, BR, las

banderas, El segmento de pila y el mapeo de memoria este simulador es muy útil por

tener la misma interfaz del entrenador ET-3400.

Page 43: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 43

Cargar un programa al entrenador ET-3400

COMANDOS BASICOS

Para poder cargar el programa al entrenador es preciso conocer los “Comandos

Básicos” con los que funciona y luego los procedimientos para introducir, examinar y

procesar un programa.

De manera general poscomandos básicos son:

Reset

Generalmente, aunque no siempre, se lo utiliza para iniciar un proceso, es decir, para

comenzar, examinar, etc. Un programa.

Acumulador A/1

Representa el acumulador A, y sirve para almacenar datos que en muchos casos

representan resultados parciales ó finales, también suelen representar valores de

referencia. Cuando se esta realizando cualquier proceso excepto el de INTRODUCIR

un programa se puede acceder a los datos que contiene el acumulador.

Acumulador B

Representa al acumulador B y cumple la misma función del acumulador A

Page 44: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 44

Auto/A

Sirve para iniciar el proceso de INTRODUCIR un programa.

Exam/E

Se utiliza para iniciar el proceso de INTRODUCIR un programa.

Do/D Se utiliza para iniciar el PROCEDIMIENTO para hacer correr un programa.

FWD/F

ANANZA una posición de memoria.

BACK/B

RETROCEDE una posición de memoria.

CHAN/C

Sirve para CAMBIAR un valor en una determinada posición de memoria.

PC/3

Representa el contador de pasos de un programa, y se lo utiliza para “iniciar” el

proceso de HACER correr un programa PASO a PASO.

SS/8

Se lo utiliza para HACER correr el programa PASO a PASO

Page 45: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 45

INDEX/4

Indica el valor del REGISTRO INDICE.

SP/6

Indica el valor del STACK POINTER.

RTI/7

Realizar SALTOS ENTRE INTERRUPCIONES en proceso de un programa paso a

paso.

BR/9

Permite llegar a los puntos de ruptura.

CC/5

Sirve para observar la Condición de los códigos en determinado momento.

Método para Introducir un programa.

1. Digitar la tecla el Display se presentara de la siguiente manera

2. Digitar la tecla el Display se presentara de la siguiente manera

Page 46: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 46

3. Digitar la dirección donde se desea empezar el programa. Ejemplo dirección

0000h

4. Digitar la instrucción, que corresponde a esa dirección Ejemplo par ala

dirección 0000h la instrucción puede ser 86entonces el display presentara la

siguiente imagen

Como se observa automáticamente e inmediatamente el display cambiara a esa

imagen, eso nos indica qu ese debe digitar la siguiente siguiente instrucción y

así sucesivamente hasta finalizar con el programa.

5. Una vez finalizada la transcripción del programa digitamos la

pantalla se observara:

Si se comete errores al introducir las instrucciones NO DEBE tratar de corregirlas,

ya que en este proceso eso NO es posible. Las correcciones se deben realizar en el

proceso de EXAMINAR, el programa.

Método para Examinar un programa.

Para poder examinar un programa se deben realizar los siguientes pasos:

1. Digitar la tecla el Display se presentara

2. Digitar la tecla y la pantalla se mostrara la siguiente imagen

Page 47: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 47

3. Para revisar el todo el programa que es recomendable seguir los siguientes

pasos:

Digitar la dirección donde empieza el programa Ejemplo 0000h

Si fuera necesario corregir ó cambiar la instrucción, digitar

Luego colocar la instrucción correcta Ejemplo, 96

Para examinar la siguiente instrucción digitar (Avanzar)

y se debe continuar el proceso hasta finalizar la revisión. En caso de ser necesario

retroceder una o mas pñosiciones de memoria.

4. Si solo se desea examinar una o varias direcciones especificas, se debe digitar

estas direcciones luego de la tecla EXAM (para cada caso)

Y si es necesario corregir o cambiar la instrucción procedemos como se indico

anteriormente.

5. Finalizar la revisión del programa si se digita la tecla

Page 48: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 48

Método para Ejecutar un programa.

Existen dos posibilidades para ejecutar un programa ejecución COMPLETA y

ejecución PASO a PASO.

a) Ejecución Completa

1. Digitar la tecla la pantalla se observara como:

2. Digitar la tecla la pantalla se observara como:

3. Digitalizar la dirección donde empieza el programa para el Ejemplo 0100h y

automáticamente e inmediatamente. Según el programa puede presentarse tres

alternativas.

Todo el display apagado (oscuro) en este caso digitar RESET

En el display un valor o palabra que representa el resultado total o parcial del

programa.

En el display aparece

En el primer y tercer caso se puede leer los resultados, ya sea, examinando

direcciones o revisando los acumuladores.

En el caso del SIMULADOR la ventana después de realizar estos pasos se presentar

los datos actualizados en el mapeo de memoria

Page 49: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 49

Antes de la simulación

Después de la simulación completa

Page 50: Tutorial Trainers

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica

Aux.: Univ. Ariel Marcos Condo Merlo 50

b) Ejecución Paso a Paso

1. Digitar la tecla la pantalla se observara como:

2. Digitar la tecla

Donde el dato 011Bh representa una posición (dirección), de memoria aleatoria.

Entonces se debe utilizar la tecla Entonces se debe introducir la

dirección donde comienza el programa Ejemplo 0100h

3. Digitar la tecla en el display se presentara

4. El microprocesador habrá ejecutado una instrucción que puede representar una

o mas posiciones de memoria es decir saltar una o más direcciones de memoria.

Por lo tanto al digitar la pantalla se va actualizar constantement.sin

embargo, entre cada paso se puede observar resultados parciales, examinando

direcciones ó utilizando los acumuladores.

5. Presionar