Hast du den Taster auch mit einem Pull-Up Widerstand an Vcc angeschlossen?
Wieso aktivierst du an PortD die Pull-Up Widerstände?
Mach das:

PortD = 0xFF;

mal weg. Ist doch bischen sinnlos den Pin auf 1 zu setzten und ihn dann nach 1 abzufragen