Labo2 Micro

download Labo2 Micro

of 8

Transcript of Labo2 Micro

FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICAESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA

PRE-INFORME 2

MICROCONTROLADORES

Profesor: Ing. Zenn Cucho MendozaAlumno: Olsson Rivas, Bruno Sven090595J

2012-A

PROGRAMA 1: Un microcontrolador ATmel de 8 bits ha detectado 3 datos en R20, R21 y R22 que le entrega un sensor de temperatura en grados centgrados. Se pide escribir un programa que halle el mayor y la suma de los datos captados. El mayor se muestra en R29 y la suma en R30

RJMP INICIOINICIO:LDI R20,0b01010001LDI R21,0b00010010LDI R22,0b00110011LDI R30,0b00000000ADD R30,R20ADD R30,R21ADD R30,R22CP R20,R21BRSH IFCP R21,R22BRSH MAYOR2MOV R29,R22IF:CP R20,R22BRSH MAYOR1MOV R29,R22RJMP FINMAYOR1:MOV R29,R20RJMP FINMAYOR2:MOV R29,R21RJMP FINFIN: RJMP FIN

El programa ejecutado en el VMLAB cumple con el objetivo deseado por el enunciado inicial.Podemos observar que los registros R20, R21 y R22 se almacenan correctamente con valores aleatorios desde 0 a 255 y luego son comparados con los saltos respectivos para hallar el nmero mayor, el cual es almacenado en R29. Tambin podemos observar la suma de estos tres registros en R30

PROGRAMA 2: Escribir un programa para hallar la suma de 10 nmeros consecutivos contenidos en los registros del microcontrolador partir de R16. La suma se debe mostrar en R30.

RJMP INICIOINICIO:

LDI R16,10MOV R17,R16INC R17MOV R18,R17INC R18MOV R19,R18INC R19MOV R20,R19INC R20MOV R21,R20INC R21MOV R22,R21INC R22MOV R23,R22INC R23MOV R24,R23INC R24MOV R25,R24INC R25

MOV R30,R16ADD R30,R17ADD R30,R18ADD R30,R19ADD R30,R20ADD R30,R21ADD R30,R22ADD R30,R23ADD R30,R24ADD R30,R25

FIN: RJMP FIN

En la siguiente imagen se comprueba el funcionamiento del programa. Desde el registro R16 hasta el registro R25 se almacena la secuencia de la serie, mientras que en el R30 se muestra la suma total de todos los registros de la serie

PROGRAMA 3:Un microcontrolador ha registrado 3 temperaturas en sus registros R16, R17 y R18. Se desea ordenarlos del modo siguiente: El menor se guarda en R28 El valor intermedio en R29 El Valor mayor en R30. Implemente el programa

RJMP INICIOINICIO:LDI R16,0b00010001LDI R17,0b00010010LDI R18,0b10110011LDI R30,0

CP R16,R17BRSH IFCP R17,R18BRSH MAYOR2MOV R30,R18CP R16,R17BRLO MENORMOV R29,R16MOV R28,R17

IF:CP R16,R18BRSH MAYOR1MOV R30,R18CP R16,R17BRLO MENORMOV R29,R16MOV R28,R17RJMP FIN

MAYOR1:MOV R30,R16CP R17,R18

BRLO MEDIO1MOV R29,R17MOV R28,R18RJMP FIN

MAYOR2:MOV R30,R17CP R16,R18BRLO MEDIO2MOV R29,R16MOV R28,R18RJMP FIN

MENOR:MOV R29,R17MOV R28,R16RJMP FIN

MEDIO1:MOV R29,R18MOV R28,R17RJMP FIN

MEDIO2:MOV R29,R18MOV R28,R16RJMP FIN

FIN: RJMP FIN

En la siguiente imagen podemos ver el funcionamiento del programa en los distintos casos:

PROGRAMA 4: Escriba un programa en lenguaje ensamblador para el microcontrolador ATMEL Atmega8 a fin de hallar la divisin de 2 nmeros contenidos en R20 (dividendo) y R18 (divisor), donde R20 es mayor o igual a R18. El cociente se guarda en R28 El residuo en R29. (Emplee el mtodo de restas sucesivas)

RJMP INICIOINICIO:LDI R20,25LDI R18,5LDI R28,1MOV R22,R20RESTA:SUB R22,R18CP R22,R18BRLO RESTA_FINALINC R28RJMP RESTA

RESTA_FINAL:MOV R29,R22RJMP FIN

FIN: RJMP FIN