Gestion d'un signal carré

Bonjour,
je travail actuellement sur la compréhension de votre code et j'avoue, comme énoncé précédemment, qu'il m'est un vraie leçon...
j'en suis à l'appentissage du "bitwise", pour essayer de comprendre le fonctionnement de ce type de lignes:

DDRB = DDRB &0b11110000;
PORTB= PORTB|0b00001111;
DDRC = DDRC |0b11110000;
PORTC= PORTC&0b00001111;

mais c'est pas évident avec les divers tutos que j'ai pu trouver.
Je veux absolument le comprendre parfaitement avant de l'utiliser, ce qui est le moindre des respect à vous accorder, vu le travail effectué.

Encore merci pour pour toutes les infos données.