Está en la página 1de 2

inicio:

LDI r16, 0xFF ;Carga todos los bits en 1 <<encendidos>> en el registro 16


OUT DDRB, r16 ;Inicializa la salida de la data en el registro B para los pines
OUT DDRD, r16
bucle:
// aqui tenemos el 1
SBI PORTB, 5
CALL delay
CBI PORTB, 5
CALL delay
// aqui tenemos el 2
SBI PORTB, 4
CALL delay
CBI PORTB, 4
CALL delay
// aqui tenemos el 3
SBI PORTB, 5
SBI PORTB, 4
CALL delay
CBI PORTB, 5
CBI PORTB, 4
CALL delay
// aqui tenemos el 4
SBI PORTB, 3
CALL delay
CBI PORTB, 3
CALL delay
// aqui tenemos el 5
SBI PORTB, 3
SBI PORTB, 4
CALL delay
CBI PORTB, 3
CBI PORTB, 4
CALL delay
// aqui tenemos el 6
SBI PORTB, 3
SBI PORTB, 4
SBI PORTB, 5
CALL delay
CBI PORTB, 3
CBI PORTB, 4
CBI PORTB, 5
CALL delay

RJMP bucle ;Reinicia el loop (bucle)


;Delay para reducir el ciclo del bucle
delay:
LDI r16, 25 ;Carga en el registro 16 la cantidad de sgds para elencendido del
led
salida_bucle:
LDI r24, low(100) ;Establece el registro 24 como salida en low (LED apagado)
LDI r25, high(100) ;Establece el registro 25 como salida en high (LED encendido
)

delay_bucle:
ADIW r24, 1 ;Anade 1 bit al registro 25 para hacer el blinkeo desdelos registro
s
BRNE delay_bucle
DEC r16
BRNE salida_bucle
RET

También podría gustarte