Guia 1 - Debug

UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIA FACULTAD SEDE SOGAMOSO ESCUELA DE INGENIERÍA ELECTRÓNICA LABORATORIO DE

Views 125 Downloads 0 File size 671KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIA FACULTAD SEDE SOGAMOSO ESCUELA DE INGENIERÍA ELECTRÓNICA LABORATORIO DE MICROPROCESADORES

PRÁCTICA Nº 1

MANEJO DE PUERTO SERIAL MEDIANTE DEBUG I. 

 

OBJETIVOS

Conocer el entorno de Debug así como el modelo de registros y banderas de Intel x86. Manejar el puerto serial del computador desde el Debug. Realizar una aplicación en Debug y Proteus para el control de un motor paso unipolar.

II.

INTRODUCCIÓN

Debug es una utilidad de MS-DOS que permite visualizar memoria, introducir programas en ella y rastrear su ejecución. Debug es útil para:  Realizar la depuración de programas  Ensamblar código directamente (programas pequeños)  Desensamblar códigos ejecutables  Correr programas paso-a-paso  Desplegar datos en memoria  Verificar estado de los registros de la CPU Comandos de Debug D: DUMP D [intervalo] Muestra el contenido de una zona de memoria en hexadecimal y en ASCII. E DIRECCION: EDIT E dirección [lista] Permite editar, byte por byte, una zona de memoria. R: REGISTERS R [registro] Sin parámetros, muestra el contenido de los registros de la CPU, así como la próxima instrucción a ejecutar. A: ASSEMBLE

A [dirección] Cuando se utiliza este comando se le puede dar como parámetro la dirección donde se desea que se inicie el ensamblado, si se omite el parámetro el ensamblado se iniciará en la localización especificada por CS:IP F: FILL F [lista de intervalos] Llena una zona de memoria con un valor determinado. Q: QUIT Salir de debug y volver al DOS. P: STEP P [=dirección] [número] Trace puede ser incómodo si no se quiere depurar el código de las rutinas de interrupción o si ya se sabe el código que hay en las subrutinas y tan sólo interesa seguir avanzando sin entrar en ellas. En estos casos se usa p. T: TRACE T [=dirección] [valor] Ejecuta la instrucción apuntada por CS:IP

III.    

IV.

ELEMENTOS Y EQUIPOS NECESARIOS Virtual Serial Port Driver 6.0 - Eltima Software. Máquina virtual con Windows XP y Puerto serial Habilitado. Simulador Proteus 7.7 Conversor Serie a Paralelo simulación en Proteus.

DESCRIPCIÓN DEL LABORATORIO

En este laboratorio se presenta una guía básica para manejo del puerto serial del computador mediante Debug y visualización en Proteus de los datos enviados por este. Debido a que las

Profesor: Ing. Wilson Javier Pérez H – Segundo Semestre de 2013

UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIA FACULTAD SEDE SOGAMOSO ESCUELA DE INGENIERÍA ELECTRÓNICA LABORATORIO DE MICROPROCESADORES computadoras portátiles de nueva generación no disponen de este puerto, se usará una máquina virtual previamente instalada, y un programa que permite emular la conexión entre dos puertos seriales denominado Virtual Serial Port Driver.

Figura 1. Diagrama de bloques de la interconexión de dos puertos seriales.

Este programa realiza una conexión entre el puerto serial que se encuentra en la máquina virtual (COM1) y un puerto serial virtual (COM2) como se muestra en la Figura 1. a) Enlace puerto físico con simulación en Proteus. Abrir la aplicación “Virtual Serial Port Driver” y seleccionar el primero y segundo puerto que se desean interconectar luego hacer click en Add pair.

Figura 4. Esquemático en Proteus de la conexión serial a paralelo mediante microcontrolador PIC.

Usar el módulo USART del microcontrolador que usted elija para realizar la conversión serie a paralelo, en este ejemplo se usa un PIC16F877A configurado a una velocidad de transmisión de 9600 baudios. Configurar el COMPIM en función de la tasa de transmisión del microcontrolador como se muestra en la siguiente figura.

Figura 2. Selección de los puertos que se desean interconectar.

En la parte izquierda del programa se muestran los puertos físicos y las conexiones establecidas.

Figura 5. Configuración del puerto serial virtual en Proteus.

b) Manejo básico de puertos e instrucciones en Debug. Abrir la ventana de comandos y escribir Debug, luego presionar ENTER. Aparecerá un guion (-) en cada línea de ejecución. Como se muestra en la siguiente figura. Figura 3. Conexiones establecidas en el programa virtual serial port driver.

Abrir Proteus y seleccionar en la lista de componentes COMPIM para enlazar la simulación de Proteus con la actividad de un puerto serial.

Figura 6. Ejecución de Debug mediante línea de comandos.

