Hola NITITA:
Los nombres de Conta 1 2 3 son nombres que se han dado en este programa para guardar las variables de los contadores. en realidad lo que se realiza en bucle 1 es incremente ese registro que al principio de programa se ha puesto a O (clear conta)
Acontinuacion se incremente en una unidad el registro y se comprueba si ese registro ha llegado a su valor maximo FF. De no ser asi salta a la zona de bucle 2 y asi sucesivamente....... Cuando se llega a la cuenta final en bucle 3 es por que se ha alcanzado el valor maximo de conta3 y se regresa al programa principal.
Los numeros 38,255 256 son numeros que se dan a las variables en este caso "Conta" pra que el registro empieza a incrementar desde ese valor 38,255,... hasta el maximo y que si se suman los retardos den el tiempo total de 10 segundos.
Respecto a la formula: TMR0final es el valor que vas a colocar el ne registro "conta" y el rengo del divisor "si" lo tienes que mirar en la tabla de la configuracion del TMR0. Al final si realizas la cuneta te saldrá un retardo que será aproximadamente el que tarda el registro en llegar a su valor maximo. ¿Porque aprox.? pues por que en el retardo tambien habria que tener en cuenta el tiempo que tardan en ejecutarse el rsto de instrucciones de la rutina de "bucle".
Lo de realizar el retardo con el TMR0 o preescaler. Bueno creo que tienes un poco liado el concepto. para realizar un retardo puedes utilizar el TMRO, o bien otro TMR que tenga el micro utilizado y para conseguir mayores retardos lo que sucede es que cada uno de ellos posee un sistema en el cyal se retarda un numero de veces la cuenta de forma interna antes de que cambie la salida del contador, en este caso TMR0, y a ase contaje interno se le llama "Preescaler.
Espero no haberte aburrido con la respuesta, pero te aaconsejo que leas un poco másen profundidad los data sheet del micro utilizado o algun tutorial al respecto. para empezar te aconsejaria que mirases en la pagina:
www.PIC16F84A.com te será muy util
Saludos Fermin