Sisend - väljund port

Iga sisend-väljundport koosneb kolmest registrist:
 
 
Võtame näiteks pordi B, mis koosneb kolmest registrist PORTB, DDRB ja PINB.

PORTB – B pordi väljundregister.
 
Kõik andmed mida tahetakse mikrokontrollerist välja saata, tuleb saata siia registrisse. Number 0x05 on registri PORTB nimi mikrokontrolleris. Selleks, et saata andmeid registrile PORTB, tuleb saata andmed aadressile 0x05. Väljundregistrisse saadetud andmed jõuavad väljundisse loomulikult ainult siis kui antud väljaviik on määratud väljundiks.

DDRB – B pordi suunaregister.
 
Selle registriga määratakse ära milline väljaviik on sisend ja milline väljund. Need väljaviigud mille kohapeal on DDRB registris „0“, on määratud sisenditeks ja need väljaviigud mille kohapeal on DDRB registris „1“, on määratud väljunditeks. Kui DDRB registris on antud väljaviigu kohapeal „1“, siis määrab selle väljaviigu oleku PORTB register. Kui DDRB registris on antud väljaviigu kohapeal „0“, siis määrab väljaviigu oleku sisendseade, mis on ühendatud antud väljaviiguga. DDRB register ise väljaviigu olekut ei määra, ta määrab ainult andmete liikumise suuna. . Selleks, et saata andmeid registrile DDRB, tuleb saata andmed aadressile 0x04.

PinB – B pordi sisendregister.
 
PinB register „kuulab“ pidevalt millises olekus („0“ või „1“) on mikrokontrolleri väljaviigud ja jälgides PinB registri sisu saab teada millises olekus väljaviik on. Kui väljaviik on määratud väljundiks ja väljaviigu oleku määrab PORTB register, siis pole PinB registri oleku jälgimisel mõtet, sest PORTB määrab väljaviikude oleku ja PinB järgib seda. Kui väljaviik on määratud sisendiks ja väljaviigu oleku määrab sisendis olev seade, siis saab PinB registrilt teada, millises olekus väljaviik parajasti on.

Selleks, et porte konfigureerida on vaja teada, et registri vanem järk on PB7 ja noorem järk PB0. Seega tuleb porti B vaadata: PB7, PB6, PB5, PB4, PB3, PB2, PB1, PB0.