.include "C:\AVR\AvrAssembler2\Appnotes\m16adef.inc"
.def Data=R16							
.def TEMP=R17
.cseg
.org $000
 RJMP   Reset
         .ORG $002
         RETI             ; (INT0) External Interrupt Request 0
         .ORG $004
         RETI             ; (INT1) External Interrupt Request 1
         .ORG $006
         RETI		    ; (TIMER2 COMP) Timer/Counter2 Compare Match
         .ORG $008
         RETI             ; (TIMER2 OVF) Timer/Counter2 Overflow
         .ORG $00A
         RETI		    ; (TIMER1 CAPT) Timer/Counter1 Capture Event
         .ORG $00C
         RETI             ; (TIMER1 COMPA) Timer/Counter1 Compare Match A
         .ORG $00E
         RETI             ; (TIMER1 COMPB) Timer/Counter1 Compare Match B
         .ORG $010
         RETI             ; (TIMER1 OVF) Timer/Counter1 Overflow
         .ORG $012
         RETI             ; (TIMER0 OVF) Timer/Counter0 Overflow
         .ORG $014
         RETI             ; (SPI,STC) Serial Transfer Complete
         .ORG $016
         RETI     ; (USART,RXC) USART, Rx Complete
         .ORG $018
         RETI             ; (USART,UDRE) USART Data Register Empty
         .ORG $01A
         RETI             ; (USART,TXC) USART, Tx Complete
         .ORG $01C
         RETI		    ; (ADC) ADC Conversion Complete
         .ORG $01E
         RETI             ; (EE_RDY) EEPROM Ready
         .ORG $020
         RETI             ; (ANA_COMP) Analog Comparator
         .ORG $022
         RETI             ; (TWI) 2-wire Serial Interface
         .ORG $024
         RETI             ; (INT2) External Interrupt Request 2
         .ORG $026
         RJMP TIMER_tick  ; (TIMER0 COMP) Timer/Counter0 Compare Match
         .ORG $028
         RETI             ; (SPM_RDY) Store Program Memory Ready
 
	 .ORG   INT_VECTORS_SIZE      	; Конец таблицы прерываний

RESET:		ldi Data,0b11111111   ;настройка портов
        	out DDRA,Data

			ldi Data,0b00000010   ;разрешить прерывание по совпадению компаратора
  	        out TIMSK,Data

  	        ldi Data,0b00000101   ;тактовый сигнал = CK/1024
			out TCCR0,Data
			ldi Data,0b11110100         ;число, по которому будет срабатывать компаратор
         	out OCR0,Data


          ldi Data,0b00000001  ;зажигаем первый LED
		  out PortA,Data

          ldi Temp,0            ;обнуляем таймер
          out TCNT0,Temp

          sei                   ;разрешаем прерывания
		reti
TIMER_tick:
		ldi temp,0            ;обнуляем таймер
        out TCNT0,temp

Shift:   cpi Data,0b10000000  ;сравниваем с крайним значением
         breq Init             ;переход на 1 LED, если горит 8-й

         lsl Data             ;если нет - сдвигаем влево единицу порта A
         rjmp Output           ;??????? ?? ????? ? ????

Init:    ldi Data,0b00000001  ;зажигание 1-го LED
Output:  out PortA,Data       ;Вывод на индикацию

         reti                  ;возврат из обработчика

	
		;****************************************************
		; основная часть
		;****************************************************
Inf:     rjmp Inf              ;бесконечный цикл


         	
