richard12 creo que podrias usar la interrupcion por desborde del TMR0 asi el PIC ejecuta normalmente el programa hasta que tengas los 10 seg , una vez que configures el TMR0 con preescaler de 256, lo borras y la habilitas su interrupcion y luego pasas a realizar el programa como esperas.
EN la rutina de interrupcion utilizas una variable que cuente las veces que entras a la interrupcion y asi poder controlar la cantidad exacta de tiempo . suponiendo un oscilador de 4 MHz, tendrias un ciclo de instruccion de 1 us , entonces el TMR0 desbordaria cada 65,5 ms, con una variable ContInt_T0 controlas la cantidad de desbordes y la ajustas para los 10 seg , esto seria algo asi como 153
el codigo seria algo mas o menos asi
org 0x04 ;Vector de interrupcion
Int_TMR0
incf ContInt_T0 , F
movf ContInt_T0,W
xorlw .153 ;Pasaron los 10 seg??
btfsc STATUS,Z
goto $ ;Si , entonces nos quedamos aqui y no nos movemos
bcf INTCON,T0IF ;No , entonces continuamos
retfie
La instruccion goto $ hara que el contador de programa se quede en el mismo lugar , asi tendras un ciclo infinito del cual solo se prodra salir reseteando el PIC.
Pero tambien deberias considerar el poner algun password para leer los datos de la EEPROM , o algun tipo de encriptacion como te aconsejaron antes.
Saludos