He subido el tiempo de retardo a 1seg y usando un cristal de 4Mhz la rutina se queda de la siguiente manera:
retardo
movlw D'15'
movwf temp
clrf TMR0
bcf INTCON,T0IF
retardo_2 btfss INTCON,T0IF
goto retardo_2
decfsz temp,f
goto retardo_3
return
retardo_3 bcf INTCON,T0IF
goto retardo_2
Estoy simulando con proteus pero el cronometro no se corresponde con el retardo, ¿Esta bien?