.include "E:\AVR\ASM\APPNOTES\TN2313~1.INC"
.cseg
.org  0x0000 
rjmp  RESET  ;Прерывание на внешнем выводе ,“RESET”, Сброс по включению питания, Сброс от BOD- схемы, Сброс от WDT. 
; .org  0x0001  rjmp  INT0  ;Запрос от Внешнего Прерывания на выводе INT0 
; .org  0x0002  rjmp  INT1  ;Запрос от Внешнего Прерывания на выводе INT1 
; .org  0x0003  rjmp  TIMER1_CAPT  ;Таймер/Счетчик1 в режиме Захвата 
; .org  0x0004  rjmp  TIMER1_COMPA  ;Таймер/Счетчик1 в Режиме Сравнения на равенство TCNT1 и OCR1A 
; .org  0x0005  rjmp  TIMER1_OVF  ;Переполнение Таймера/Счетчика1 
; .org  0x0007  rjmp  USART0_RX  ;Чтение через USART0 завершено 
; .org  0x0008  rjmp  USART0_UDRE  ;Регистр Данных UART0 пуст 
; .org  0x0009  rjmp  UART0_TX  ;Передача через USART0 завершена 
; .org  0x000A  rjmp  ANALOG_COMP  ;Прерывание от Аналогового Компаратора 
; .org  0x000B  rjmp  PCINT  ;Прерывание на выводах  PCINT 
; .org  0x000C  rjmp  TIMER1_COMPB  ;Таймер/Счетчик1 в Режиме Сравнения на равенство TCNT1 и OCR1B 
.org  0x000D  rjmp  TIMER0_COMPA  ;Таймер/Счетчик0 в Режиме Сравнения на равенство TCNT0 и OCR0A 
; .org  0x000E  rjmp  TIMER0_COMPB  ;Таймер/Счетчик0 в Режиме Сравнения на соответствие B 
; .org  0x000F  rjmp  USI_START  ;Условие Старта(Начала) интерфейса USI 
; .org  0x0010  rjmp  USI_OVERFLOW  ;Переполнение USI 
; .org  0x0011  rjmp  EE_READY  ;Память EEPROM готова к записи(т.е. выполнены условия для начала записи) 
; .org  0x0012  rjmp  WDT_OVERFLOW  ;Переполнение Таймера в WDT 

;начинаем программу
;Настраиваем на выход порты

Reset:
ldi r16,RamEnd
out SPL, r16

ldi r16, 0b11111111
out ddrb, r16

ldi r16, (1<<cs02)|(1<<cs00) ;prescaller 1024
out tccr0b, r16

ldi r16, (1<<ocie0a) ;включаю таймер с компаратором
out timsk, r16

ldi r16, 244
out ocr0a, r16

ldi r16, 0
out tcnt0, r16

sei

ldi r16, (1<<SE) ;спящий режим включаю
OUT MCUCR, R16
ldi r16, 0b10000000

next:
out portb, r16
SLEEP
RJMP NEXT

TIMER0_COMPA:
ROR R16
RETI