Для обработки нажатий 6-и тактовых кнопок, и снижению управляющих проводов, мною был использован сдвиговый регистр.
Сигнал, на входы регистра приходят от "самодельных" RS тригерров собранных на базе микросхемы К155ЛА3.
4 логических элемента 2 И-НЕ. Из 2-х элементов получается 1 RS, триггер.
RS тригерр, в данном исполнении без сигнала синхронизации. Потому, подобные триггеры существуют только на вводных страницах
книг, где только начинается повествование о триггерах. В текущем виде они не подходят для работы в высокоскоростной технике.
Но для обработки нажатий, а так же как устранитель дребезга, они более чем прекрасно подходят.
Инициализация кнопочного блока.
//---Кнопочный блок-------------------------------------------*
const byte RESET_ALL_BUTTONS = 22;
const boolean IRQ = 24;
//----- Контакты 8 битного регистра (КР1533ИР9) кнопочного блока
const int REGISTR_CONTROL = 30; // (L) Высокий уровень - чтение, низкий - запись в регистр. (SEMO)
const int SYNC = 26; // (С) Пин синхронизации (SYN)
const int DO = 28; // (D0) Последовательное чтение из регистра (D_Output)
boolean button_data[]{false,false,false,false,false,false,false,false}; // значение из регистра
//--------------------------------
Стандартную функцию Ардуино ( для чтения сдвигового регистра shiftOut() ), в полной мере правильно мне запустить не удалось. Неправильно считывался 1-й бит. Я менял аргументы, но всё безрезультатно.
возможно у меня присутствует ошибка подключения регистра. Чтобы в этом окончательно убедиться, нужно было бы подключить все 8 входов... Тем не менее, в текущем виде
и при самописной функции чтения, всё работает более чем прекрасно.
Изначально, я планировал, каждое изменение входа регистра завести на прерывание.
Но это оказалось не актуально.
В подключенном состоянии, на входах триггера висит слабая "висячая" единица, которая стягивается на "ноль" резистором 10 и даже 11K Oм.
DO выход триггера
DO` (9-й контакт) инвертный выход триггера
DI 1-8 входы триггера
SYN контакт синхроимпульса для чтения триггера.
КР1533ИР9
Начало...
Хорошая видео-лекция о работе сдвигового регистра.