	.include "m8535def.inc"	
.def	TMP	= R16		; Регистр - временное хранилище
.def	VERT	= R17	; Регистр данных, которые будем пихать в порт
.def	COUNT1	= R18	; Счётчик 1
.def	COUNT2	= R19	; Счётчик 2
.def	COUNT3	= R20	; Счётчик 3
.def	COUNT4	= R21	; Счётчик 4

	.org	0	; 
	rjmp	START
	.org	0x50
START:			
;**********Инициализируем стек***************	
	ldi	TMP,low(RAMEND)	; ramend определено в .
	out	SPL,TMP		    ;
	ldi	TMP,high(RAMEND)
	out	SPH,TMP
;********************************************

;*********Установка портов*******************
	ser	TMP		; =FF
	out	DDRA,TMP	; PORTA-все выходные
	out	PORTA,TMP	; PORTA по умолчанию на ввод, запись "1"
				; нужна длЯ подтЯгивающих резисторов


LOOP:; Бесконечный цикл
	ldi	VERT, 1 	; Загружаем число на вывод
	out	PORTA,VERT	; Записываем число в порт	
	ldi	COUNT3,50	; На формирование задержки
	rcall WAIT		; Вызываем функцию задержки

	ldi	VERT, 2		; Теперь будет гореть второй светодиод
	out	PORTA,VERT		
	ldi	COUNT3,50	
	rcall WAIT

	ldi	VERT, 4		; Третий светодиод
	out	PORTA,VERT		
	ldi	COUNT3,50	
	rcall WAIT

	ldi	VERT, 8		; Соответсенно четвёртый
	out	PORTA,VERT		
	ldi	COUNT3,50	
	rcall WAIT
	rjmp	LOOP		

	ldi	VERT, 16	; Пятый светодиод
	out	PORTA,VERT		
	ldi	COUNT3,50	
	rcall WAIT
	rjmp	LOOP		
WAIT:
	dec	COUNT1			; Уменьшаем регистр счётчик
	brne	WAIT		; это даст 256*3 такта = 96 мкс паузу. маловато!
	dec	COUNT2
	brne	WAIT		; грубо это умножит на 256, 25 мс - тоже мало...
						; еще на 50 умножить.
	dec	COUNT3
	brne	WAIT
	dec	COUNT4
	brne	WAIT
	ret
	.exit	
