Muchos programas necesitan un control de tiempo fiable, esta rutina realiza un retardo de varios cientos de microsegundos que deseemos.

Hay que declarar los registros PDel1 y PDel0.

Para llamarla rutina:

movlw PP
call Ret100

Donde PP es el número de cientos de microsegundos

La rutina es:

Ret100 movwf PDel1
movlw 0x1E ; set numero de repeticion
movwf PDel0
PLoop0 decfsz PDel0, 1 ; es el tiempo 0?
goto PLoop0 ; no, loop
decfsz PDel1, 1
goto loop
return
loop movlw 0x20 ; set numero de repeticion
movwf PDel0
decfsz PDel0, 1 ; es el tiempo 0?
goto PLoop0 ; no, loop

Funciona con un Xtal de 4MHz