practica5 edc

4
Introducción a AVR-Studio 1. Introducción y objetivos - Presentar el entorno de programación y depuración de microcontroladores de ATMEL llamado AVR- STUDIO. - Simular y depurar programas escritos en lenguaje ensamblador para el microcontrolador ATMEGA328P. AVR.STUDIO puede descargarse gratuitamente desde las páginas del fabricante de ATMEL en: http://www.atmel.com Durante la sesión de laboratorio se debe disponer de los ficheros indicados en la tabla 1. Nombre del fichero Contenido suma.asm Programa que permite calcular la suma de dos números de 32 bits. A completar por el alumno. suma_tabla.asm Programa para calcular la suma de una tabla de números con signo de 8 bits. compara.asm Programa para calcular los elementos mayor y menor de una tabla de números con signo de 8 bits. A completar por el alumno. Tabla 1: Ficheros necesarios para realizar la práctica

Upload: sandoval-daniel

Post on 27-Nov-2015

16 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Practica5 EdC

Introducción a AVR-Studio

1. Introducción y objetivos

- Presentar el entorno de programación y depuración de microcontroladores de ATMEL llamado AVR-STUDIO.

- Simular y depurar programas escritos en lenguaje ensamblador para el microcontroladorATMEGA328P.

AVR.STUDIO puede descargarse gratuitamente desde las páginas del fabricante de ATMEL en: http://www.atmel.com

Durante la sesión de laboratorio se debe disponer de los ficheros indicados en la tabla 1.

Nombre del fichero Contenido

suma.asm Programa que permite calcular la suma de dos números de 32 bits. A completar por el alumno.

suma_tabla.asm Programa para calcular la suma de una tabla de números con signo de 8 bits.

compara.asm Programa para calcular los elementos mayor y menor de una tabla de números con signo de 8 bits. A completar por el alumno.

Tabla 1: Ficheros necesarios para realizar la práctica

Page 2: Practica5 EdC

2. Estudio teórico

Se van a utilizar tres programas en lenguaje ensamblador. Estos están disponibles en el directoriocorrespondiente a esta práctica en la web de la asignatura.

A continuación se presentan algunos detalles de los mismos:

1. Programa SUMA: (objetivos: utilizar los punteros del microcontrolador, introducir la programaciónmediante subrutinas y presentar un método para la inicialización de datos en memoria)

Realizaremos una subrutina suma32 en ensamblador del AVR que permitirá sumar dosnúmeros sin signo de 32 bits. Los 2 sumandos están en las posiciones de memoria apuntadaspor Y e Y+4. El resultado de la suma se almacena a partir de Z. Se recuerda que los datos sealmacenan en memoria en little-endian, es decir la parte más significativa del dato en ladirección de valor mayor.

Realización del programa:

El programa del fichero suma.asm consta fundamentalmente de tres partes:

- programa principal: desde el que se llama a las dos subrutinas que se mencionan acontinuación,

- subrutina iniciaSuma: en la que se escriben en la memoria los dos datos de 32 bits,

- subrutina suma32: en la que se suman los dos datos y se almacena el resultado.

A31:24 A23:16 A15:8 A7:0

A7:0A15:8A23:16A31:24B7:0B15:8B23:16B31:24

S7:0S15:8S23:16S31:24

memoria

8 bitsY

R29 R28

Y + 4 }}

}

dato A

dato B

resultado

Z

R31 R30

R1 R0R3 R2

R5 R4R7 R6

B31:24 B23:16 B15:8 B7:0

S31:24 S23:16 S15:8 S7:0

Page 3: Practica5 EdC

2. Programa SUMA_TABLA: (objetivos: presentar otro método para la inicialización de datos enmemoria y perfeccionar el uso de punteros y bucles)

Realizaremos una subrutina iniciaTabla en ensamblador del AVR que permitirá trasladar unatabla desde la memoria de programa a la memoria de datos. Este traslado lo hacemos, ya queno es posible utilizar la directiva .db (define constante en memoria) directamente sobre lamemoria de datos, sólo es posible usarla sobre la memoria de programa. Hay que tenerencuenta la diferencia del ancho de ambas memorias, cada palabra de la memoria de programanecesitará ser trasladada sobre dos palabras de la memoria de datos.

Realización del programa:

El programa del fichero suma_tabla.asm consta fundamentalmente de tres partes:

- definición de la tabla en la memoria de programa mediante la directiva ".db",

- programa principal: desde el que se llama a la subrutina iniciaTabla y, a continuación, serealiza la suma de elementos mediante un bucle,

- subrutina iniciaTabla: en la que se copia la tabla desde la memoria de programa a la memoriade datos.

3. Programa COMPARA: (objetivo: afianzar los conceptos ya explicados y utilizar las instrucciones decomparación)

Realizaremos una subrutina compara en ensamblador del AVR que permitirá localizar loselementos mayor y menor de una tabla de datos con signo de 8 bits.

programa

tablatemp

memoria

de

.

..

datos

tabla

memoria

de

.

..

8 bits16 bits

Z

R31 R30

X

R27 R26

Page 4: Practica5 EdC

Realización del programa:

El programa del fichero compara.asm consta fundamentalmente de dos partes:

- programa principal: desde el que se inicializa la tabla en memoria por cualquiera de losmétodos ya presentados en los programas anteriores y a continuación se realiza la búsquedade los elementos mayor y menor,

- subrutinas y definiciones necesarias.

3. Estudio experimental

El estudio experimental se divide en dos bloques: el primero consiste en utilizar los dos primerosprogramas del estudio teórico para familiarizarse con el entorno de desarrollo AVR-STUDIO. Paraello, necesitará completar el programa suma.asm y comprender el programa suma_tabla.asm. Elsegundo bloque se centra en realizar modificaciones a dichos programas para realizar operacionesmás complejas y generar el tercer programa: compara.asm.

Bloque I:

- Siga los pasos mostrados en la "guía de uso del programa" para cargar y simular losprogramas.

- Complete el programa suma.asm y compruebe que funciona correctamente. Para ello sumelas cantidades $12345678 y $09ABCDEF. Anote el resultado.

- Ejecute el programa suma_tabla.asm y compruebe que funciona correctamente. Anote la tablaque se ha utilizado en el programa y el resultado final de la suma. Muestre los valores de losregistros R0, R1, temp y R2 para las 4 primeras iteraciones del bucle de suma y explique elprocedimiento seguido para la suma y la necesidad de estos registros.

Bloque II

- Proponga dos ejemplos más para el programa suma.asm y compruebe nuevamente elresultado. Anote ejemplos y resultados.

- Modifique el programa suma.asm para que en caso de desbordamiento de la suma devuelva elvalor $FEFEFEFE como resultado y el carry se devuelva a 1. Compruébelo. Anote brevementelas modificiones realizadas y muestre el programa a su profesor.

- Pruebe el programa suma_tabla.asm para las siguientes tablas de datos y anote el resultadoobtenido.

- Justifique el resultado que se obtendría para la siguiente tabla de valores y anote susconclusiones.

- Complete el programa compara.asm y compruebe que funciona correctamente. Anote la tablaque ha utilizado en el programa y el resultado final de la comparación.

Tabla

10, 4, -1, 0 , 0, 6, 3, 10, 100, -100, 24, 23, -56, 4, 15, 16

-12, 10, -14, 12 , 100, -98, -10, 0, 0 , 1, 1, 0 , -10 , 12, 0, 6

100, 90, 80, 70 , 60, 50 ,40 ,30, 20, 10, 0

Tabla

100,200,300