;--------------------------------------------------------------------
; Libreria de Retardos para pics con cristal de 16MHz
;--------------------------------------------------------------------
; Estos retardos fueron calculados con al siguiente ayuda:
; http://www.piclist.com/cgi-bin/delay.exe
;--------------------------------------------------------------------
	cblock
	d1
	d2
	d3
	d4
	endc
; Delay = 0.002 seconds
; Clock frequency = 16 MHz
; Actual delay = 0.002 seconds = 8000 cycles
; Error = 0 %
Delay_2ms
			;7993 cycles
	movlw	0x3E
	movwf	d1
	movlw	0x07
	movwf	d2
Delay_2ms_0
	decfsz	d1, f
	goto	$+2
	decfsz	d2, f
	goto	Delay_2ms_0
			;3 cycles
	goto	$+1
	nop		;4 cycles (including call)
	return
	
; Delay = 0.01 seconds
; Clock frequency = 16 MHz
; Actual delay = 0.01 seconds = 40000 cycles
; Error = 0 %
Delay_10ms
			;39993 cycles
	movlw	0x3E
	movwf	d1
	movlw	0x20
	movwf	d2
Delay_10ms_0
	decfsz	d1, f
	goto	$+2
	decfsz	d2, f
	goto	Delay_10ms_0
			;3 cycles
	goto	$+1
	nop
			;4 cycles (including call)
	return
	
; Delay = 0.1 seconds
; Clock frequency = 16 MHz
; Actual delay = 0.1 seconds = 400000 cycles
; Error = 0 %
Delay_100ms
			;399992 cycles
	movlw	0x35
	movwf	d1
	movlw	0xE0
	movwf	d2
	movlw	0x01
	movwf	d3
Delay_100ms_0
	decfsz	d1, f
	goto	$+2
	decfsz	d2, f
	goto	$+2
	decfsz	d3, f
	goto	Delay_100ms_0
			;4 cycles
	goto	$+1
	goto	$+1
			;4 cycles (including call)
	return
	
; Delay = 1 seconds
; Clock frequency = 16 MHz
; Actual delay = 1 seconds = 4000000 cycles
; Error = 0 %
Delay_1s
			;3999994 cycles
	movlw	0x23
	movwf	d1
	movlw	0xB9
	movwf	d2
	movlw	0x09
	movwf	d3
Delay_1s_0
	decfsz	d1, f
	goto	$+2
	decfsz	d2, f
	goto	$+2
	decfsz	d3, f
	goto	Delay_1s_0
			;2 cycles
	goto	$+1
			;4 cycles (including call)
	return

Delay_3s
	call	Delay_1s
	call	Delay_1s
	call	Delay_1s
	return