F acul tad de I ngeni er ía I n genierí geni ería el el ectr ectr ón i ca
E TN -801 M i cropr cr oproce ocessadore ador es
L enguaje de M aqui aqui na 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.
Di agrama de fl uj o de de progr amas escri tos con lengu lenguajes ajes de alto ni vel vel
Di agrama de fl uj o de progr amas escri tos con lenguaj e de maqui na Ex presion presion es de I nstru ccion ccione es Los lenguajes de máquina de un microprocesador están e stá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 para el up z80 que nos representa Mover Mover el conten contenido ido del re istro istro D al re re istro istro A
Aux.: Univ. Ariel Marcos Condo Merlo
1
F acul tad de I ngeni er ía I n genierí geni ería el el ectr ectr ón i ca
E TN -801 M i cropr cr oproce ocessadore ador es
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 dific ultoso entender para la gente la expresión hexadecimal, hex adecimal, por lo tanto se adopta el nombre nem n emot oté é cn i co 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
F acul tad de I ngeni er ía I n genierí geni ería el el ectr ectr ón i ca
E TN -801 M i cropr cr oproce ocessadore ador es
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 dific ultoso entender para la gente la expresión hexadecimal, hex adecimal, por lo tanto se adopta el nombre nem n emot oté é cn i co 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
F acul tad de I ngeni er ía I n genierí geni ería el el ectr ectr ón i ca
E TN -801 M i cropr cr oproce ocessadore ador es
Pr ocedimi ocedim i ento par a el el dis di señ o de un pr ogr ama
Diseño de un acoplamiento con pantalla de leds kentac 800z
1. Con sider aci ones on es par a el A n ál i sis y el di señ señ 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 E/S
Número IC2
Nombre 8255
E/S
IC1
8255
Aux.: Univ. Ariel Marcos Condo Merlo
Dirección F8 F9 FA FB FC FD FE FF
Nota Puerto A (entrada) Puerto B (salida) Puerto C (salida) COMANDO Puerto A (entrada) Puerto B (salida) Puerto C (salida) COMANDO
3
F acul tad de I ngeni er ía I n genierí geni ería el el ectr ectr ón i ca
E TN -801 M i cropr cr oproce ocessadore ador es
Configuración del Conector CN2
Circuito propuesto
Aux.: Univ. Ariel Marcos Condo Merlo
4
F acul tad de I ngeni er ía I n genierí geni ería el el ectr ectr ón i ca
E TN -801 M i cropr cr oproce ocessadore ador es
2. Algoritmo § A . Vari Var i able abl es 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 datos fila de la matriz 3. Bloque de datos de la fila de la matriz 4. Acumulador para poder 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. Procedimi Procedimi ento 1. Iniciar variables - Contador1 veces veces de visualización - Puntero de pila (SP) - Dirección de memoria datos de la fila 2. Iniciar variables para ver una una sola vez la figura - Contador2 columnas columnas de la matriz - Acumulador valor 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 Leer el dato de la memoria - Puerto_fila Acumulador 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, No, Repetir el paso 3 5. ¿Ultimo valor de despliegue de la figura? No, Repetir desde el paso 2 No, 6. Finalizar
Aux.: Univ. Ariel Marcos Condo Merlo
5
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
3. F lu jo 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 una sola vez la figura
NO
NO
Transferir los datos de fila y columna a los puertos
¿Ultimo valor de columna? SI
Decrementar el valor de veces que se quiere visualizar
¿Ultimo valor de despliegue de la figura? SI
- Puntero - 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 - Contabiliza el numero de columnas de la matriz - ¿ultima columna? No , repetir - Es el número de veces que se podrá visualizar la figura en la matriz
- Contabiliza el numero de veces que se observara la figura - ¿ultima columna? No , repetir
FIN
Aux.: Univ. Ariel Marcos Condo Merlo
6
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
4. M odelo de Programación M icropr ocesador 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 LD SP,8EFFh LD B,80h LD C,10h LD (8000h),BC LD E,0Ah bucle1: LD C,08h LD A,80h LD IX,(8000h) bucle2: OUT (0FDh),A PUSH AF LD A,(IX+0) OUT (0FEh),A INC IX CALL 0103h POP AF RRCA DEC C JP NZ,bucle2 DEC H JP NZ,bucle1 HALT .END
Aux.: Univ. Ariel Marcos Condo Merlo
;contador de veces de mostrar la figura ;segmento inferior de la memoria del entrenador ;direccion de memoria donde se encuentan ;los datos ;almacenamos en la dirección 8000h ;para uso del servicio 0103h ;numero de columnas de la matriz ;habilitador de columnas ;apuntamos a la dirección de los datos ;sacamos el bit que habilita columnas ;almacenamos e la pila ;cargamos el dato de fila dela matriz ;sacamos el dato de la fila ;actulizamos el puntero ;retardo de 1mS...5ms ;recupera el bit que habilita la columna ;rotamos el A a la derecha ;decrementa el # de columnas ;si no es cero salta a bucle 2 ;decrementa el # de veces que se visuliza ;si no es cero salta a bucle 1 ;alto
7
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
6. Programa en L enguaje de M aquina 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,(800 0h);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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
SI M UL ADOR KEN TAC Z800mk2 El simulador y ensamblador del uP z80 que se explicaran en esta guía es el “Z80 simulator IDE”
Creación del arch ivo * .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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
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 ar chivo * .obj y el ar chivo * .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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
Que nos proporciona la siguiente ventana
Luego debemos entrar a la opción de la barra de herramientas tools
Aux.: Univ. Ariel Marcos Condo Merlo
Assembler
11
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
Simu lación del pr ograma con el Z 80 Simu lador I DE Para poder realizar la simulación debemos seguir los siguientes pasos: a) Cargamos el progr ama con la opción L oad o presion ando 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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
Otra forma es poder acceder de la ventana inicial del s imulador 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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
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 F 1 Iniciar la simulación en forma secuencial 2 Step F 2 Iniciar la simulación en forma paso a paso 3 Stop F 3 Para la simulación del programa
Aux.: Univ. Ariel Marcos Condo Merlo
19
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
Rate 1 Step by Step 2 Slow 3 Normal 4 F ast 5 Ex tremely F ast 6 Ul timate (No refr esh)
Ctr l.+F 1 (Paso a Paso) Ctrl .+F 2 (Lento) Ctrl.+F 3 (Normal) Ctrl .+F4 (Rápido) Ctrl .+F 5 (Extremadamente Rápido) Ctrl .+F 6
En esta opción podemos seleccionar la velocidad con que se ejecuta la simulación
Tools M emory Editor Disassembler Periph eral Devices I /O Ports Editor Extern al M odules Assembler Br ekpoints M anager BA SI C Complil er I EE E 754 Conver sión Tool Simu lation log Vi ewer I nter active Assembler Editor
Ctrl.+M (Editor de Memoria) Ctrl.+D (Desensamblador) Ctrl.+P (Dispositivos Periféricos) Ctrl.+I (Editor de puertos I/O ) Ctrl.+X (Módulos externos) Ctrl.+A (Ensamblador) Ctrl .+B (Postas de Parada ) Ctrl.+R (Compilador básico) Ctrl .+T (Conversión a punto flotante) Ctrl .+V (Visor de simulación) Ctrl .+E (Editor de ensamblado interactivo)
Aux.: Univ. Ariel Marcos Condo Merlo
20
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
Para la simulación las ventanas que necesitamos son las siguientes
Vi sor de sim ul ació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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
Edi tor de M emori a
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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
Edi to de puertos de I /O
Tenemos la opción de poder ver los puertos de I/O desde una dirección 00 a F0h
I ni cio de la Simul ació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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
Y las demás ventanas se presentaran del siguiente modo:
Edi tor de M emori a
Edi tor de puer tos I /O
Aux.: Univ. Ariel Marcos Condo Merlo
25
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
Vi sor de sim ul ación
Cuando fi nal ice el progr ama se observara l a sigu iente ventan a
Aux.: Univ. Ariel Marcos Condo Merlo
26
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
Cargar un pr ograma al entr enador K entac z800km2
El maletín del entrenador se presentara como la anterior figura, que tiene las siguientes características:
Tar jeta 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) Tar jeta 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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
El alumno deberá instalar la tarjeta de Entrada/Salida que es la siguiente a través de su bus de trabajo.
Tar jeta de E/S
Conexión de la tar jeta de E/S
Aux.: Univ. Ariel Marcos Condo Merlo
28
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
Al encender el entrenador se inicia automáticamente
Presionando la tecla de RESE y la tecla de display
nos muestra lo siguiente los
Escribir un programa La estructura de la información que nos muestra es la siguiente:
Aux.: Univ. Ariel Marcos Condo Merlo
29
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
Para poder escribir el programa en lenguaje de maquina primero se tiene que definir las direcciones
Defin ir las dir ecciones 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
, se observa 8000 en el lado izquierdo de la (2) Segundo presionamos 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 escri bir un dato en un a dirección establecida
Aux.: Univ. Ariel Marcos Condo Merlo
30
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
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 definió anteriormente.
(2) Presionamos dato
(3) Presionamos
,y
, como se
, entonces la pantalla se observa el siguiente
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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
(4) A continuación se debe presionar observa del siguiente modo:
,
entonces la pantalla se
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 ver if icar los datos in tr oducidos en cada dir ección.
Se usa para leer e incrementar la dirección
Se usa para leer y decrementar la dirección
Ej ecutar el Programa Se realiza el siguiente procedimiento:
(1) Presionamos
,
Aux.: Univ. Ariel Marcos Condo Merlo
,
,
,
32
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
Que es la dirección inicial del programa, es decir donde empieza el programa , la pantalla se observara lo siguiente:
La tecla esta establecida.
tiene la función de ejecutar el programa desde la dirección que
(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 escogemos que registro queremos revisar.
O puede ejecutar la opción de presionar la tecla nombre de algún registro.
Aux.: Univ. Ariel Marcos Condo Merlo
y después
, y después
y un
33
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
(4) Si se desea continuar con el programa se presiona la tecla programa desde donde se detuvo.
, y continua el
NOTA
Se tiene que presionar la tecla
y establecer la dirección con
Otr as F un ciones.
M over memori a
,
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
Aux.: Univ. Ariel Marcos Condo Merlo
, entonces se procede a mover los datos
34
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
L lenar en memori a , 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 memoria con ese dato.
, entonces se procede a llenar las direcciones de
En tr ada de datos (I N) , 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 los leds
Aux.: Univ. Ariel Marcos Condo Merlo
entonces se observa el dato del puerto en
35
F acul tad de I ngeni er ía I ngeniería electr ónica
Sali da de datos (OU T)
ETN -801 M icroprocesadores
,
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
F acul tad de I ngeni er ía I ngeniería electr ónica SIMULADOR
“SIMU TRAINER 7.0”*
ETN -801 M icroprocesadores 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 l a 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 seleccionamos el icono programar
y
* Este simulador fue diseñado por el Univ. Alonso S. Choque
Aux.: Univ. Ariel Marcos Condo Merlo
37
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
SI M UL ACI ÓN con SI M U TRAI NER 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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
Cargar u n pr ograma al entrenador ET -3400
COMA NDOS BASI COS 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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
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 cont ador 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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
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 I ntroduci r u n pr ograma.
1. Digitar la tecla
2. Digitar la tecla
el Display se presentara de la siguiente manera
el Display se presentara de la siguiente manera
Aux.: Univ. Ariel Marcos Condo Merlo
45
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
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 pantalla se observara:
la
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 Exami nar un programa. Para poder examinar un programa se deben realizar los siguientes pasos:
1. Digitar la tecla
2. Digitar la tecla
el Display se presentara
y la pantalla se mostrara la siguiente imagen
Aux.: Univ. Ariel Marcos Condo Merlo
46
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
Mé todo par a E jecutar un programa. Existen dos posibilidades para ejecutar un programa ejecución COMPLETA y ejecución PASO a PASO.
a) Ej ecución Completa
1. Digitar la tecla
2. Digitar la tecla
la pantalla se observara como:
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
F acul tad de I ngeni er ía I ngeniería electr ónica
ETN -801 M icroprocesadores
An tes de la sim ul ación
Despué s de la simulaci ón completa Aux.: Univ. Ariel Marcos Condo Merlo
49