Über Port und Pin spricht man 2 verschiedene Register an. Beide Register kann man lesen oder schreiben.

Bei PIN ließt man den Spannungswert am IO PIN, unabhängig davon ob er als Eingang oder Ausgang definiert ist. Die wesenliche Anwendung sind hier aber die Eingänge.
Wenn man ins PIN Register schreibt, hängt es vom µC model ab. Bei älteren tut sich nichts, bei neueren wird durch das schreiben einer 1 ins register PIN das entsprechende BIT im Register PORT umgedreht. Das ist eine spezialfunktion die man als Anfänger eher selten braucht.
Der Eingang ist Spannungsgesteuert. Es hat also nichts mit einem fließenden Strom zu tun.



Das Port Register ist etwas einfacher. Beim lesen bekommt man immer die Werte des Registers raus, unabhängig von der Spannung die von außen anliegt. Wenn der IO-Anschluß als Ausgang definiert ist, wird über das PORT BIT die Spannung am Ausgang festgelegt. Eine 1 steht für für Hohe Spannung, also fast VCC. Ein 0 Steht für niedriege Spannung, also fast GND.
Wenn der IO Anschluß als Eingang definiert ist, dann steuert das Bit im Register PORT den Pullup Widerstand. Eine 1 stellt den Pullup Widerstand an, eine 0 aus.

Das Registser Port nutzt man also in der Regel für Ausgänge. Bei Eingängen nur um den Pullup zu konfigurieren.