#include <avr/io.h>//подключаем библиотеку ATtiny2313
#include <Util/delay.h>//подключаем библиотеку функции задержки
int a,b=0;// инициализируем целочисленные переменные a,b и присваиваем им значение 0
int main (void)// главная функция программы 
{ DDRB=0XFF;//порт В как выход (диоды)
  DDRD=0X00;//порт D как вход (кнопки)
  PORTB=0X00;// обнуляем порт B
  PORTD=0XFF;// осуществляем подтяжку внутреннего резистора 
  
   while (1)// задаем бесконечный цикл
  {
      while (~PIND&(1<<PD0))// пока кнопка D0 нажата
      {a++;// инкрементируем значение переменной а
	   _delay_ms (300);// ждем 300 мс
       PORTB=a;// записываем в регистр PORTB значение переменной a-первого операнда
	   _delay_ms (300);
      }
      while (~PIND&(1<<PD1))// аналогично
      {b++;
	   _delay_ms (300);
	   PORTB=b;
	   _delay_ms (300);
      }
      if (~PIND&(1<<PD2))// если нажата кнопка D2
      {PORTB=a+b;// вывести на светодиодную панель результат суммы операндов
      }
      if (~PIND&(1<<PD3))//если нажата кнопка D3
      {PORTB=a-b;//вывести на светодиодную панель результат разности операндов
      }
      if (~PIND&(1<<PD4))//если нажата кнопка D4
      {PORTB=a*b;//вывести на светодиодную панель результат умножения операндов
      }
      if (~PIND&(1<<PD5))//если нажата кнопка D5
      {PORTB=a/b;//вывести на светодиодную панель результат деления операндов
      }
      if (~PIND&(1<<PD6))//если нажата кнопка D6
      {a=0;//обнуляем операнд a
       b=0;//обнуляем операнд b
	   PORTB=0x00;//обнуляем регистр PORTB
	  }
 }
}