Hilft nix, du musst während des Blinkens immer wieder den Input abfragen, ob der Kontakt noch immer geschlossen ist.
Für das Blinken machst du am besten eine Schleife, da ist das Ganze auch kompakt

z.B:
Code:
DIM  Flashcount as Byte

Do 
Portb.0 = 1                          ' LED aus 
If Pina.1 = 0 Then               ' gedrückt ?
             Waitms 5000              ' jupp
             gosub blinkenlights     ' lichtspiele
End If
Loop 
END
'-------------------------------------------------------
blinkenlights:
       for  Flashcount = 0 to  64               ' 64 mal blinken (?)
                 If Pina.1 = 1 Then    ' nicht mehr gedrückt ? ---> tschüss
                        return
                 end if
                 Portb.0 = 0 '     LED an
                 Waitms 30 
                 Portb.0 = 1 '     LED aus
                 Waitms 30 
        next 
        return
Gedrückt---> warten 5 sek --> subroutine


subroutine: 64 mal
Taste losgelassen ? stop blink
LED an wait LED aus wait