Informe Previo de Microcontroladores

3
INFORME PREVIO DE MICROCONTROLADORES PREG1. Un microprocesador AVR de 8 bits ha detectado 3 datos en R20,R21,R22 que le entrega un sensor de temperatura en grados centígrados. Se pide escribir un programa para hallar el menos y la suma de los datos captados. El menor se muestra en R25 y la suma de los 3 valores en R26. SOLUCION: .include "C:\VMLAB\include\m8def.inc" .cseg .org $0 rjmp inicio inicio: ldi r20,0b00001100 ;almacenamos 8 en r20 ldi r21,0b00000100 ;almacenamos 4 en r21 ldi r22,0b00000010 ;almacenamos 3 en r22

Transcript of Informe Previo de Microcontroladores

Page 1: Informe Previo de Microcontroladores

INFORME PREVIO DE MICROCONTROLADORES

PREG1.

Un microprocesador AVR de 8 bits ha detectado 3 datos en R20,R21,R22 que le entrega un sensor de temperatura en grados centígrados. Se pide escribir un programa para hallar el menos y la suma de los datos captados.

El menor se muestra en R25 y la suma de los 3 valores en R26.

SOLUCION:

.include "C:\VMLAB\include\m8def.inc"

.cseg

.org $0

rjmp inicio

inicio:

ldi r20,0b00001100 ;almacenamos 8 en r20

ldi r21,0b00000100 ;almacenamos 4 en r21

ldi r22,0b00000010 ;almacenamos 3 en r22

Page 2: Informe Previo de Microcontroladores

cpc r20,r21 ;comparamos r20 con r21

brmi lazo ;salta a lazo si r20<r21

mov r0,r20 ;movemos r20 a r0

mov r1,r21 ;movemos r21 a r1

rjmp data ;salta a la etiquera data

lazo:

mov r0,r21 ;movemos r21 a r0

mov r1,r20 ;movemos r20 a r1

data:

cpc r20,r22 ;comparamos r20 con r22

brmi lazo1 ;salta si r20<r22

mov r2,r20 ;movemos r20 a r2

mov r3,r22 ;movemos r22 a r3

rjmp data2

lazo1:

mov r2,r22 ;movemos r22 a r2

mov r3,r21 ;movemos r21 a r3

data2:

cpc r21,r22 ;comparamos r21 con r22

brmi data3 ;salta si r21<r22

mov r4,r21 ;movemos r21 a r4

mov r5,r22 ;movemos r22 a r5

rjmp salida

data3:

mov r4,r22

mov r5,r21

Page 3: Informe Previo de Microcontroladores

rjmp salida

salida:

cpc r4,r5

rjmp data4

data4:

mov r25,r5 ;nos muesrra el menor

add r20,r21 ;sumamos r20 con r21 y se almacena en r20

add r22,r20 ;sumamos r22 con r20 y se almacena en r22

mov r26,r22 ;guardamos la suma en r26

fin: rjmp fin