Ich kenn jetzt natürlich deine Tastenansteuerung nicht, könnte es sein, das Dir da ein Lapsus mit den Pull Up Widerständen unterlaufen ist ?
Wenn die drin sind ist der Port auf high bis ein Taste gedrückt wird.

Wenn ich dein Programm aber überschaue ertwartet es High impulse um umzuschalten.

Wenns im Simulator läuft fällt mir auch nichts gescheites mehr ein.