Bueno, lo primero que debes saber es que el TMR0 se configura en el registro OPTION.
si el OPTION_REG,T0CS = 0 se configura el TMR0 en modo "timer" es decir, se incrementa al ritmo del ciclo de instrucciones (Fosc/4).
si OPTION_REG,T0CS = 1 se asigna como contador, es decir, cuenta dependiendo de los pulsos de entrada en RA4.
Imagino que te refieres a como usar el TMR0 en el modo "Timer"
El TMR0 comienza a contar "inmediatamente" se le asigna un modo, por ejemplo, asumiendo que el valor del OPTION_REG,T0CS =0 al iniciar despues de un reset, el Timer0 se coloca en modo "timer" y comienza a contar inmediatamente despues de dicho reset. Una vez el contador alcanza su valor maximo (8 bits) se activa la bandera de desborde INTCON,T0IF = 1. si tienes activada la interrupcion INTCON,T0IE el apuntador de programa (PC) se dirige al vector de interrupción en el momento que INTCON,T0IF =1, que en el caso del 16f84A es el 0x0004.
Por tanto, si quieres comenzar unconteo en modo "timer" lo mejor es inicializar el valor de TMR0 (por ejemplo: clrf TMR0). al escribir el TMR0, este se coloca en "Espera" por dos ciclos, es decir que posees un tiempo de dos ciclos antes que el timer comience su operación normal. durante este tiempo es conveniente borrar la bandera de desborde INTCON,T0IF , la cual es la que consultamos si queremos saber si ya se acabo el conteo.
ej queremos contar 100 ciclos:
banksel OPTION_REG
movlw X ; Asignas el preescaler, (revisa el valor adecuado en
movwf OPTION_REG ; el pdf del PIC)
banksel TMR0
movlw d'255'-d'100' ; inicializamos con el valor de desborde que es 255 y le
; restamos el valor que queremos contar
movwf TMR0 ; a partir de aqui contamos con 2 ciclos
bcf INTCON,T0IF ; borramos la bandera ya que no sabemos si ya
; se desbordo el timer
nop ; desde aqui comienza a contar ¡¡
btfss INTCON,T0IF; evaluamos si el timer ya realizo su labor.
goto $-1 ;esperar...
CODIGO_QUE_SIGUE
; ya acabo de contar, y continua el programa.
el preescaler es simplemente el numero de ciclos que deseas que transcurran antes que se incremente el TMR0, con esto logras tiempos mas largos. estos valores los encuentras en el pdf del PIC.
Espero te haya servido de algo...
Saludos
Oldkami