Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Practica5 EdC
Practica5 EdC
1. Introduccin y objetivos
- Presentar el entorno de programacin y depuracin de microcontroladores de ATMEL llamado AVRSTUDIO.
- Simular y depurar programas escritos en lenguaje ensamblador para el microcontrolador
ATMEGA328P.
AVR.STUDIO puede descargarse gratuitamente desde las pginas del fabricante de ATMEL en:
http://www.atmel.com
Durante la sesin de laboratorio se debe disponer de los ficheros indicados en la tabla 1.
Nombre del fichero
Contenido
suma.asm
suma_tabla.asm
compara.asm
2. Estudio terico
Se van a utilizar tres programas en lenguaje ensamblador. Estos estn disponibles en el directorio
correspondiente a esta prctica en la web de la asignatura.
A continuacin se presentan algunos detalles de los mismos:
1. Programa SUMA: (objetivos: utilizar los punteros del microcontrolador, introducir la programacin
mediante subrutinas y presentar un mtodo para la inicializacin de datos en memoria)
Realizaremos una subrutina suma32 en ensamblador del AVR que permitir sumar dos
nmeros sin signo de 32 bits. Los 2 sumandos estn en las posiciones de memoria apuntadas
por Y e Y+4. El resultado de la suma se almacena a partir de Z. Se recuerda que los datos se
almacenan en memoria en little-endian, es decir la parte ms significativa del dato en la
direccin de valor mayor.
memoria
Y
R29 R28
Y+4
8 bits
A7:0
A15:8
A23:16
A31:24
B7:0
B15:8
B23:16
B31:24
}
}
S7:0
S15:8
S23:16
S31:24
dato A
dato B
R3
R2
R1
R0
R7
R6
R5
R4
R31 R30
resultado
16 bits
8 bits
memoria
memoria
de
programa
de
datos
X
R27 R26
R31 R30
tablatemp
tabla
..
.
..
.
3. Programa COMPARA: (objetivo: afianzar los conceptos ya explicados y utilizar las instrucciones de
comparacin)
Realizaremos una subrutina compara en ensamblador del AVR que permitir localizar los
elementos mayor y menor de una tabla de datos con signo de 8 bits.
3. Estudio experimental
El estudio experimental se divide en dos bloques: el primero consiste en utilizar los dos primeros
programas del estudio terico para familiarizarse con el entorno de desarrollo AVR-STUDIO. Para
ello, necesitar completar el programa suma.asm y comprender el programa suma_tabla.asm. El
segundo bloque se centra en realizar modificaciones a dichos programas para realizar operaciones
ms complejas y generar el tercer programa: compara.asm.
Bloque I:
- Siga los pasos mostrados en la "gua de uso del programa" para cargar y simular los
programas.
- Complete el programa suma.asm y compruebe que funciona correctamente. Para ello sume
las cantidades $12345678 y $09ABCDEF. Anote el resultado.
- Ejecute el programa suma_tabla.asm y compruebe que funciona correctamente. Anote la tabla
que se ha utilizado en el programa y el resultado final de la suma. Muestre los valores de los
registros R0, R1, temp y R2 para las 4 primeras iteraciones del bucle de suma y explique el
procedimiento seguido para la suma y la necesidad de estos registros.
Bloque II
- Proponga dos ejemplos ms para el programa suma.asm y compruebe nuevamente el
resultado. Anote ejemplos y resultados.
- Modifique el programa suma.asm para que en caso de desbordamiento de la suma devuelva el
valor $FEFEFEFE como resultado y el carry se devuelva a 1. Comprubelo. Anote brevemente
las modificiones realizadas y muestre el programa a su profesor.
- Pruebe el programa suma_tabla.asm para las siguientes tablas de datos y anote el resultado
obtenido.
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
- Justifique el resultado que se obtendra para la siguiente tabla de valores y anote sus
conclusiones.
Tabla
100,200,300