Ich denke es hat mit OSCCAL = 0x00; zu tun, lass das mal weg,
Der µC ist vom Werk aus für 5V bei 20 Grad kalibriert(glaub ich)
Hab jetzt keine Lust genau nachzusehen, also nicht schlagen, wenn das nicht ganz stimmt.
OSCAL wird interessant, wenn Du mit kleineren Spannungen arbeitest.
Sonst brauchst Du fürs erste keinen Quarz.
Das andere Problem, weiß ich nicht genau, aber was hast Du für ein Board ?
Oder Steckbrett?
Dieser Zeile nach zu urteilen
Code:
if ((PIND & (1<<PD0)) != 0)
Tastest Du VCC (5V) mit dem Taster auf PD0 richtig?
Taste gedrückt PD0 -> VCC
Taste los PD0 -> ? was ? hängt in der Luft, oder hast Du einen Pulldown Widerstand dran?
Wenn in der Luft, dann ist es schlecht, nimm irgendein Widerstand von etwa 10 Kohm
und schalte ihn zwischen PD0 und GND(0V,minus)
Üblich ist es Pullup Widerstände zu nehmen(also zwischen PD0 und VCC) und mit dem Tastendruck GND auf den Pin zu schalten, dann könnte man sich sogar den Widerstand sparen und einen internen einschalten.
Wenn Du jetzt nicht weißt, was ich von Dir will schau Dir die Bildchen auf meiner HP an.
Es geht sich da zwar um Assembler, das Prinzip bleibt aber gleich

Gruß Sebastian