Wemm du einen Taster drückst, wird ja eine LED dauernd umgeschaltet. Nach dem Loslassen des Tasters hat die LED dann einen quasi zufälligen Zustand.

Du musst deine Taster also entprellen.

Hier eine Version ohne entprellte Taster, die einfach nur die Tastenzustände an den LEDs reflektiert (also nicht umschaltet).

Wenn das nicht funktioniert, hast du was falsch verdrahtet.

Code:
#include <avr/io.h> 

#define T1 (1 << 2)
#define T2 (1 << 3)
#define LED1 (1 << 5)
#define LED2 (1 << 6)

int main() 
{
    // LEDn als OUT
    DDRD  |= LED1;
    DDRD  |= LED2;
    
    // PullUps an Tn
    PORTD |= T1;
    PORTD |= T2;

    while(1) 
    { 
        if (PIND & T1) 
        {
            PORTD &= ~LED1;
        }
        else  
        { 
            PORTD |= LED1; 
        } 
        
        if (PIND & T2)
        {
            PORTD &= ~LED2; 
        } 
        else  
        { 
            PORTD |= LED2; 
        }
    } // while (1)
} // main