Profesor: Ing. Wilson Javier Pérez H – Segundo Semestre de 2013

UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIA FACULTAD SEDE SOGAMOSO ESCUELA DE INGENIERÍA ELECTRÓNICA LABORATORIO DE MICROPROCESADORES Escriba r en la línea de comandos de Debug y presione ENTER, aparecerán los registros, las banderas del procesador y la siguiente instrucción que se encuentra lista para ser ejecutada.

Figura 7. Visualización microprocesador.

de

los

registros

y

banderas

muestra la secuencia que se debe observar en la ventana de comandos de DOS.

del

Se desea acceder al puerto serial mediante un programa ensamblado en Debug. Primero debe conocer la dirección física del puerto serie ingresando al administrador de dispositivos y en puertos (COM y LPT) hacer doble click en COM1.

Figura 9. Ensamble de un programa básico en Debug para configurar el puerto serial.

Escribir r  para visualizar los registros del procesador, y la primera instrucción ensamblada.

Figura 10. Visualización de los registros y de la primera instrucción que ha sido ensamblada.

Figura 8. Dirección física del puerto serial dentro de la máquina virtual.

Como se observa en la Figura 8 las direcciones del puerto son de 03F8-03FF. Para más información sobre el manejo y configuraciones de este puerto remítase a [1]. El siguiente programa permite la configuración del puerto COM1 con las siguientes características 9600 baudios, 8bits, 0 bit de paridad, 1 bit parada. a 100 mov dx,03fb mov al,83 out dx,al mov dx,03f8 mov al,0c out dx,al mov dx,03fb mov al,03 out dx,al Presione dos veces la tecla ENTER para finalizar el ensamble del programa. La siguiente figura

El comando [t] permite ejecutar un paso a paso del programa ensamblado y automáticamente incrementa el registro apuntador de instrucciones IP como se muestra a continuación.

Figura 11. Ejecución paso a paso del programa anterior, se observa el incremento de IP.

El comando g permite ejecutar un programa ensamblado ingresando la dirección de inicio y la dirección final en la que este se encuentre, como se muestra, g = 100 112  este comando ejecuta automáticamente el programa que se encuentra entre las direcciones 100 hasta la 112. El puerto serial posee varios registros para su configuración respectiva, La dirección más baja del puerto [3F8] es la dirección donde se ponen datos para ser enviados. Es posible enviar datos a través del puerto serial directamente desde la consola de Debug mediante el siguiente comando.

Profesor: Ing. Wilson Javier Pérez H – Segundo Semestre de 2013

UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIA FACULTAD SEDE SOGAMOSO ESCUELA DE INGENIERÍA ELECTRÓNICA LABORATORIO DE MICROPROCESADORES –o [dirección del puerto], [dato hexadecimal de 8 bits]  Así: -o 3f8,f0  y en la ventana de simulación deberá aparecer el byte enviado. Como se observa en la Figura 12.

Figura 12. Datos Visualizados en Proteus después de enviarlos desde Debug.

A continuación se presenta una secuencia de leds generada desde un programa en Debug sobre el puerto serial y visualizada en Proteus. c) Ensamble de programas en Debug mediante un archivo de texto. Cree un archivo de texto con las siguientes líneas y dele un nombre, por ejemplo: input.txt. f 120 500 ff a 120 mov dx,03fb mov al,83 out dx,al mov dx,03f8 mov al,0c out dx,al mov dx,03fb mov al,03 out dx,al mov dx,03f8 mov al,80 out dx,al mov al,40 out dx,al mov al,20 out dx,al mov al,10 out dx,al

mov al,08 out dx,al mov al,04 out dx,al mov al,02 out dx,al mov al,01 out dx,al mov cx,05 mov al,00 out dx,al mov al,ff loop 0150



q Guárdelo y abra la ventana de comandos de DOS. Ubíquese en la dirección donde ha creado el archivo, por ejemplo C:\ y a continuación ejecute el siguiente comando: debug < input.txt, aparecerá el programa ensamblado como se muestra a continuación.

Figura 13. Programa ensamblado en Debug mediante un archivo. Profesor: Ing. Wilson Javier Pérez H – Segundo Semestre de 2013

UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIA FACULTAD SEDE SOGAMOSO ESCUELA DE INGENIERÍA ELECTRÓNICA LABORATORIO DE MICROPROCESADORES En la misma ventana de DOS ejecute Debug, ubique la dirección 120 (que fue la dirección donde se comenzó a ensamblar el programa) r ip  120 Comience la ejecución mediante el comando que sigue. t  Cada vez que sea ejecutado el comando trace se ejecutara la instrucción actual y se visualizará en pantalla el cambio en los registros y banderas del procesador correspondientes. d) Mostrar mensajes en pantalla mediante la opción 9 de la interrupción 21h. La opción 9 de la interrupción 21h permite visualizar en pantalla una cadena de caracteres finalizada con un signo pesos “$”. Antes de insertar un mensaje se debe determinar la posición en memoria donde se alojara el mensaje. Para determinar más fácilmente las direcciones de memoria disponibles ejecute el siguiente comando “d” en Debug. D Este comando desplegará un mapa de memoria de 128 bytes a partir de la dirección actual.

