#define F_CPU 8000000UL // Внутреннего генератора 8МГц
#include <avr/io.h>     // Стандартная библиотека
#include <util/delay.h> // Библиотека задержек
#define S 1000
#define T 3000 
int main(void)
{
    int m;
	int r;
	DDRD = 0b111111111; // Настраиваем весь порт D на выход
	while (1)
	{
		PORTD = 0b000000111;   // Начало первой программы, включаем светодиоды HL1, HL2, HL3 на 3 секунды
		_delay_ms(T);
		PORTD = 0b000000000;
		_delay_ms(S);
		PORTD = 0b001110000;   // Включаем HL5, HL6, HL7 на 3 секунды
		_delay_ms(T);
		PORTD = 0b000000000;
		_delay_ms(S);          // Конец первой программы
		PORTD = 0b001000001;   // Начало второй программы, включаем светодиоды HL1 и HL7 на 1 секунду
		_delay_ms(S);
		PORTD = 0b000000000;
		_delay_ms(S);
		PORTD = 0b000100010;   // Включаем светодиоды HL2 и HL6 на 1 секунду
		_delay_ms(S);
		PORTD = 0b000000000;
		PORTD = 0b000010100;   // Включаем светодиоды HL3 и HL5 на 1 секунду
		_delay_ms(S);
		PORTD = 0b000000000;   //Конец второй программы
		_delay_ms(S);
		PORTD = 0b000010100;   //Начало третьей программы включаем светодиоды HL3 и HL5 на 1 секунду
		_delay_ms(S);
		PORTD = 0b000000000;
		_delay_ms(S);
		PORTD = 0b000100010;   // Включаем светодиоды HL2 и HL6 на 1 секунду
		_delay_ms(S);
		PORTD = 0b000000000;
		_delay_ms(S);
		PORTD = 0b001000001;   // Включаем светодиоды HL1 и HL7 на 1 секунду
		_delay_ms(S);
		PORTD = 0b000000000;   //Конец третьей программы
		for(r=0;r<=7;r++)     //******************************
		{                     //    Четвертая программа      *
			PORTD = (1<<r);   //                             *
			_delay_ms(S);     //******************************
		}
		for(m=7;m>=0;m--)     //******************************
		{                     //    Пятая программа          *
			PORTD = (1<<m);   //                             *
			_delay_ms(S);     //******************************
		}
	}
}
