И да, мы подошли в плотную к усложнению нашей схемы кнопкой. Больших затруднений это не вызвало. Группой товарищей была принята идея заменить четыре сегмента на один из индикации 4 цифр, при правельной сборке такой схемы исправленная программа должна работать и здесь. Но вот введение кнопки требует небольшого пересмотра алгоритма управления секундомером. Так как с этим возникли определенные сложности я размещаю схему алгоритма управления секундомером ниже.
Ранее написанная программа разделена на два блока - пошаговый отсчет секунд и индикация текущего отсчета и показана на схеме ввиде вставок кода. Теперь дело за вами. Напишите программный код управления секундомером или создайте свой альтернативный алгоритм с записью его в виде схемы и программного кода.
И да, приведенная схема алгоритма показывает реализацию управления кнопкой, а схема по которой была написана действующая программа показано ниже. Соответственно приведена не вся а только фрагмент управления кнопкой.
    // Z:\home\kovi\DRACON\др длкр-20201219T045303Z-001\др длкр\tablo1a.drt
    // 1. Схема - процедура, Изменение 06.02.2021 16:26:24, Начало
int kn, sch1, sch2, sch3, sch4, sch5, sch6, sch0;
void setup()
{
DDRB = 0xff;
DDRD = 0xff;
sch1 = 0; 
sch2 = 0; 
sch3 = 0; 
sch4 = 0; 
sch5 = 0;  
}
void loop()
{
    // ==================== Шампур
    // 4. Заголовок / TABLO
    // 5. Ветка / СЧЕТЧИК
    // 6. Вставка / секундомер
goto L1_25; 
    // 7. Адрес -> 8. Ветка / кнопка
    // ==================== Шампур
    // 8. Ветка / кнопка
    // 9. Цикл Вставка / индикация
L10: ;
    // 10. Вопрос / kn == 0 == Да
if (kn == 0) goto L15; 
    // 11. Вопрос / kn == 2 == Да
if (kn == 2) goto L15; 
    // 12. Вопрос / кнопка нажата? == Да
if ((PIND & (1 << PORTD1))) goto L14; 
    // 13. Конец / Конец
goto L_end1; 
    // ==================== Шампур
L14: ;
    // 14. Цикл Вопрос / кнопка нажата? == Да
if ((PIND & (1 << PORTD1))) goto L14; 
L15: ;
    // 15. Действие / sch6 = 0
sch6 = 0;
    // 16. Вопрос / kn == 1 == Да
if (kn == 1) goto L21; 
    // 17. Вопрос / кнопка нажата? == Нет
if (!((PIND & (1 << PORTD1)))) goto L2_42; 
    // 18. Вопрос / kn == 2 == Да
if (kn == 2) goto L22; 
L19: ;
    // 19. Действие / кн++
kn++;
L20: ;
    // 20. Цикл Вопрос / кнопка нажата? == Да
if ((PIND & (1 << PORTD1))) goto L20; 
goto L_end1; 
    // ==================== Шампур
L21: ;
    // 21. Действие / kn = 2
kn = 2;
goto L2_42; 
    // ==================== Шампур
L22: ;
    // 22. Действие / kn = 0
kn = 0;
    // 23. Действие / sch1 = 0; sch2 = 0; sch3 = 0; sch4 = 0; sch5 = 0;
sch1 = 0; 
sch2 = 0; 
sch3 = 0; 
sch4 = 0; 
sch5 = 0;
goto L19; 
    // Z:\home\kovi\DRACON\др длкр-20201219T045303Z-001\др длкр\tablo1a.drt
    // 2. Схема - вставка, Изменение 06.02.2021 15:50:44, Начало
    // ==================== Шампур
    // 24. Заголовок / секундомер
L1_25: ;
    // 25. Действие / //sch1++
sch1++;
    // 26. Вопрос / если счетчик sch1 == 100 == Да
if (sch1 == 100) goto L1_39; 
L1_27: ;
    // 27. Вопрос / sch2 == 10 == Да
if (sch2 == 10) goto L1_32; 
L1_28: ;
    // 28. Вопрос / sch3 == 6 == Да
if (sch3 == 6) goto L1_34; 
L1_29: ;
    // 29. Вопрос / sch4 == 10 == Да
if (sch4 == 10) goto L1_36; 
L1_30: ;
    // 30. Вопрос / sch5 == 6 == Да
if (sch5 == 6) goto L1_38; 
    // 31. Конец / Конец
goto L2_42; 
    // ==================== Шампур
L1_32: ;
    // 32. Действие / sch2 = 0
sch2 = 0;
    // 33. Действие / sch3++
sch3++;
goto L1_28; 
    // ==================== Шампур
L1_34: ;
    // 34. Действие / sch3= 0
sch3= 0;
    // 35. Действие / sch4++
sch4++;
goto L1_29; 
    // ==================== Шампур
L1_36: ;
    // 36. Действие / sch4= 0
sch4= 0;
    // 37. Действие / sch5++
sch5++;
goto L1_30; 
    // ==================== Шампур
L1_38: ;
    // 38. Действие / sch5= 0
sch5= 0;
goto L2_42; 
    // ==================== Шампур
L1_39: ;
    // 39. Действие / обнулить счетчик sch1
sch1 = 0;
    // 40. Действие / sch2++
sch2++;
goto L1_27; 
    // Z:\home\kovi\DRACON\др длкр-20201219T045303Z-001\др длкр\tablo1a.drt
    // 3. Схема - вставка, Изменение 06.02.2021 16:25:26, Начало
    // ==================== Шампур
    // 41. Заголовок / индикация
L2_42: ;
    // 42. Цикл Выбор / выбор табло
if (sch6 == 0) goto L2_44; // 43. sch6 = 0
if (sch6 == 1) goto L2_54; // 53. sch6 = 1
if (sch6 == 2) goto L2_58; // 57. sch6 = 2
goto L2_62; // 61. 3
    // 43. Вариант / sch6 = 0
L2_44: ;
    // 44. Действие / включить табло 1 sch0 = sch2
PORTD = 0b00001000;
sch0 = sch2;
L2_45: ;
    // 45. Выбор / выбрать цифру
if (sch0 == 0) goto L2_47; // 46. sch0 = 0
if (sch0 == 1) goto L2_56; // 55. sch0 = 1
if (sch0 == 2) goto L2_60; // 59. sch0 = 2
if (sch0 == 3) goto L2_64; // 63. sch0 = 3
if (sch0 == 4) goto L2_66; // 65. sch0 = 4
if (sch0 == 5) goto L2_68; // 67. sch0 = 5
if (sch0 == 6) goto L2_70; // 69. sch0 = 6
if (sch0 == 7) goto L2_72; // 71. sch0 = 7
if (sch0 == 8) goto L2_74; // 73. sch0 = 8
goto L2_76; // 75. 9
    // 46. Вариант / sch0 = 0
L2_47: ;
    // 47. Действие / индикация цифры 0
PORTD &= ~(1 << 7);
PORTB = 0b00000100;
L2_48: ;
    // 48. Действие / sch6++
sch6++;
    // 49. Действие / выключить табло 0,1,2.3
delay(2);
    // 50. Вопрос / sch6 == 5 == Нет
if (!(sch6 == 4)) goto L2_42; 
    // 51. Действие / sch6 = 0
sch6 = 0;
    // 52. Конец / Конец
goto L10; 
    // ==================== Шампур
    // 53. Вариант / sch6 = 1
L2_54: ;
    // 54. Действие / включить табло 2 sch0 = sch3
PORTD = 0b00010000;
sch0 = sch3;
goto L2_45; 
    // ==================== Шампур
    // 55. Вариант / sch0 = 1
L2_56: ;
    // 56. Действие / индикация цифры 1
PORTD &= ~(1 << 7);
PORTB = 0b11011111;
goto L2_48; 
    // ==================== Шампур
    // 57. Вариант / sch6 = 2
L2_58: ;
    // 58. Действие / включить табло 3 sch0 = sch4
PORTD = 0b00100000;
sch0 = sch4;
goto L2_45; 
    // ==================== Шампур
    // 59. Вариант / sch0 = 2
L2_60: ;
    // 60. Действие / индикация цифры 2
PORTD |= 1 << 7;
PORTB = 0b00001000;
goto L2_48; 
    // ==================== Шампур
    // 61. Вариант / 3
L2_62: ;
    // 62. Действие / включить табло 4 sch0 = sch5
PORTD = 0b01000000;
sch0 = sch5;
goto L2_45; 
    // ==================== Шампур
    // 63. Вариант / sch0 = 3
L2_64: ;
    // 64. Действие / индикация цифры 3
PORTD &= ~(1 << 7);
PORTB = 0b11001010;
goto L2_48; 
    // ==================== Шампур
    // 65. Вариант / sch0 = 4
L2_66: ;
    // 66. Действие / индикация цифры 4
PORTD &= ~(1 << 7);
PORTB = 0b00010011;
goto L2_48; 
    // ==================== Шампур
    // 67. Вариант / sch0 = 5
L2_68: ;
    // 68. Действие / индикация цифры 5
PORTD &= ~(1 << 7);
PORTB = 0b00100010;
goto L2_48; 
    // ==================== Шампур
    // 69. Вариант / sch0 = 6
L2_70: ;
    // 70. Действие / индикация цифры 6
PORTD &= ~(1 << 7);
PORTB = 0b00100000;
goto L2_48; 
    // ==================== Шампур
    // 71. Вариант / sch0 = 7
L2_72: ;
    // 72. Действие / индикация цифры 7
PORTD &= ~(1 << 7);
PORTB = 0b00001111;
goto L2_48; 
    // ==================== Шампур
    // 73. Вариант / sch0 = 8
L2_74: ;
    // 74. Действие / индикация цифры 8
PORTD &= ~(1 << 7);
PORTB = 0b00000000;
goto L2_48; 
    // ==================== Шампур
    // 75. Вариант / 9
L2_76: ;
    // 76. Действие / индикация цифры 9
PORTD &= ~(1 << 7);
PORTB = 0b00000010;
goto L2_48; 
    // 1. Схема, Конец
L_end1: ;
//
}