f 100 125 “Laboratorio de Microprocesadores 2013$” debemos insertar el signo pesos “$” para indicar el fin de la cadena. Para asegurarnos que el mensaje ha sido puesto en memoria adecuadamente mostramos nuevamente el mapa de memoria a partir de la posición 100 d 100 Y en la parte derecha del mapa se observara el texto ingresado.

Figura 15. Caracteres insertados en las primeras posiciones de memoria disponible.

Para mostrar en pantalla el texto escrito en la memoria se emplean las siguientes líneas de código en Debug. En esta guía se usará la dirección 130h que se encuentra 10 posiciones después del mensaje por lo que no hay riesgo de sobrescribirlo.

Figura 16. Programa que permite imprimir en pantalla una cadena de caracteres.

Para ejecutarlo se usa el comando g =130 137 [ENTER] Aparecerá en pantalla el texto como se puede ver en la siguiente figura.

Figura 14. Despliegue de la información contenida en os primeros 128 bytes de memoria.

El texto que se va a escribir es “Laboratorio de Microprocesadores 2013” sin las comillas el cual posee un tamaño de 37 caracteres incluyendo los espacios, lo que quiere decir que el mensaje ocupara los primeros 37 bytes de memoria. Para poner el mensaje en memoria se recurre a la instrucción de llenado fill en Debug el comando es. f [dir inicial] [dir final] [datos]

Figura 17. Mensaje en pantalla después de ejecutar el programa de despliegue.

NOTA (Para información sobre interrupción 21h revisar la bibliografía propuesta en esta guía)

e) Ejercicio propuesto. Con base en la guía ya estudiada realizar el control de un motor paso unipolar visualizado en Proteus mediante un programa ensamblado en Debug. El programa deberá mostrar en pantalla un mensaje que indique su nombre, código, y el

Profesor: Ing. Wilson Javier Pérez H – Segundo Semestre de 2013

UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIA FACULTAD SEDE SOGAMOSO ESCUELA DE INGENIERÍA ELECTRÓNICA LABORATORIO DE MICROPROCESADORES nombre del laboratorio. Este ejercicio será calificado al finalizar las dos horas de clase. La secuencia de control del motor unipolar es la siguiente: Tabla 1. Secuencia de control motor paso. GIRO GRADOS 45 90 135 180 225 270 315 360

A 1 1 0 0 0 0 0 1

B 0 1 1 1 0 0 0 0

C 0 0 0 1 1 1 0 0

D 0 0 0 0 0 1 1 1

Figura 18. Esquema general de un motor paso unipolar

V.

Es importante tener en cuenta que cualquier copia entre grupos o tomado de informes de semestres anteriores será calificado con 0.0. No inunde el informe de teoría copiada de la red o cualquier otra fuente. Referencie la información necesaria para el desarrollo de la práctica.

BIBLIOGRAFÍA [1] Barry B. Bray, The Intel Microprocessors, Fourth Edition, Prentice Hall, pag 412-419. [2] http://kipirvine.com/asm/debug/Debug_Tutori al.pdf [3] http://atc2.aut.uah.es/~rico/docencia/asignat uras/informatica/est_comp/archivos/Laborato rio/TUTORIAL%20DEBUG.pdf [4] http://www.zator.com/Hardware/H1_7_1.htm [5] http://electriclubs.blogspot.com/2011/02/808 68088-microprocessor-int-21h.html [6] http://www.monografias.com/trabajos68/deb ug-ms-dos/debug-ms-dos2.shtml.

PROYECTO INDIVIDUAL

Siguiendo el ejemplo mostrado en esta guía con el motor paso, cada grupo (máximo 2 personas) debe proponer una aplicación propia en la que se haga el control en Debug de LEDs, displays 7 segmentos, motores, pantallas LCD o cualquier otro dispositivo disponible en Proteus. Esta parte tendrá el mayor peso en la calificación de la práctica de laboratorio ya que corresponde a diseño mientras que las etapas anteriores son solo de carácter comprobacional.

VI.

INFORME DE LABORATORIO

Se debe presentar un informe de la práctica en formato IEEE de máximo 6 páginas, en el que se presente el análisis de resultados y observaciones de la parte comprobacional y todo lo relativo al diseño del ejercicio propuesto por cada grupo.

Profesor: Ing. Wilson Javier Pérez H – Segundo Semestre de 2013