Es ist eigentlich nicht schwer. Wenn die Ports als Eingang definiert sind, dann kann man über Pin den Zustand abfragen.
Weisst man dem Eingangsport eine 1 zu, dann wird ein Pullup-Widerstand aktiviert der den Eingangsport auf High legt.

Ist ein Port als Ausgang definiert, dann kann man nur 0 oder 1 dem Port zuweisen. Pin´s gibts dann nicht.