byte t=0, s=0, e=0, d=0, a=0; //объявляем переменные единиц, десятков, сотен, тысяч переменную мерцания byte cif[10]={3,159,37,13,153,73,65,31,1,9}; // массив цифр void setup(){ DDRD=255; // пины порта D и B обозначаем выходными DDRB=63;} void loop() { for (t=0; t<10;){// цикл тысяч for (s=0; s<10;){// цикл сотен for (d=0; d<10;){// цикл десятков for (e=0; e<10;){// цикл единиц for (a=0; a<18;){// цикл мерцания PORTB=1; // активируем разряд тысяч PORTD=cif[t]; // пишем нужную цифру тысяч в порт D delay(6); // пауза, чтобы сегменты "разгорелись" PORTB=2;// активируем разряд сотен PORTD=cif[s]; // пишем нужную цифру сотен в порт D delay(6);// пауза, чтобы сегменты "разгорелись" PORTB=4;// пишем нужную цифру десятков в порт D PORTD=cif[d]; // пишем нужную цифру десятка в порт D delay(6);// пауза, чтобы сегменты "разгорелись" PORTB=8;// пишем нужную цифру единиц в порт D PORTD=cif[e]; // пишем нужную цифру единиц в порт D delay(6);// пауза, чтобы сегменты "разгорелись" a=a+1;}// увеличиваем переменную цикла мерцания e=e+1;}// прибавляем единицу d=d+1;}// прибавляем десяток s=s+1;}// прибавляем сотню t=t+1;}// прибавляем тысячу t=0,s=0,e=0,d=0,a=0;}// обнуляем переменные