Так, и с чём есть вопросы?
Кстати, а зачем MCP23016? В ней же так дофига регистров которые нужно управлять. Не проще ли сделать обычные сдвиговые регистры и на них же программно сделать динамическую индикацию, всё жрать будет меньше.
Новый вариант схемы
C331A похоже на ISL88003IE31Z-T