Hola foreros. Creo entender tu pregunta. Una forma sería hacerla por software:
-Debes sensar continuamente ese pulsador, supongamos que esté en RA0
y cuando presionas hay 5 volts a la entrada de RA0. y cuando sueltas el pulsador hay cero volts a la entrada de RA0.
call retardo_20mS ; para evitar rebotes del pulsador
btfss PORTA,0 ; RA0=1? ó sea ¿presionaste el pulsador?
call apagar_sistema ; si lo presionaste, va a la rutina de apagar
continuar..... , no, no lo presionaste, continua lo que está haciendo
Para apagar el circuito:
Si es otro distinto del pic, debes usar algun driver como un transistor con relé, etc.
Si es del mismo pic, tendras que usar un circuito adicional que controle la alimentación del pic
Bueno creo que esa es la idea que expones...