Ich würde es ebenfalls so machen, dass ich den gesamten Port immer mit den jeweiligen Werten aktualisiere.
Ich verstehe auch nicht den Gedanken, einen Dezimalwert am DO-Port anzulegen, da dies die Sache nur verkompliziert. Wenn ich mich recht erinnere, dann wird die Zahl entsprechend als binärer Wert auf dem Port ausgegeben, sprich eine 3 wird zu 0011, was bedeutet, das Port 0 und 1 ein High ausgeben. Eine weitere Problematik in deinem Entwurf könte es sein, wenn du mehrere Ausgänge gleichzeitig schalten möchtest, da es je nach HW Probleme geben kann, wenn versucht wird parallel zuzugreifen.
Bitte korrigiert mich, wenn ich falsch liege!
//Tobias