Versuchs mal so (ungetestet):

main:
bcf INTCON, T0IF ; Clear INT-Flag

movlw D'245' ; Timer preload
movwf TMR0

movlw B'00000000' ; port b auf "00000000"
movwf PORTB

loop:
BTFSC INTCON, T0IF ; Counter-Overflow?
goto port_on ; ja -> mach an
goto loop ; nein -> warten af weitere Tastendrucke

port_on:
movlw B'1111111' ; port b auf "11111111"
movwf PORTB

endlos ; und auf ewig warten
goto endloos ; (hier kommt was auch immer hin)

end

Das ganze funktioniert genau einmal - nach dem Einschalten ist PORTB auf "0", nach 10 (entprellten) Tastendrucken wird PORTB auf "1" gesetzt und auf ewig gewartet. Das entprellen kann man auch in Software machen.

Ich hoffe das funktioniert und macht es Dir aunschaulich.

Andreas