Alles klar, Problem gelöst. Du hast mich auf den richtigen Ansatz gebracht mit dem warten,
habe probehalber mal ein delay nach der Inkrementierung eingefügt und nun funktioniert es.

Hier ist nochmal der korrigierte Code
Code:
PORTD &= 0x00;				// output minutes ones and tens
PORTD = (s2 << 4) | (s1 & 0xF);		// output minutes ones and tens
PORTA &= 0x00; 				// output hours ones and tens
PORTA = (m2 << 4) | (m1 & 0xF);		// output hours ones and tens
Code:
while(1)
{
	if(!(PINB & (1 << PB0)))	// read input
	{
		m1 ++;
		_delay_ms(1000);
	}
	else{}
}
Wird Zeit die Tasten zu entprellen, dadurch sollte sich das Problem endgültig lösen.
Vielen Dank für die guten Ansätze!