Está en la página 1de 10

FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA

PRE-INFORME 2

FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA PRE-INFORME 2 MICROCONTROLADORES Profesor: Ing.

MICROCONTROLADORES

Profesor:

Ing. Zenón Cucho Mendoza

Alumno:

Olsson Rivas, Bruno Sven

2012-A

090595J

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 centígrados. 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 INICIO INICIO:

LDI R20,0b01010001 LDI R21,0b00010010 LDI R22,0b00110011 LDI R30,0b00000000 ADD R30,R20 ADD R30,R21 ADD R30,R22 CP R20,R21 BRSH IF CP R21,R22 BRSH MAYOR2 MOV R29,R22 IF:

CP R20,R22

BRSH MAYOR1

MOV R29,R22

RJMP FIN

MAYOR1:

MOV R29,R20

RJMP FIN

MAYOR2:

MOV R29,R21 RJMP FIN FIN: RJMP FIN

RJMP INICIO INICIO: LDI R20,0b01010001 LDI R21,0b00010010 LDI R22,0b00110011 LDI R30,0b00000000 ADD R30,R20 ADD R30,R21 ADD

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 número mayor, el cual es almacenado en R29. También podemos observar la suma de estos tres registros en R30

El programa ejecutado en el VMLAB cumple con el objetivo deseado por el enunciado inicial. Podemos

PROGRAMA 2:

Escribir un programa para hallar la suma de 10 números consecutivos contenidos en los registros del microcontrolador partir de R16. La suma se debe mostrar en R30.

RJMP INICIO

INICIO:

LDI R16,10

MOV R17,R16

INC R17

MOV R18,R17

INC R18

MOV R19,R18

INC R19

MOV R20,R19

INC R20

MOV R21,R20

INC R21

MOV R22,R21

INC R22

MOV R23,R22

INC R23

MOV R24,R23

INC R24

MOV R25,R24

INC R25

MOV R30,R16

ADD R30,R17

ADD R30,R18

ADD R30,R19

ADD R30,R20

ADD R30,R21

ADD R30,R22

ADD R30,R23

ADD R30,R24

ADD R30,R25

FIN: RJMP FIN

PROGRAMA 2: Escribir un programa para hallar la suma de 10 números consecutivos contenidos en los

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

En la siguiente imagen se comprueba el funcionamiento del programa. Desde el registro R16 hasta el

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 INICIO INICIO:

LDI R16,0b00010001

BRLO MEDIO1

LDI R17,0b00010010

MOV R29,R17

LDI R18,0b10110011

MOV R28,R18

LDI R30,0

RJMP FIN

CP R16,R17

MAYOR2:

BRSH IF

MOV R30,R17

CP R17,R18

CP R16,R18

BRSH MAYOR2

BRLO MEDIO2

MOV R30,R18

MOV R29,R16

CP R16,R17

MOV R28,R18

BRLO MENOR

RJMP FIN

MOV R29,R16

MOV R28,R17

MENOR:

MOV R29,R17

IF:

MOV R28,R16

CP R16,R18

RJMP FIN

BRSH MAYOR1

MOV R30,R18

MEDIO1:

CP R16,R17

MOV R29,R18

BRLO MENOR

MOV R28,R17

MOV R29,R16

RJMP FIN

MOV R28,R17

RJMP FIN

MEDIO2:

MOV R29,R18

MAYOR1:

MOV R28,R16

MOV R30,R16

RJMP FIN

CP R17,R18

 

FIN: RJMP FIN

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

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 división de 2 números 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 método de restas sucesivas)

RJMP INICIO INICIO: LDI R20,25 LDI R18,5 LDI R28,1 MOV R22,R20 RESTA: SUB R22,R18 CP R22,R18
RJMP INICIO
INICIO:
LDI R20,25
LDI R18,5
LDI R28,1
MOV R22,R20
RESTA:
SUB R22,R18
CP R22,R18
BRLO RESTA_FINAL
INC R28
RJMP RESTA
RESTA_FINAL:
MOV R29,R22
RJMP FIN
FIN: RJMP FIN