Mit Interrupts kann man viel Spaß haben - vorallem wenn man mehrere hat und diese nur zu bestimmten Zeiten aktiviert oder deaktiviert

Als Tip habe ich noch für dich:
-In der Interruptroutine nur ein Bit setzen und dann in der Hauptschleife dieses Bit auswerten und rücksetzen. Das vermeidet viele Probleme weil wenn gerade ein Interrupt ausgeführt wird kein anderer Interrupt greifen kann bzw. nur ein Interrupt mit höherer Priorität greifen kann.
-Ein debouncen des Tasters kannst du dir Sparen, wenn du nach der Auswertung in der Hauptschleife den Interrupt ausschaltest und nach Abarbeitung wieder einschaltest.
Code:
do
If Bit = 1 then
   Disable Int 0
   Auswertung......

   .... Auswertung ende
   Reset Bit
   Enable Int 0
end if
loop
end

interrupt:
set bit
return
Als Grundregel gilt: Interrupts so kurz wie möglich.

Grüße Stefan