puedes hacer un programa como este
ciclo de 1 segundo: {lo que esta entre llaves son comentarios y tienes que eliminarlos del programa}
asumimos una frecuencia de trabajo de 4 mhz en el oscilador
st equ 0x03
pb equ 0x06
conta1 equ 0x20
conta2 equ 0x21
conta3 equ 0x22 {tres contadores}
org 0x07
bsf st,5
movlw 0xfc {los pines 0 y 1 del puerto b son configurados como salidas, el resto como entradas}
bcf st,5
bsf pb,0 {enciende el pin 0 de b para mandar la primera señal, por ejemplo energizando un transistor que mande los 5 v al sensor}
movlw 0x2c {carga 60 en hexadecimal en el contador 1
movwf conta1
alfa: {etiqueta 1}
movlw 0xff
movwf conta2 {carga 255 en el contador secundario}
beta: {etiqueta 2}
movlw 0xff
movwf conta3 {carga 255 en el contador terciario}
nop {portate como diputado en la camara, es decir, no hagas nada}
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop {diez veces}
decfsz conta3 {decrementa conta3 y saltate la sig. instrucción cuando sea =0}
goto beta
decfsz conta2{hasta aqui usa aprox 1 segundo }
goto alfa
decfsz conta1{y con esto da el minuto}
goto alfa
bcf pb,0
bsf pb,1 {apaga y prende los pines 0 y 1 respectivamente}
movlw 0x2c {carga 60 en hexadecimal en el contador 1
movwf conta1
delta: {etiqueta 3}
movlw 0xff
movwf conta2 {carga 255 en el contador secundario}
epsilon: {etiqueta 4}
movlw 0xff
movwf conta3 {carga 255 en el contador terciario}
nop {portate como diputado en la camara, es decir, no hagas nada}
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop {diez veces}
decfsz conta3 {decrementa conta3 y saltate la sig. instrucción cuando sea =0}
goto epsilon
decfsz conta2{hasta aqui usa aprox 1 segundo }
goto delta
decfsz conta1{y con esto da el minuto}
goto delta
{y listo, el sensor está calibrado}