No se como tienes conectado el teclado , pero lo ideal es en portb.
Lo puedes hacer con pauses con menos tiempo , para no meterte con interrupciones de momento , así iras aprendiendo .
Codigo:
OPTION_REG.7 = 0 "resistencias portb conectadas
trisB = % 00001111
portB = % 00001111
for minutos = 1 to 5 " tiempo de salida
for segundos = 1 to 60
for Ms200 = 1 to 5
gosub ChequeaTeclado
Sound BUZZER,[120,100] " beep 100 ms
gosub ChequeaTeclado
pause 100 " pausa 100 ms
next Ms200
next segundos
next minutos
ChequeaTeclado:
if portB <> %00001111 then gosub leeTecla " yep ¡ se ha pulsado una tecla , cual es ???
if Tecla="*" then goto cancela
return
Lo mas importante si quieres aprender es que sepas el por que funciona ó no funciona tu codigo , cueste lo que cueste .
Esto es solo una posible manera de hacerlo y te haces una idea .
los tiempos son de ejemplo .
Suerte .