В ином случае будут сдвиги в произвольные моменты времени. Мы же не знаем, чего еще помимо обслуживания дисплея прожка делать будет, а те задачки могут бысть весьма громоздкими.
Независимый процесс на прерывании заметно стабильнее работает.
Относительно вывода - при "байтовой" структуре порта там вообще проблем не имеется. Только вот таких МК на сегодня не так уж много да и раскладка выводов у адуриньи УЖЕ сделана без учета линейной "байтовости".
А в моем примере вообще "чехардень" из выводов, относящихся к разным портам МК (так уж ранее разводка выполнялась - влом менять для "поиграться").
Цикл на счетчике в таком случае заметно хуже, чем перебор восьми комбинаций пересылки бита по фиксированным значениям.
Касательно переброса через массивы - смотрится неплохо, только нерационально - минимум два массива, да сопровождение.
В принципе под ассемблером там всего-то биты перегоняются, а вот под Си или аж 12 байт с содержимым 1/0 или еще чего (структура с битовыми полями)...
Как бы общий размер используемых ресурсов заметно больше не оказался.
Добавить последующие "рожки" кои повылазят при выводе фрагмента в отдельный файл/библиотеку...
То уже можно вылизывать лишь в готовом тексте, который работает.


