guia 1 - debug

Upload: anderson-garcia

Post on 10-Jan-2016

18 views

Category:

Documents


9 download

DESCRIPTION

dfd

TRANSCRIPT

  • Profesor: Ing. Wilson Javier Prez H Segundo Semestre de 2013

    UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA FACULTAD SEDE SOGAMOSO

    ESCUELA DE INGENIERA ELECTRNICA LABORATORIO DE MICROPROCESADORES

    PRCTICA 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 aplicacin en Debug y Proteus para el control de un motor paso unipolar.

    II. INTRODUCCIN

    Debug es una utilidad de MS-DOS que permite visualizar memoria, introducir programas en ella y rastrear su ejecucin. Debug es til para:

    Realizar la depuracin de programas

    Ensamblar cdigo directamente (programas pequeos)

    Desensamblar cdigos 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 direccin [lista] Permite editar, byte por byte, una zona de

    memoria. R: REGISTERS R [registro] Sin parmetros, muestra el contenido de los

    registros de la CPU, as como la prxima instruccin a ejecutar.

    A: ASSEMBLE

    A [direccin] Cuando se utiliza este comando se le puede dar

    como parmetro la direccin donde se desea que se inicie el ensamblado, si se omite el parmetro el ensamblado se iniciar en la localizacin 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 [=direccin] [nmero] Trace puede ser incmodo si no se quiere

    depurar el cdigo de las rutinas de interrupcin o si ya se sabe el cdigo que hay en las subrutinas y tan slo interesa seguir avanzando sin entrar en ellas. En estos casos se usa p.

    T: TRACE T [=direccin] [valor] Ejecuta la instruccin apuntada por CS:IP

    III. ELEMENTOS Y EQUIPOS NECESARIOS

    Virtual Serial Port Driver 6.0 - Eltima Software.

    Mquina virtual con Windows XP y Puerto serial Habilitado.

    Simulador Proteus 7.7

    Conversor Serie a Paralelo simulacin en Proteus.

    IV. DESCRIPCIN DEL LABORATORIO

    En este laboratorio se presenta una gua bsica para manejo del puerto serial del computador mediante Debug y visualizacin en Proteus de los datos enviados por este. Debido a que las

  • Profesor: Ing. Wilson Javier Prez H Segundo Semestre de 2013

    UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA FACULTAD SEDE SOGAMOSO

    ESCUELA DE INGENIERA ELECTRNICA LABORATORIO DE MICROPROCESADORES

    computadoras porttiles de nueva generacin no disponen de este puerto, se usar una mquina virtual previamente instalada, y un programa que permite emular la conexin entre dos puertos seriales denominado Virtual Serial Port Driver.

    Figura 1. Diagrama de bloques de la interconexin de dos puertos seriales.

    Este programa realiza una conexin entre el puerto serial que se encuentra en la mquina virtual (COM1) y un puerto serial virtual (COM2) como se muestra en la Figura 1.

    a) Enlace puerto fsico con simulacin en Proteus.

    Abrir la aplicacin Virtual Serial Port Driver y seleccionar el primero y segundo puerto que se desean interconectar luego hacer click en Add pair.

    Figura 2. Seleccin de los puertos que se desean interconectar.

    En la parte izquierda del programa se muestran los puertos fsicos y las conexiones establecidas.

    Figura 3. Conexiones establecidas en el programa virtual serial port driver.

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

    Figura 4. Esquemtico en Proteus de la conexin serial a paralelo mediante microcontrolador PIC.

    Usar el mdulo USART del microcontrolador que usted elija para realizar la conversin serie a paralelo, en este ejemplo se usa un PIC16F877A configurado a una velocidad de transmisin de 9600 baudios.

    Configurar el COMPIM en funcin de la tasa de transmisin del microcontrolador como se muestra en la siguiente figura.

    Figura 5. Configuracin del puerto serial virtual en Proteus.

    b) Manejo bsico de puertos e instrucciones en Debug.

    Abrir la ventana de comandos y escribir Debug, luego presionar ENTER. Aparecer un guion (-) en cada lnea de ejecucin. Como se muestra en la siguiente figura.

    Figura 6. Ejecucin de Debug mediante lnea de comandos.

  • Profesor: Ing. Wilson Javier Prez H Segundo Semestre de 2013

    UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA FACULTAD SEDE SOGAMOSO

    ESCUELA DE INGENIERA ELECTRNICA LABORATORIO DE MICROPROCESADORES

    Escriba r en la lnea de comandos de Debug y presione ENTER, aparecern los registros, las banderas del procesador y la siguiente instruccin que se encuentra lista para ser ejecutada.

    Figura 7. Visualizacin de los registros y banderas del microprocesador.

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

    Figura 8. Direccin fsica del puerto serial dentro de la mquina virtual.

    Como se observa en la Figura 8 las direcciones del puerto son de 03F8-03FF. Para ms informacin sobre el manejo y configuraciones de este puerto remtase a [1]. El siguiente programa permite la configuracin del puerto COM1 con las siguientes caractersticas 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

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

    Figura 9. Ensamble de un programa bsico en Debug para configurar el puerto serial.

    Escribir r para visualizar los registros del procesador, y la primera instruccin ensamblada.

    Figura 10. Visualizacin de los registros y de la primera instruccin que ha sido ensamblada.

    El comando [t] permite ejecutar un paso a paso del programa ensamblado y automticamente incrementa el registro apuntador de instrucciones IP como se muestra a continuacin.

    Figura 11. Ejecucin paso a paso del programa anterior, se observa el incremento de IP.

    El comando g permite ejecutar un programa ensamblado ingresando la direccin de inicio y la direccin final en la que este se encuentre, como se

    muestra, g = 100 112 este comando ejecuta automticamente el programa que se encuentra entre las direcciones 100 hasta la 112.

    El puerto serial posee varios registros para su configuracin respectiva, La direccin ms baja del puerto [3F8] es la direccin donde se ponen datos para ser enviados. Es posible enviar datos a travs del puerto serial directamente desde la consola de Debug mediante el siguiente comando.

  • Profesor: Ing. Wilson Javier Prez H Segundo Semestre de 2013

    UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA FACULTAD SEDE SOGAMOSO

    ESCUELA DE INGENIERA ELECTRNICA LABORATORIO DE MICROPROCESADORES

    o [direccin del puerto], [dato hexadecimal de 8

    bits]

    As: -o 3f8,f0 y en la ventana de simulacin deber aparecer el byte enviado. Como se observa en la Figura 12.

    Figura 12. Datos Visualizados en Proteus despus de enviarlos desde Debug.

    A continuacin 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 lneas 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

    Gurdelo y abra la ventana de comandos de DOS. Ubquese en la direccin donde ha creado el archivo, por ejemplo C:\ y a continuacin ejecute el siguiente comando: debug < input.txt, aparecer el programa ensamblado como se muestra a continuacin.

    Figura 13. Programa ensamblado en Debug mediante un archivo.

  • Profesor: Ing. Wilson Javier Prez H Segundo Semestre de 2013

    UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA FACULTAD SEDE SOGAMOSO

    ESCUELA DE INGENIERA ELECTRNICA LABORATORIO DE MICROPROCESADORES

    En la misma ventana de DOS ejecute Debug, ubique la direccin 120 (que fue la direccin donde se comenz a ensamblar el programa)

    r ip

    120 Comience la ejecucin mediante el comando

    que sigue.

    t Cada vez que sea ejecutado el comando trace se

    ejecutara la instruccin actual y se visualizar en pantalla el cambio en los registros y banderas del procesador correspondientes.

    d) Mostrar mensajes en pantalla mediante la opcin 9 de la interrupcin 21h.

    La opcin 9 de la interrupcin 21h permite visualizar en pantalla una cadena de caracteres finalizada con un signo pesos $. Antes de insertar un mensaje se debe determinar la posicin en memoria donde se alojara el mensaje. Para determinar ms fcilmente 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 direccin actual.

    Figura 14. Despliegue de la informacin 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 tamao 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 instruccin de llenado fill en Debug el comando es.

    f [dir inicial] [dir final] [datos]

    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 posicin 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 lneas de cdigo en Debug. En esta gua se usar la direccin 130h que se encuentra 10 posiciones despus 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 17. Mensaje en pantalla despus de ejecutar el programa de despliegue.

    NOTA (Para informacin sobre interrupcin 21h revisar la bibliografa propuesta en esta gua)

    e) Ejercicio propuesto.

    Con base en la gua 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, cdigo, y el

  • Profesor: Ing. Wilson Javier Prez H Segundo Semestre de 2013

    UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA FACULTAD SEDE SOGAMOSO

    ESCUELA DE INGENIERA ELECTRNICA 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 A B C D

    45 1 0 0 0

    90 1 1 0 0

    135 0 1 0 0

    180 0 1 1 0

    225 0 0 1 0

    270 0 0 1 1

    315 0 0 0 1

    360 1 0 0 1

    Figura 18. Esquema general de un motor paso unipolar

    V. PROYECTO INDIVIDUAL

    Siguiendo el ejemplo mostrado en esta gua con el motor paso, cada grupo (mximo 2 personas) debe proponer una aplicacin 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 calificacin de la prctica de laboratorio ya que corresponde a diseo mientras que las etapas anteriores son solo de carcter comprobacional.

    VI. INFORME DE LABORATORIO

    Se debe presentar un informe de la prctica en formato IEEE de mximo 6 pginas, en el que se presente el anlisis de resultados y observaciones de la parte comprobacional y todo lo relativo al diseo del ejercicio propuesto por cada grupo.

    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 teora copiada de la red o cualquier otra fuente. Referencie la informacin necesaria para el desarrollo de la prctica.

    BIBLIOGRAFA

    [1] Barry B. Bray, The Intel Microprocessors, Fourth Edition, Prentice Hall, pag 412-419.

    [2] http://kipirvine.com/asm/debug/Debug_Tutorial.pdf

    [3] http://atc2.aut.uah.es/~rico/docencia/asignaturas/informatica/est_comp/archivos/Laboratorio/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.