;**************************** Librería "RETARDOS.INC" *********************************** 
; 
; Subrutinas de retardos de 1 ms y 10 us. Llamadas a estas funciones con un valor "n" 
; cargado previamente en W logran un retardo n veces el de la rutina original. 
; 
; *********************************************************************************** 

	CBLOCK 0x20 
Ret_Loops 
Ret_Loops2 
	ENDC 

; Subrutina "Retardo" ------------------------------------------------------------------- 
; 
; Subrutina de retardo en milisegundos. El valor cargado en W antes del llamado a la 
; subrutina indica el número de milisegundos del retardo. 
; 

Retardo	movwf	 Ret_Loops 
top2	movlw	.110	; Numero de veces que se repetirá el ciclo para generar 1 ms 
	movwf	Ret_Loops2 
top	nop 
	nop 
	nop 
	nop 
	nop 
	nop 
	decfsz	Ret_Loops2	; Pregunta si termino 1 ms 
	goto	top 
	decfsz	Ret_Loops	; Pregunta si termina el retardo 
	goto	top2 
	retlw	0 

; Subrutina "Retardo_micros" ------------------------------------------------------------ 
; 
; Subrutina de retardo de 10 microsegundos. El valor cargado en W antes del llamado a la 
; subrutina indica el número de microsegundos del retardo x 10. 
; 

Retardo_micros movwf	Ret_Loops 
top_us	nop 
	nop 
	nop 
	nop 
	nop 
	nop 
	nop 
	decfsz	Ret_Loops 
	goto	top_us 
	retlw	0 

; Retardo de 5 ms ---------------------------------------------------------------------- 
Retardo_2ms 	movlw	.002 
	call	Retardo 
	retlw	0 

; Retardo de 5 ms ---------------------------------------------------------------------- 
Retardo_5ms	movlw	.005 
	call	Retardo 
	retlw	0 

; Retardo de 20 ms ---------------------------------------------------------------------- 
Retardo_20ms	movlw	.020 
	call	Retardo 
	retlw	0 

; Retardo de 50 ms ---------------------------------------------------------------------- 
Retardo_50micros 
	movlw	.005 
	call	Retardo_micros 
	retlw	0 

; Retardo de 200 ms --------------------------------------------------------------------- 
Retardo_200micros 
	movlw	.020 
	call	Retardo_micros 
	retlw	0 

