Concept Flow - Direction register vs data register
Start
Set Direction Register
Direction Register configures pins
Write to Data Register
Data Register sets pin output
Pins behave as input or output
Read from Data Register if input
End
First, the direction register sets each pin as input or output. Then, the data register controls the pin's output value or reads input.