En principio no tendrás ningún problema para temporizar ese tiempo. Si sólo vas a hacer ese temporizador, puedes utilizar esta subrrutina de retardo de 1 segundo:
Codigo:
;DELAY1S Retardo de 1 seg = ((255*3+3)*217+3)*6+8 = 999962us @ 4MHz
delay1s movlw d"255"
movwf contador1
movlw d"217"
movwf contador2
movlw d"6"
movwf contador3
dly1 decfsz contador1,f
goto dly1
decfsz contador2,f
goto dly1
decfsz contador3,f
goto dly1
return
Después vas incrementado contadores para los segundos, minutos, horas y días y cuando llegues a 7 días haces lo que tengas que hacer.
Si mientras esperas debes hacer algo más puedes o bien reducir el retardo lo suficiente para que le de tiempo al PIC a realizarlo o bien, programar algún timer para que te lleve una cuenta independiente por interrupción. Esto último es lo más correcto, sobre todo para una temporización más fina.
Aunque, de todas formas, con esta subrrutina pierdes un máximo de 22 segundos por semana, por si no tienes que ajustar demasiado, te sirve perfectamente.