Está en la página 1de 8

LABORATORIO DE SISTEMAS MICROPROCESADOS

ESCUELA POLITCNICA NACIONAL


Campus Politcnico "J. Rubn Orellana R."
FACULTAD DE INGENIERA ELCTRICA Y ELECTRNICA
Carrera de Ingeniera Electrnica y Control
Carrera de Ingeniera Electrnica y Telecomunicaciones
Carrera de Ingeniera Electrnica y Redes de Informacin
Carrera de Ingeniera Elctrica

LABORATORIO DE SISTEMAS MICROPROCESADOS

PRCTICA N3
1. TEMA :
Conocimiento del software de desarrollo ATMEL Studio
2. OBJETIVO:
Conocer una de las herramientas existentes para el desarrollo y depuracin de programas
para aplicaciones con microcontroladores de 8 bits de Atmel, especficamente AVR
Studio 6.
3. INFORMACIN
MARCO TERICO
Atmel Studio es una plataforma de desarrollo integrado (IDP) para desarrollar y depurar
aplicaciones desarrolladas con microcontroladores ARM y AVR. Atmel Studio 7 IDP
presenta un ambiente fcil de usar para escribir, generar y depurar sus aplicaciones
escritas en C / C ++ o assembler. Adems, se puede emplear con tarjetas de desarrollo de
Atmel.
Hay versiones previas de Atmel Studio, en la actualidad se encuentra en la versin 7.0, sim
embargo el estudiante puede emplear cualquiera.

Direccin: Ladrn de Guevara E11-253

Telfono: (02) 2976300 Ext.2209


Quito - Ecuador

Correo: coord.electronica.control@epn.edu.ec

LABORATORIO DE SISTEMAS MICROPROCESADOS

Figura 1: Versiones de AVR Studio


Los Ensambladores
En el desarrollo de los programas de cualquier proyecto basado en microprocesador se
necesita de la ayuda de un Ensamblador, esto no es ms que una herramienta de software
que simplifica la tarea de escribir los programas y que se encarga de traducir el cdigo
simblico o Lenguaje Ensamblador (Assembler) en un cdigo ejecutable o Lenguaje de
Mquina, que se almacena en la memoria del microcontrolador para su ejecucin.
Cuando se ensamblan un conjunto de programas lo que se hace es traducirlos en un
idioma mediante el cual se pueda instruir al CPU para que este ejecute eficazmente las
tareas que se desea realizar; por tanto al momento de escribir un programa se debe estar
totalmente familiarizado con la arquitectura del microcontrolador y las instrucciones que
puede ejecutar.
Un programa escrito en lenguaje ensamblador contiene:

Instrucciones del programa


Comentarios
Directivas del ensamblador
Controles para el ensamblador

Una instruccin de programa es el cdigo que se transforma en lenguaje de mquina para


ser almacenado en la memoria del programa.
Los comentarios son textos que el programador utiliza para documentar los programas y
que el ensamblador no toma en cuenta.
Las directivas del ensamblador se usan para comprender la estructura del programa y
facilitar modificaciones posteriores, estos cdigos no generan instrucciones y pueden crear
datos, mensajes, etc.
Los controles para el ensamblador son acciones que el programador define para realizar el
proceso de ensamblado en forma adecuada.
Muchos programas son demasiado largos y complejos para escribirlos como una sola
unidad.
Las soluciones se vuelven ms simples cuando el cdigo se divide en varios mdulos o
subprogramas. Los beneficios de este tipo de programacin son:
Desarrollo eficiente de programas: La programacin ocupa menos tiempo, debido a que
los subprogramas son fciles de estructurar, escribir y comprobar, en comparacin con los
Direccin: Ladrn de Guevara E11-253

Telfono: (02) 2976300 Ext.2209


Quito - Ecuador

Correo: coord.electronica.control@epn.edu.ec

LABORATORIO DE SISTEMAS MICROPROCESADOS

