А мне немного непонятно, зачем?..
Скажем, для микросхем или устройств, работающих с каким нибудь протоколом типа SPI, RS-232, CAN и т.п. да, удобно иметь блоки поддержки работы с ними без необходиомсти изучения этих протоколов. Кстати, довольно сложных (например, для меня).
Но для управления простой логикой, какой является 74HC165, достаточно выдачи простой комбинации сигналов на её управляющих входах, о которой можно узнать из даташита.
Судите сами.
Для параллельной загрузки данных в регистр достаточно просто выставить ноль на входе управления загрузкой - состояние уровней всех сигналов на входах сразу запишутся в регистр. Всё.
То есть, для параллельной записи Ардуинка должна выдать на микросхему ноль по одной линии и замолкнуть, так как протокол передачи завершён. Очень сложно, не правда ли?..
А для последовательной загрузки-выгрузки нужно подать на тот же вход управления загрузкой единицу и на вход тактирования подавать импульсы - все уровни, записанные ранее в регистр (или подаваемые на вход последовательной загрузки) будут продвигаться по регисру и последовательно появляться на выходе последовательной выгрузки.
То есть, Ардуинка должна на предыдущем выходе регистра выставить единицу и на другой вход (тактирование) выдать несколько импульсов для продвижения данных по регистру и получения этой последовательности на последовательном выходе. Или для записи в регистр данных на ходе последовательной загрузки.
А ведь логических микросхем, выполняющих функции регистра, очень много. Для каждой будем просить автора FLP пристроить блок управления?..
Так дойдёт до просьбы встроить поддержку микросхемы 74HC00...
