#define F_CPU 8000000UL // Внутреннего генератора 8МГц
#include <avr/io.h>     // Стандартная библиотека
#include <util/delay.h> // Библиотека задержек
#define S 1000
int puls [10] = {(0b00111111), (0b00000110), (0b01011011), 
	             (0b01001111),(0b01100110), (0b01101101), 
				 (0b01111101),(0b00000111),(0b01111111), 
				 (0b01101111),};
int r=0;
///////////////////////////////////////////////////////////
// int puls [10] = {
// (0b11000000),    0
// (0b11111001),    1
// (0b10100100),    2
// (0b10110000),    3
// (0b10011001),    4   Если у индикатора общий Анод (+)
// (0b10010010),    5   Или можно применить инверсию ~
// (0b10000010),    6   к коду с общим катодом
// (0b11111000),    7
// (0b10000000),    8
// (0b10010000),    9
//};
//////////////////////////////////////////////////////////////
int main(void)
{ 
	DDRB = 0b11111111;  // Настраиваем порт B на выход
	while (1)
	{
		for(r=0;r<=9;r++)      //******************************
		{                       //    От 0 до 9                *
			PORTB = puls [r];   //                             *
			_delay_ms(S);       //******************************
		}
		for(r=9;r>=0;r--)      //******************************
		{                       //    От 9 до 0                *
			PORTB = puls [r];   //                             *
			_delay_ms(S);       //******************************
		}
	}
}