No, trochu jsem to predelal, co myslite pojedeto?
/*
* Uloha.asm
*
* Created: 28.11.2012 18:18:36
* Author: Predator
*/
.DEF REG=R16
.ORG 0
RJMP ZACATEK
.ORG 0001
RJMP ZPET
ZACATEK:
SBI PORTD, 2 //NASTAVENI BITU PORTU D
LDI REG, 0b01000000 //ULOZENI HODNOTY DO REGISTRU R16->NASTAVENI BITU I
OUT SREG, REG //NASTAVENI BITU I, ABYCH MOHL DELAT PRERUSENI
CLR REG //VYMAZANI REGISTRU R16,ABY BYL VOLNY PRO DALSI POUZITI
LDI REG, 0b00111000 //ULOZENI HODNOTY DO REGISTRU R16->NASTAVENI BITU SM1/0 SE
OUT MCUCR, REG //ZAPNUTI REZIMU POWER-DOWN, NASTAVENI PRERUSENI
CLR REG //VYMAZANI REGISTRU R16,ABY BYL VOLNY PRO DALSI POUZITI
LDI REG, 0b00100000 //ULOZENI HODNOTY DO REGISTRU R16->NASTAVENI PRERUSENI INT0
OUT GIMSK, REG //NASTAVENI PRERUSENI INT0
CLR REG //VYMAZANI REGISTRU R16,ABY BYL VOLNY PRO DALSI POUZITI
HAD:
LDI REG, RAMEND //NASTAVENI ZASOBNIKU
OUT SPL, REG
RCALL ZHASNI //ZAVOLANI PODPROGRAMU PRO ZHASNUTI LED
ROR REG //BEHANI HADA
RCALL DELAY //ZAVOLANI PODPROGRAMU PRO ZPOZDENI
DELAY:
LDI R29, 0 //ULOZENI HODNOTY DO REGISTRU PRO NASLEDNE POUZITI
LDI R30, 0 //ULOZENI HODNOTY DO REGISTRU PRO NASLEDNE POUZITI
LDI R31, 0x50 //ULOZENI HODNOTY DO REGISTRU PRO NASLEDNE POUZITI
DAL:
DEC R29 //REALIZOVANI SMYCKY
BRNE DAL
DEC R30
BRNE DAL
DEC R31
BRNE DAL
RET
ZHASNI:
LDI REG, 0b11111111 //ZHASNUTI LED
OUT DDRB, REG
OUT PORTB, REG
RET
ZPET:
IN R17, PORTD // NAČTENÍ PORTU D, ABY BYLO JASNE JESTLI JE ZMACKNUTO TLACITKO
CPI R17, 0b11111011 //TEST JE-LI ZMACKNUTO TLACITKO
BREQ NULA //SKOK PŘI SHODE, TESTUJE SE HODNOA BITU Z SE STAVEM TLACITKA
BRNE JEDNA //SKOK JE-LI VYSLEDEK NESHODNÝ
NULA:
SLEEP //UVEDENI DO REZIMU POWER-DOWN
RETI
JEDNA:
BRNE ZPET //SKOK NA ZACATEK PROGRAMU