MARkoo, como dice Nicolas_Durst tienes que usar la interrupcion del pic, pero no es necesario utilizar un 555 como reloj, ya que el problema puede ser solucionado por software. tmr0 puede ser comandado por (fosc/4)/preescaler o por (fosc/4) o por TOCK4(ra4), si seleccionas un preescaler y tienes al pic funcionado a 4 mhz entonces al maximo preescaler tendras una interrupcion cada 33.3ms aproximadamente, lo que tienes que acer en tu interrupcion es preguntar el origen de la interrupcion por el registro INTCON si no estoy errado, ahi los 3 ultimos bits son banderas de interrupcion, lo unico que tienes que hacer es tener dos subrutinas, preguntas si se activo la bandera de overflow del TMR0, si lo esta la ceras(T0IF=0),y llamas a una subrutina, que debera contener un contador auxiliar, debera cada vez incrementar en 1 y preguntar si el contador auxiliar es 30, puesto que 33.3ms*30veces = 999ms ~ 1000ms = 1seg,
si es 30 entonces incrementas tus segundos......,luego preguntas la flag del RB0/INT y si esta seteada la ceras(INTF = 0 si no me equivoco) y llamas a tu subrutina pues se habra activado el sensor, pero si quieres mas velocidad de cheque del sensor(<33.3ms) entonces bajas el preescaler y calculas... segun el preescaler @4mhz los tiempos pueden ser: 512microsegundos,4 milisegundos, 8 milisegundos, etc puedes por ej poner el preesc. en 8ms y 1000ms/8ms = 125, cuentas con el auxiliar hasta 125d(hex'7d') y luego incrementas los segundos, y ahi tienes tu aplicacion.... espero haberte sido de ayuda,MARkoo
'los idiotas mantienen el orden, los genios dominan el caos....'