Está en la página 1de 50

Facultad de Ingeniería ETN-801 Microprocesadores

Ingeniería electrónica
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

Aux.: Univ. Ariel Marcos Condo Merlo 1


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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:

Aux.: Univ. Ariel Marcos Condo Merlo 2


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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

Aux.: Univ. Ariel Marcos Condo Merlo 3


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
Configuración del Conector CN2

Circuito propuesto

Aux.: Univ. Ariel Marcos Condo Merlo 4


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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

Aux.: Univ. Ariel Marcos Condo Merlo 5


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
3. Flujo grama.-

Desplegar figura por matriz - Contador 1 veces de visualización


- Puntero de pila (SP)
- Dirección de memoria datos de la fila
Iniciar Variable
- Contador 2 columnas de la matriz
- Acumulador valor para habilitar la columna

Iniciar variables para ver - Puntero


una sola vez la figura
- Puerto_columna Acumulador
- Depositar a la pila el Acumulador
Transferir los datos de - Acumulador Leer el dato de la memoria
NO
fila y columna a los - Puerto_fila Acumulador
puertos - Apuntar a la siguiente posición de dato de fila
NO - retardo
- Recuperar de la pila el valor de habitar la columna
- rotar a la derecha
¿Ultimo valor de - Decrementar el valor del contador 2
columna?
- Contabiliza el numero de columnas de la matriz
SI - ¿ultima columna? No , repetir

Decrementar el valor de veces que se


- Es el número de veces que se podrá
quiere visualizar
visualizar la figura en la matriz

¿Ultimo valor de
despliegue de la figura? - Contabiliza el numero de veces que se
observara la figura
SI - ¿ultima columna? No , repetir

FIN

Aux.: Univ. Ariel Marcos Condo Merlo 6


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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

Aux.: Univ. Ariel Marcos Condo Merlo 7


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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

Aux.: Univ. Ariel Marcos Condo Merlo 8


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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.

Aux.: Univ. Ariel Marcos Condo Merlo 9


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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:

Aux.: Univ. Ariel Marcos Condo Merlo 10


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
Que nos proporciona la siguiente ventana

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

Aux.: Univ. Ariel Marcos Condo Merlo 11


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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 FileOpen

Aux.: Univ. Ariel Marcos Condo Merlo 12


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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.

Aux.: Univ. Ariel Marcos Condo Merlo 13


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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:

Aux.: Univ. Ariel Marcos Condo Merlo 14


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica

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)

Aux.: Univ. Ariel Marcos Condo Merlo 15


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica

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.

Aux.: Univ. Ariel Marcos Condo Merlo 16


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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

Aux.: Univ. Ariel Marcos Condo Merlo 17


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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

Aux.: Univ. Ariel Marcos Condo Merlo 18


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica

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

Aux.: Univ. Ariel Marcos Condo Merlo 19


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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)

Aux.: Univ. Ariel Marcos Condo Merlo 20


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica

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.

Aux.: Univ. Ariel Marcos Condo Merlo 21


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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

Aux.: Univ. Ariel Marcos Condo Merlo 22


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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.

Aux.: Univ. Ariel Marcos Condo Merlo 23


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica

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.

Aux.: Univ. Ariel Marcos Condo Merlo 24


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
Y las demás ventanas se presentaran del siguiente modo:

Editor de Memoria

Editor de puertos I/O

Aux.: Univ. Ariel Marcos Condo Merlo 25


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
Visor de simulación

Cuando finalice el programa se observara la siguiente ventana

Aux.: Univ. Ariel Marcos Condo Merlo 26


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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

Aux.: Univ. Ariel Marcos Condo Merlo 27


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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

Aux.: Univ. Ariel Marcos Condo Merlo 28


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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:

Aux.: Univ. Ariel Marcos Condo Merlo 29


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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

Aux.: Univ. Ariel Marcos Condo Merlo 30


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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

Aux.: Univ. Ariel Marcos Condo Merlo 31


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica

(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 , , , ,

Aux.: Univ. Ariel Marcos Condo Merlo 32


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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.

Aux.: Univ. Ariel Marcos Condo Merlo 33


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica

(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

Aux.: Univ. Ariel Marcos Condo Merlo 34


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica

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

Aux.: Univ. Ariel Marcos Condo Merlo 35


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica

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

Aux.: Univ. Ariel Marcos Condo Merlo 36


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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

Aux.: Univ. Ariel Marcos Condo Merlo 37


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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.

Aux.: Univ. Ariel Marcos Condo Merlo 38


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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

Aux.: Univ. Ariel Marcos Condo Merlo 39


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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

Aux.: Univ. Ariel Marcos Condo Merlo 40


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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

Aux.: Univ. Ariel Marcos Condo Merlo 41


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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.

Aux.: Univ. Ariel Marcos Condo Merlo 42


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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

Aux.: Univ. Ariel Marcos Condo Merlo 43


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica

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

Aux.: Univ. Ariel Marcos Condo Merlo 44


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica

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

Aux.: Univ. Ariel Marcos Condo Merlo 45


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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

Aux.: Univ. Ariel Marcos Condo Merlo 46


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica

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

Aux.: Univ. Ariel Marcos Condo Merlo 47


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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

Aux.: Univ. Ariel Marcos Condo Merlo 48


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica

Antes de la simulación

Después de la simulación completa

Aux.: Univ. Ariel Marcos Condo Merlo 49


Facultad de Ingeniería ETN-801 Microprocesadores
Ingeniería electrónica
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

Aux.: Univ. Ariel Marcos Condo Merlo 50

También podría gustarte