Este documento proporciona instrucciones para desarrollar aplicaciones con el módulo entrenador MTS-86C conectado a una PC. Explica cómo conectar el MTS-86C, escribir código en ensamblador, generar archivos binarios e Intel Hex, descargar el programa al MTS-86C y depurarlo usando HyperTerminal. Luego presenta un ejemplo de programa para encender un banco de 8 LEDs conectado al puerto B del chip 8255 a través de un driver 74LS240.
Este documento proporciona instrucciones para desarrollar aplicaciones con el módulo entrenador MTS-86C conectado a una PC. Explica cómo conectar el MTS-86C, escribir código en ensamblador, generar archivos binarios e Intel Hex, descargar el programa al MTS-86C y depurarlo usando HyperTerminal. Luego presenta un ejemplo de programa para encender un banco de 8 LEDs conectado al puerto B del chip 8255 a través de un driver 74LS240.
Este documento proporciona instrucciones para desarrollar aplicaciones con el módulo entrenador MTS-86C conectado a una PC. Explica cómo conectar el MTS-86C, escribir código en ensamblador, generar archivos binarios e Intel Hex, descargar el programa al MTS-86C y depurarlo usando HyperTerminal. Luego presenta un ejemplo de programa para encender un banco de 8 LEDs conectado al puerto B del chip 8255 a través de un driver 74LS240.
DESARROLLO DE APLICACIONES CON EL MODULO ENTRENADOR MTS-86C
CONEXION DEL MTS-86C a la PC 01. Conecte en la laptop el adaptador USB a RS-232. 02. Instale el controlador respectivo. 03. En el Administrador de Dispositivos de Windows, verifique el nmero de puerto COM asignado. 04. Conecte fsicamente la PC y el MTS-86C mediante el cable serial RS-232. 05. Ejecute el programa HyperTerminal de Windows 06. Seleccione el puerto COM1 o el que haya sido asignado en los pasos previos. 07. Configure la velocidad de comunicacin a 19200 bps. 08. Seleccione Xon/Xoff como protocolo de control de flujo. 09. Seleccione 8N1 (8 bits de datos, paridad nula y un bit de parada).
10. En el MTS-86C presione cualquier tecla (entre A y F) para establecer la comunicacin con la PC. Debe mostrarse la pantalla de bienvenida siguiente.
UNTECS IET - 2014 I MICROPROCESADORES Gua de laboratorio Pg. 2 ESCRITURA DE CODIGO 11. Escriba el siguiente programa fuente empleando un editor de texto (NOTEPAD o WORDPAD)
Este programa enciende el banco de 8 leds disponibles en el MTS-86C.
GENERACION DE ARCHIVO INTEL HEX 12.- Grabe su archivo con extensin .ASM en la carpeta ASSEMBLY.
Pngale de nombre, por ejemplo, Prog_01.asm
OBS. El nombre del archivo no debe tener ms de ocho caracteres.
13.- Ingrese a la ventana (o lnea) de comandos, para ello ejecute desde Windows:
COMMAND.EXE (o CMD.EXE)
14.- Desde la ventana de comandos, ingrese a la carpeta ASSEMBLY, para ello escriba:
cd \ cd assembly
Obs. El comando cd significa Change Directory
15.- Obtenga el archivo con extensin .OBJ. Para ello, escriba en la lnea de comandos:
masm Prog_01.asm
OBS. Cuando un proyecto consta de varios archivos fuentes, estos deben ser enlazados o unidos mediante otro programa (LINK.EXE). El enlace NO se realiza con UNTECS IET - 2014 I MICROPROCESADORES Gua de laboratorio Pg. 3 las fuentes (.ASM) directamente, sino con los archivos OBJs.
16.- Corrija los errores que hubieren y verifique la creacin del archivo Prog_01.OBJ .
17.- Obtenga el archivo con extensin .EXE. Para ello escriba en la lnea de comandos:
Link Prog_01.obj
18.- Verifique la creacin del archivo Prog_01.EXE.
OBS. Este archivo contiene el programa ms informacin adicional para ser ejecutado desde una computadora personal con sistema operativo de Microsoft.
Para el caso de los mdulos MTS-86C, esa informacin adicional debe ser eliminada. Solo debe quedar el programa en s.
19.- Obtenga el archivo con extensin .BIN. Para ello escriba en la lnea de comandos:
exe2bin Prog_01.exe
20.- Verifique la creacin del archivo Prog_01.BIN.
OBS. El archivo .BIN contiene el programa byte a byte tal como se grabar en memoria. Lo puede visualizar con editor binario (utilice uno de los proporcionados por el docente).
21.- Finalmente, obtenga el archivo con extensin .HEX. Para ello escriba en la lnea de comandos:
bin2hex
Indique el archivo Prog_01.bin
22.- Verifique la creacin del archivo Prog_01.HEX.
OBS. Este archivo contiene exactamente la misma informacin que el archivo .BIN, pero en formato texto estandarizado para uso con equipos grabadores y programadores. Es de amplio uso. Revise en Internet los detalles de este formato de archivo.
Puede visualizar el contenido del archivo .HEX con un editor de textos cualquiera.
MASM.EXE Microsoft Assembler. Genera el archivo OBJ LINK.EXE Microsoft Linker. Genera el archivo EXE
EXE2BIN.EXE Convierte el formato EXE a BIN. Genera el archivo BIN BIN2HEXEXE Convierte el formato BIN a INTEL HEX. Genera el archivo HEX
UNTECS IET - 2014 I MICROPROCESADORES Gua de laboratorio Pg. 4 DESCARGA DE UN ARCHIVO INTEL HEX EN EL MTS-86C 23. Verifique que este activa la conexin RS-232 entre la PC y el MTS-86C 24. Presione L en la ventana de Hyper Terminal de Windows.
Debe especificar la direccin de inicio donde se cargar el programa. En este caso ser en 0200:0000, pero solo se indica la parte de segmento segn se muestra en la figura siguiente.
El OFFSET se considera 0000.
25. Click en la pestaa TRANSFER ubicada en la esquina derecha superior. Seleccione send text file.
26. Seleccin el archivo .HEX generado anteriormente. El programa se descarga en la memoria del MTS-86C a partir de la direccin indicada.
UNTECS IET - 2014 I MICROPROCESADORES Gua de laboratorio Pg. 5 27. Ejecute el programa usando el comando g (GO ejecutar). Indique como direccin 0200:0000.
28. Su programa se ejecuta, los 8 leds se encendern.
DEBUGGING (DEPURACION) EMPLEANDO HYPER TERMINAL Comandos disponibles desde la consola de Hyper Terminal. E Examinar y modificar datos de memoria MTS-86C > E 0300:0000 0300:0000 00 _ SPACE Avanza a la direccin siguiente ENTER Finaliza BC Ingresa nuevo dato (BCh, por ejemplo)
De este modo puede ingresar manualmente un programa en memoria o verificar/modificar su contenido.
D Volcar (DUMP) datos a pantalla MTS-86C > D 0200:0000 Cuntas filas muestra? ________________________ Cuntos bytes por fila existen? ________________________ En qu formatos se muestran los datos? ________________________ Por qu algunos datos no son visibles? ________________________
G Ejecutar un programa Se realiz en el paso 27. UNTECS IET - 2014 I MICROPROCESADORES Gua de laboratorio Pg. 6 R Examinar y modificar contenidos de los registros del microprocesador
T Ejecutar un programa paso a paso (step by step) F Llenar un dato en un bloque de memoria MTS-86C > F 0300:0,20 11 Llena el dato 11h desde 0300:0000 hasta 0300:0020 Verifique con el comando F.
M Mover datos de un bloque de memoria a otro MTS-86C > M 0200:0000,0020,0300:0000 Copia los datos de 0200:0000 hasta 0200:0020 a 0300:0000. Verifique los bloques origen y destino.
O Enviar dato a puerto de E/S MTS-86C > O 3FD2,F0 Se enva 11110000b al banco de LEDs ubicado en el puerto 3FD2h.
MTS-86C > O 3FF0,C0 Se enva 11000000b al FND, qu dgito aparecer? ____________________________
I Leer dato de puerto de E/S MTS-86C > I 3FD0 Lee el estado del DIPSWITCH ubicado en el puerto 3FD0h. Conmute algunos SWITCHS y vuelva a ejecutar el comando. TAREA 01.- Investigue en qu consiste el protocolo de control de flujo XON/XOFF. 02.- Investigue el formato INTEL HEX. 03.- Indique y detalle las diferencias entre los formatos que puede adoptar un cdigo fuente: ASM, EXE, BIN y HEX.
UNTECS IET - 2014 I MICROPROCESADORES Gua de laboratorio Pg. 7 ENVIO DE UN DATO CONSTANTE (95h) A UN BANCO DE OCHO LEDS El banco de LEDs (que consta de ocho LEDs) debe mostrar permanentemente el patrn siguiente:
DESCRIPCION DEL CIRCUITO Los ocho LEDs son manejados por el driver 74LS240 conectado al puerto B del 8255.
74LS240
74LS240: OCTAL INVERTER BUFFER AND LINE DRIVERS WITH 3-STATE OUTPUTS
Las seales arrojadas por el 8255 por el puerto B son invertidas por el 74LS240. Dado que los LEDs estn conectados con el nodo a tierra, se encendern con nivel bajo a la salida del 74LS240 o nivel alto a la salida del puerto B del 8255.
PROGRAMA FUENTE CNT3 EQU 3FD6h ; Direccin del registro de configuracin del 255 BPORT3 EQU 3FD2h ; Direccin del puerto B del 8255
CODE SEGMENT ASSUME CS:CODE, DS:CODE
ORG 0 ;Configura el 8255 mediante su registro de control START: MOV SP, 4000h ; Inicializacin de la pila MOV AL, 90h ; Inicializa el 8255 MOV DX, CNT3 OUT DX, AL
;Enva dato al banco de LEDs MOV AL, 95h ; Dato a mostrar en el banco de LEDs MOV DX, BPORT3 ; Carga en DX la direccin del puerto B OUT DX, AL ; Enva el dato al puerto B del 8255 HLT
CODE ENDS END START
DESCRIPCION DEL PROGRAMA a) El mdulo MTS-86C dispone de tres chips 8255. El usado en este laboratorio se accede mediante sus cuatro registros internos a travs de los puertos de E/S siguientes: UNTECS IET - 2014 I MICROPROCESADORES Gua de laboratorio Pg. 8 Port Address Registro o funcin 3FD6h Registro de control para configuracin o inicializacin del 8255 3FD4h Puerto C 3FD2h Puerto B 3FD0h Puerto A
Segn las conexiones existentes en el mdulo, la finalidad de cada puerto es la siguiente: PUERTO C SALIDA Parlante PUERTO B SALIDA Banco de 8 LEDs PUERTO A ENTRADA Banco de 8 SWITCHES
b) El modo de funcionamiento del 8255 se configura escribiendo en el registro de control (ubicado en el puerto 3FD6h).
Este registro es escrito con el valor 90h (1001 0000). El chip queda configurado del siguiente modo.
Dispositivo habilitado Puerto A como entrada Puerto B como salida Puerto C como salida Funcionamiento en modo 00 (entrada/salida bsica): datos de salida latcheados y datos de entrada no latcheados.
La figura siguiente muestra la estructura del registro de control. Este registro permite configurar el sentido (entrada o salida) de cada puerto y el modo en que funcionarn.
UNTECS IET - 2014 I MICROPROCESADORES Gua de laboratorio Pg. 9 CONTROL DEL PARPADEO DE UN BANCO DE LEDS Al ejecutarse el programa, los ocho LEDs deben mostrar el siguiente patrn en forma repetitiva:
DESCRIPCION DEL CIRCUITO El mismo de la experiencia previa.
PROGRAMA FUENTE CNT3 EQU 3FD6h BPORT3 EQU 3FD2h
CODE SEGMENT ASSUME CS:CODE, DS:CODE
ORG 0
;Configura el 8255 mediante su registro de control START: MOV SP, 4000h MOV AL, 90h MOV DX, CNT3 OUT DX, AL
;Enva repetitivamente 0Fh y F0h al banco de LEDs MOV AL, 0Fh MOV DX, BPORT3
J1: OUT DX, AL ; Enva 0F al puerto B
MOV CX, 0A000h ; Inicia un contador a 40960 LOOP $ ; Repite lazo saltando hacia s mismo 40960 veces
NOT AL ; Invierte el 0F JMP J1 ; Salta a J1 y se repite todo indefinidamente
CODE ENDS END START
DESCRIPCION DEL PROGRAMA a) El lazo LOOP se ejecuta CX veces. En cada ejecucin CX se decrementa en 1; cuando llega a cero, la ejecucin del programa continua en la instruccin siguiente a LOOP. Para el programa CX se inicializa con A000h, esta da como resultado que el LOOP se ejecute 40960 veces.
EJERCICIO MODIFICAR EL CODIGO PARA CAMBIAR LA SECUENCIA EN LOS LEDS, EJECUTAR EL PROGRAMA EN EL MTS-86C. Edgard Oporto julio 2014