
TIMER1_COMPA:
	rcall Digit0 ; вызов подпрограммы индикации 0 сегмента	
	
	ldi r16,0 ; обнуление таймера
	out tcnt1h,r16
	out tcnt1l,r16	

	reti ; выход из обработчика

Digit0:
	
	cpi r18,0 ; если 0 сегмент уже выводился
	brne Digit1 ; переходим на 1 сегмент

	ldi r16,0b00000000 
	out portb,r16 ; обнуляем порт
		
	lds r16,0b00000001 ; загружаем катод 0 разряда
	out portd,r16 ; активируем 0 разряд индикатора
	
	lds r16,Digit ; загружаем 0 ячейку (в этой ячейке хранится то. что нужно вывести на индикатор)
	out portb,r16 ; выводм данные 0 ячейки
				
	inc r18	; увеличиваем счетчик на 1

	ret
	
Digit1:
	cpi r18,1 ; если 1 сегмент уже выводился
	brne Digit2 ; переходим на 2 сегмент

	ldi r16,0b00000000 
	out portb,r16 ; обнуляем порт
	
	lds r16,0b00000010 ; загружаем катод 1 разряда
	out portd,r16 ; активируем 1 разряд индикатора
	
	lds r16,Digit+1 ; загружаем 1 ячейку (в этой ячейке хранится то. что нужно вывести на индикатор)
	out portb,r16 ; выводм данные 0 ячейки
			
	inc r18 ; увеличиваем счетчик на 1
	
	ret

Digit2:
	cpi r18,2 ; если 2 сегмент уже выводился
	brne Digit3 ; переходим на 3 сегмент
	
	ldi r16,0b00000000 
	out portb,r16 ; обнуляем порт
	
	lds r16,0b00000100 ; загружаем катод 2 разряда
	out portd,r16 ; активируем 2 разряд индикатора
	
	lds r16,Digit+2 ; загружаем 2 ячейку (в этой ячейке хранится то. что нужно вывести на индикатор)
	out portb,r16 ; выводм данные 0 ячейки
			
	inc r18 ; увеличиваем счетчик на 1
	
	ret

Digit3:
		
	ldi r16,0b00000000 
	out portb,r16 ; обнуляем порт
	
	lds r16,0b00001000 ; загружаем катод 3 разряда
	out portd,r16 ; активируем 3 разряд индикатора

		
	lds r16,Digit+3 ; загружаем 3 ячейку (в этой ячейке хранится то. что нужно вывести на индикатор)
	out portb,r16 ; выводм данные 0 ячейки
			
	clr r18 ; обнуляем счетчик
	
	ret