que se realizan en un solo mdulo. Una vez que se han definido las entradas y salidas de
cada mdulo, el programador proporciona la informacin requerida y verifica la exactitud
de cada mdulo examinando los resultados. Terminadas estas pruebas, los mdulos
separados se unen y son ensamblados como un solo mdulo para el programa ejecutable,
finalmente el mdulo completo puede ser sometido a las ltimas pruebas.
Uso mltiple de subprogramas: El cdigo escrito para un programa es a menudo til para
otros, la programacin modular permite guardar estas instrucciones para ser utilizadas en
el futuro. El cdigo puede ser reutilizado, se pueden unir con otros mdulos que estn
previamente almacenados y que cumplan con los requisitos de entrada y salida. Tambin
se tiene la facilidad de guardar estas rutinas para ser usadas solamente con ciertos
programas; es decir, que no estn disponibles para todos.
Facilidad de depuracin y modificacin: Los programas modulares son por lo general ms
fciles de depurar que otro tipo de programas, debido a que las interfaces para cada
mdulo estn bien definidas, se pueden aislar los problemas que presentan cada mdulo
en forma especfica.
Breve descripcin del entorno AVRStudio 7
Una vez invocado el entorno se despliega la Pgina Inicial, en donde se puede escoger
entre crear un Nuevo Proyecto, abrir Ejemplos de Proyectos o Proyectos Elaborados, cuyo
listado ms reciente tambin se muestra. Adems, existen enlaces a las diferentes ayudas
que el programador necesita.

Figura 2: Ventana de inicio de AVR Studio 7


Al escoger la creacin de un nuevo proyecto (New Project), en la ventana que se
despliega para proyectos en Assembler, llenar el nombre del archivo de extensin .asm y
de la carpeta del proyecto (que se rellena automticamente). Tambin se debe escoger la
ubicacin en donde se van a crear. Luego pulsar OK.

Direccin: Ladrn de Guevara E11-253

Telfono: (02) 2976300 Ext.2209


Quito - Ecuador

Correo: coord.electronica.control@epn.edu.ec

LABORATORIO DE SISTEMAS MICROPROCESADOS

Figura 3: Iniciar un proyecto en assembler


En la ventana Device Selection se escoge al microcontrolador con el cual se desarrolla el
proyecto, ejemplo el ATmega164P. Antes de confirmar se muestran enlaces sobre
informacin del dispositivo y de las herramientas de hardware.

Figura 4: Seleccin de Microcontrolador y caracterstica de este.


A partir de aqu la herramienta est operativa, se abre la ventana donde se edita el
programa y otras dos situadas a la derecha donde se puede navegar por los componentes
de la solucin y las respectivas propiedades. En la parte inferior se encuentra la ventana de
salida de resultados al realizar el ensamblado.

Direccin: Ladrn de Guevara E11-253

Telfono: (02) 2976300 Ext.2209


Quito - Ecuador

Correo: coord.electronica.control@epn.edu.ec

LABORATORIO DE SISTEMAS MICROPROCESADOS

Figura 5: Ventana principal de AVR Studio 7


Los textos se escriben con maysculas o minsculas que el ensamblador no diferencia. Se
recomienda que sea una instruccin por lnea respetando el formato de las columnas de:
Etiqueta, Cdigo de la Operacin (Nemonicos ), Operandos y Comentarios. Que con la
ayuda de los colores que se generan automticamente se puede leer los programas con
facilidad.

Figura 6: Estructura de lneas de programacin


Al momento de invocar el ensamblado del programa, se encadena automticamente
con el archivo m164pdef.inc, que es un archivo de texto suministrado por el
fabricante con las direcciones de todos los registros de E/S del ATmega164P
asignadas a una etiqueta que corresponden a los nombres de los registros que Atmel
utiliza en su documentacin. De esta forma, es fcil elaborar el programa con el nombre
del registro en lugar de la direccin que ocupa. As mismo, se puede asignar nombres a los
registros r0-r31 mediante la directiva .def.
Direccin: Ladrn de Guevara E11-253

Telfono: (02) 2976300 Ext.2209


Quito - Ecuador

