int t=0, s=0, d=0, e=0, a=0; //объявляем переменные разрядов и мерцания int cif[11]={3,159,37,13,153,73,65,31,1,9,255}; // массив цифр + пустой разряд int e1=48, d1=48, s1=48, t1=48; //переменные единиц, десятков, сотен, тысяч void setup() { Serial.begin(19200); //запускаем СОМ порт DDRA=255; // пины порта A выходные DDRC=255;}// пины порта C выходные void loop() { if (Serial.available()>0){// проверяем, пришло ли что-то в СОМ порт delay(4); //пауза для успевания чтения СОМ порта t1 = Serial.read(); // читаем разряд тысяч s1 = Serial.read();// читаем разряд сотен d1 = Serial.read();// читаем разряд десятков e1 = Serial.read();// читаем разряд единиц Serial.print(t1-48); // выводим переменную разряда тысяч Serial.print(s1-48);// выводим переменную разряда сотен Serial.print(d1-48);// выводим переменную разряда десятков Serial.println(e1-48);// возвращаем переменную разряда единиц delay(4);//пауза для "дочитывания хвоста" while (Serial.available())//стираем все Serial.read();}//то, что больше 4-х разрядов for (a=0; a<20;){// цикл мерцания t=t1-48; if ((t<0) | (t>9))// проверяем нахождение переменной в диапазоне {t=10;}// если переменная вне диапазона - гасим разряд тысяч PORTC=1;// активируем разряд тысяч PORTA=cif[t]; // пишем нужную цифру тысяч в порт A delay(5); s=s1-48; if ((s<0) | (s>9))// проверяем нахождение переменной в диапазоне {s=10;}// если переменная вне диапазона - гасим разряд сотен PORTC=2;// активируем разряд сотен PORTA=cif[s]; // пишем нужную цифру сотен в порт A delay(5); d=d1-48; if ((d<0) | (d>9))// проверяем нахождение переменной в диапазоне {d=10;}// если переменная вне диапазона - гасим разряд десятков PORTC=4;// активируем разряд десятков PORTA=cif[d]; // пишем нужную цифру десятка в порт A delay(5); e=e1-48; if ((e<0) | (e>9))// проверяем нахождение переменной в диапазоне {e=10;}// если переменная вне диапазона - гасим разряд единиц PORTC=8;// активируем разряд единиц PORTA=cif[e]; // пишем нужную цифру единиц в порт A delay(5); a=a+1;}}