You are on page 1of 2

.include "m16def.

inc"
.EQU F_CPU=1000000
.cseg
.org 0
///location 1 - 38 dedicated for interrupt service routines(ISR)
rjmp main
//Interrupt vector table comes here
.org 0x2A
main:
ldi r16, 0xff
out DDRB, r16 //Declaring PORTB as output
//Initializing stack pointer
ldi r16, high(RAMEND)
out SPH, r16
ldi r16, low(RAMEND)
out SPL, r16
//Stack pointer initialized
loop:
//turn on led
ldi r16,0b0111111
out DDRC,r16//turns on led
call
call
call
call
call
call

delay
delay
delay
delay
delay
delay

ldi r16,0b0000110
out DDRC,r16
call delay
call delay
call delay
call delay
ldi r16,0b1011011
out DDRC,r16
call delay
call delay
call delay
call delay
call delay
call delay
ldi r16,0b1001111
out DDRC,r16
call delay
call delay
call delay
call delay
ldi r16,0b1100110
out DDRC,r16
call delay
call delay
call delay
call delay
call delay
call delay
ldi r16,0b1101101
out DDRC,r16
call delay
call delay

call delay
call delay
call delay
call delay
ldi r16,0b1111101
out DDRC,r16
call delay
call delay
call delay
call delay
call delay
call delay
ldi r16,0b0000111
out DDRC,r16
call delay
call delay
call delay
call delay
ldi r16,0b1111111
out DDRC,r16
call delay
call delay
call delay
call delay
call delay
call delay
ldi r16,0b1101111
out DDRC,r16
call delay
call delay
call delay
call delay
call delay
call delay
rjmp loop
delay:
ldi r16,255
L1:
dec r16
Ldi r17,255
brne L2
ret
L2:
dec r17
brne L2
rjmp L1

You might also like