Correo: coord.electronica.control@epn.edu.ec

LABORATORIO DE SISTEMAS MICROPROCESADOS

Figura 7: Ejemplo de programa


Una vez ensamblado el programa con Build -> Build Solution, los errores se los ubica, para
ser corregidos, mediante dos clicks sobre las lneas que se encuentran la lista de la
ventana inferior. Este proceso se repite hasta obtener completo el cdigo de mquina.

Figura 8: Built Solution


Con Debug -> Step Into activamos la simulacin. Se podr interactuar con el
programa mediante los elementos que aparecen en las ventanas del Procesador y de la
Memoria que se despliegan en lugar de las anteriores.

Direccin: Ladrn de Guevara E11-253

Telfono: (02) 2976300 Ext.2209


Quito - Ecuador

Correo: coord.electronica.control@epn.edu.ec

LABORATORIO DE SISTEMAS MICROPROCESADOS

Figura 9: Simulacin de un programa


4. TRABAJO PREPARATORIO
4.1 Consulte y presente la sintaxis de las diferentes lneas que se utilizan con el
ensamblador del AVRStudio 6.
4.2 Traer el siguiente programa como un archivo de texto y consultar todas las instrucciones
utilizadas en el programa, ver set de instrucciones del ATmega 164p. (Tener en cuenta que
la sintaxis del programa es errnea)
;*************************************************************************
**
;*
;* "div8u" - 8/8 Bit Unsigned Division
;*
;* This subroutine divides the two register variables "DD8U" (dividend) and
;* "DV8U" (divisor). The result is placed in "DRES8U" and the remainder in
;* "DREM8U".
;*
;* Number of words: 14
;* Number of cycles: 97
;* Low registers used: 1 (DREM8U)
;* High registers used : 3 (DRES8U/DD8U,DV8U,DCNT8U)
;*
;*************************************************************************
**
;***** Subroutine Register Variables
.def drem8u = r15 ; remainder
Direccin: Ladrn de Guevara E11-253

Telfono: (02) 2976300 Ext.2209


Quito - Ecuador

Correo: coord.electronica.control@epn.edu.ec

LABORATORIO DE SISTEMAS MICROPROCESADOS

.def dres8u = r16 ; result


.def dd8u = r16 ; dividend
.def dv8u = r17 ; divisor
.def dcnt8u = r18 ; loop counter
;***** code
org 0x00
ldi dd8u,76
ld dv8u,24
div8u: sub dremu,drem8u ; clear remainder and carry
ldi dcnt8u,9 ; init loop counter
d8u_1: role dd8u ; shift left dividend
dec dcnt8u ; decrement counter
brn d8u_2 ; if done
rjmp fin ; return
d8u_2: rol drem8u ; shift dividend into remainder
sub drem8u,dv8u ; remainder = remainder - divisor
brcc d8u_3 ; if result negative
add drem8u,dv8u ; restore remainder
sec
; clear carry to be shifted into result
rjmp d8u_1 ; else
d8u_3: sec
; set carry to be shifted into result
rjmp d8u_1
fin rjmp fin
5. EQUIPO Y MATERIALES
Computador con AVRStudio
6. PROCEDIMIENTO
6.1 Con la ayuda del instructor crear un nuevo proyecto que contenga como programa el
texto realizado como parte del trabajo preparatorio, corrija los errores cometidos para
generar el archivo de salida en formato .hex.
6.2 Comprobar el funcionamiento adecuado del programa, utilizando para ello el
simulador incluido en AVRStudio
7. INFORME:
7.1 Repetir la simulacin con otros cuatro conjuntos de datos y presentar los resultados
mediante capturas de pantallas
7.2 Adicionalmente realizar lo que el instructor solicite el instructor.
8

REFERENCIAS:
http://www.atmel.com/products/microcontrollers/avr/default.aspx?tab=documents

Direccin: Ladrn de Guevara E11-253

Telfono: (02) 2976300 Ext.2209


Quito - Ecuador

Correo: coord.electronica.control@epn.edu.ec