DDRB: serve per indicare se il pin è input o output ??
PORTB: ??
PINB: ??
DDRB specifica la direzione del pin.
PORTB è il registro per scrivere sulla porta.
PINB è il registro per leggere la porta.
Ci sono due registri diversi per leggere e scrivere per ovviare ad un problema che affligge tutti i micro/mcu dotati di un solo registro per accedere ai pin, si tratta del "Read Modify Write Problem" che in certe circostanze può portare a errori di i/o su i pin se non se ne tiene debito conto nel proprio software.
Puoi trovare una spiegazione, con esempio, del "RMW"
http://www.mikroe.com/download/eng/documents/compilers/mikroc/pro/pic/help/rmw.htm]qui, è riferito ai pic, ma valido per tutti i micro dotati di singolo registro per accedere in lettura/scrittura della porta.