У вас допускается в случае аварии взводить не сразу все биты, а по одному? Тем более если всё будет идти без проблем, то займёт это несколько десятков миллисекунд, не заметишь невооружённым глазом! Тогда циклически можно взводить по одному биту и объём программы при 16 битах может сократится до 16 раз, каждый цикл(несколько циклов) меняется только номер взводимого бита!
И насчёт битов не парьтесь, сделайте для дискретного выхода или булевой переменной, это в принципе тоже самое, название только разное!
Здесь в посте 403 есть авария включенных насосов: https://www.owen.ru/forum/showthread...=12691&page=41
Авария включённых насосов.png
Мне кажется на её основе, с небольшими дополнениями, можно сделать аварию для вашего применения!