
	LIST P=16F871
	#INCLUDE "P16F871.INC"   
	ERRORLEVEL      -302    ;SUPRIME LA ADVERTENCIA SOBRE LOS BANCOS DE MEMORIA
	__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC

;*************************************************************
;DECLARACION DE VARIABLES
;*************************************************************

AUX_LOW		EQU H'20'
AUX_HIGH	EQU H'21'
THIGH		EQU H'22'
TLOW		EQU H'23'
PDel0		EQU	H'24'
PDel1		EQU	H'25'
FLAGS		EQU	H'26'

#define BANCO0 bcf STATUS,5
#define BANCO1 bsf STATUS,5
#define FLAG FLAGS,0
#define SINCRONIZAR? FLAGS,1
#define CRUCE_CERO PORTB,0
#define PWM_1_AUX PORTC,0
#define PWM_2_AUX PORTC,1
#define PWM_1 PORTC,2
#define PWM_2 PORTC,3
#define SINCRONIZA PORTC,4

	ORG		0x00
	GOTO	INICIO

;*************************************************************
;PROGRAMA PRINCIPAL
;*************************************************************

INICIO
	BANCO1
	movlw	b'11100000'	
	movwf	TRISC		;PONGO PIN 0, 1, 2, 3, 4 DEL PUERTO C COMO SALIDA.

;*************************************************************
;CONFIGURACION DEL TIMER 0
;*************************************************************

	movlw	b'00000001'	;Se selecciona TMR0 modo temporizador y preescaler de 1/16.
	movwf	OPTION_REG

;*************************************************************
;CONDICIONES INICIALES
;*************************************************************

	BANCO0
	clrf	PORTC
	clrf	FLAGS

;*************************************************************
;SEMICICLO POSITIVO
;*************************************************************

POSITIVO_0					;Medio ciclo del cruce por cero

	bcf 	INTCON,T0IF
	movlw	.173			;valor del offset del TMR0 para 65,60uS; Temporización = Ciclo de instrucción*(256-TMR0)*Divisor de Frecuencia
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	nop
	bsf 	PWM_1_AUX		;pin para positivo del Puente H
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0			;y mandamos programa a punto de sincronismo

POSITIVO_1					;este sera el primer PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_1			;lo activamos
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_2					;este sera el segundo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_1			;lo activamos
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_3					;este sera el tercer PWM con dutty

	bcf 	INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	bsf		PWM_1			;lo activamos
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_4					;este sera el cuarto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1	
	nop
	bsf		PWM_1			;lo activamos
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_5					;este sera el quinto PWM con dutty

	bcf 	INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_1			;lo activamos
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_6					;este sera el sexto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	bsf		PWM_1			;lo activamos
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_7					;este sera el septimo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_8					;este sera el octavo PWM con dutty

	bcf 	INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_9					;este sera el noveno PWM con dutty

	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_10					;este sera el decimo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_11					;este sera el decimo primer PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_12					;este sera el decimo segundo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	nop
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_13					;este sera el decimo tercer PWM con dutty

 		
	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_14					;este sera el decimo cuarto PWM con dutty

 		
	bcf		INTCON,T0IF
	goto	$+1
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_15					;este sera el decimo quinto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_1			;lo activamos 
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_16					;este sera el decimo sexto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_17					;este sera el decimo septimo PWM con dutty

	bcf		INTCON,T0IF
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_18					;este sera el decimo octavo PWM con dutty

	bcf 	INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_19					;este sera el decimo noveno PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_20					;este sera el vigesimo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_21					;este sera el vigesimo primero PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_22					;este sera el vigesimo segundo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_23					;este sera el vigesimo tercer PWM con dutty

	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_24					;este sera el vigesimo cuarto PWM con dutty

 	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_25					;este sera el vigesimo quinto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	nop
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_26					;este sera el vigesimo sexto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_27					;este sera el vigesimo septimo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_28					;este sera el vigesimo octavo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_29					;este sera el vigesimo noveno PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_30					;este sera el trigesimo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	nop
	bsf		PWM_1
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_31					;este sera el trigesimo primer PWM con dutty

	bcf		INTCON,T0IF
	goto	$+1
	nop
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_32					;este sera el trigesimo segundo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_33					;este sera el trigesimo tercero PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_34					;este sera el trigesimo cuarto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	nop
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_35					;este sera el trigesimo quinto PWM con dutty

	bcf		INTCON,T0IF
	goto	$+1
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_36					;este sera el trigesimo sexto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_37					;este sera el trigesimo septimo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_38					;este sera el trigesimo octavo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_39					;este sera el trigesimo noveno PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	nop
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_40					;este sera el cuadragesimo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_41					;este sera el cuadragesimo primer PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_42					;este sera el cuadragesimo segundo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	nop
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_43					;este sera el cuadragesimo tercer PWM con dutty

	bcf		INTCON,T0IF
	goto	$+1
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_44					;este sera el cuadragesimo cuarto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_45					;este sera el cuadragesimo quinto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	nop
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_46					;este sera el cuadragesimo sexto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_47					;este sera el cuadragesimo septimo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	nop
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras	
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_48					;este sera el cuadragesimo octavo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	nop
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras	
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_49					;este sera el cuadragesimo noveno PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras	
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_50					;este sera el quincuagesimo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras	
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_51					;este sera el quincuagesimo primer PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras	
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo


POSITIVO_52					;este sera el quincuagesimo segundo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras	
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_53					;este sera el quincuagesimo tercer PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	nop
	bsf		PWM_1			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_54					;este sera el quincuagesimo cuarto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_1			;lo activamos
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_55					;este sera el quincuagesimo quinto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_1			;lo activamos
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_56					;este sera el quincuagesimo sexto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	bsf		PWM_1			;lo activamos
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_57					;este sera el quincuagesimo septimo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_1			;lo activamos
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_58					;este sera el quincuagesimo octavo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_1			;lo activamos
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_59					;este sera el quincuagesimo nooveno PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_1			;lo activamos
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_1			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

POSITIVO_60					;Medio ciclo del cruce por cero

	bcf		INTCON,T0IF
	movlw	.173			;valor del offset del TMR0 para 66,40uS
	movwf	TMR0			;aqui empieza a contar
	bcf		PWM_1_AUX		;pin para positivo del Puente H
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

;*************************************************************
;SEMICICLO NEGATIVO
;*************************************************************

NEGATIVO_0					;Medio ciclo del cruce por cero

	bcf		INTCON,T0IF
	movlw	.173			;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_2_AUX		;pin para positivo del Puente H
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_1					;este sera el primer PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_2			;lo activamos
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_2					;este sera el segundo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_2			;lo activamos
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_3					;este sera el tercer PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	bsf		PWM_2			;lo activamos
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_4					;este sera el cuarto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	nop
	bsf		PWM_2			;lo activamos
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_5					;este sera el quinto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_2			;lo activamos
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_6					;este sera el sexto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	bsf		PWM_2			;lo activamos
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_7					;este sera el septimo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_8					;este sera el octavo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_9					;este sera el noveno PWM con dutty

	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_10					;este sera el decimo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_11					;este sera el decimo primer PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_12					;este sera el decimo segundo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	nop
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_13					;este sera el decimo tercer PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_14					;este sera el decimo cuarto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_15					;este sera el decimo quinto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_16					;este sera el decimo sexto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_17					;este sera el decimo septimo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_18					;este sera el decimo octavo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_19					;este sera el decimo noveno PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_20					;este sera el vigesimo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_21					;este sera el vigesimo primero PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_22					;este sera el vigesimo segundo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_23					;este sera el vigesimo tercer PWM con dutty

	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_24					;este sera el vigesimo cuarto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_25					;este sera el vigesimo quinto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	nop
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_26					;este sera el vigesimo sexto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_27					;este sera el vigesimo septimo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_28					;este sera el vigesimo octavo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_29					;este sera el vigesimo noveno PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo


NEGATIVO_30					;este sera el trigesimo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	bsf		PWM_2			;lo activamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_31					;este sera el trigesimo primer PWM con dutty

 		
	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	nop
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_32					;este sera el trigesimo segundo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_33					;este sera el trigesimo tercero PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_34					;este sera el trigesimo cuarto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	nop
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_35					;este sera el trigesimo quinto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_36					;este sera el trigesimo sexto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_37					;este sera el trigesimo septimo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_38					;este sera el trigesimo octavo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_39					;este sera el trigesimo noveno PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	nop
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_40					;este sera el cuadragesimo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_41					;este sera el cuadragesimo primer PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_42					;este sera el cuadragesimo segundo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	nop
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_43					;este sera el cuadragesimo tercer PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_44					;este sera el cuadragesimo cuarto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_45					;este sera el cuadragesimo quinto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	nop
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_46					;este sera el cuadragesimo sexto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_7		;llamamos 7 demoras
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_47					;este sera el cuadragesimo septimo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	nop
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_48					;este sera el cuadragesimo octavo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	nop
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_49					;este sera el cuadragesimo noveno PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_50					;este sera el quincuagesimo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_51					;este sera el quincuagesimo primer PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo


NEGATIVO_52					;este sera el quincuagesimo segundo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_53					;este sera el quincuagesimo tercer PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	nop
	bsf		PWM_2			;lo activamos
	call	DEMORA_7		;llamamos 7 demoras
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_54					;este sera el quincuagesimo cuarto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_2			;lo activamos
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_55					;este sera el quincuagesimo quinto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_2			;lo activamos
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_56					;este sera el quincuagesimo sexto PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	bsf		PWM_2			;lo activamos
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_57					;este sera el quincuagesimo septimo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.87				;valor del offset del TMR0 para 135,20uS
	movwf	TMR0			;aqui empieza a contar
	bsf		PWM_2			;lo activamos
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_58					;este sera el quincuagesimo octavo PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	goto	$+1
	goto	$+1
	bsf		PWM_2			;lo activamos
	call	DEMORA_1		;llamamos 1 demora
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_59					;este sera el quincuagesimo nooveno PWM con dutty

	bcf		INTCON,T0IF
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	nop
	bsf		PWM_2			;lo activamos
	call	DEMORA_1		;llamamos 1 demora
	bcf		PWM_2			;acabo tiempo dutty, apagamos
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0_1		;y mandamos programa a punto de sincronismo

NEGATIVO_60					;Medio ciclo del cruce por cero

	bcf		INTCON,T0IF
	movlw	.174			;valor del offset del TMR0 para 65,60uS
	movwf	TMR0			;aqui empieza a contar
	bcf		PWM_2_AUX		;pin para positivo del Puente H
	call	CHEQUEO
	btfsc	SINCRONIZAR?	;testeamos bandera para sincronizar
	goto	CRUCE_0			;y mandamos programa a punto de sincronismo

	bcf		SINCRONIZA		;sacamos de sincronizacion luego de cada onda senoidal completa

	goto	POSITIVO_0 		;Empezamos nuevamente la onda

;*************************************************************
;BANDERA PARA EL CRUCE POR CERO
;*************************************************************

CHEQUEO
	btfsc	PORTB,0			;chequeamos si cruzo por cero la  senoidal de la red
	goto	$+4				;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos
	goto	$+5				;para que continue ejecutando siguiente PWM ya que TMR0 desbordo
	btfsc	FLAG			;miramos si FLAG esta a 0
	goto	$-4				;esta a 1, no hacemos caso
	bsf		FLAG			;esta a 0, lo ponemos a 1
	bsf		SINCRONIZAR?	;activamos una bandera para saber que tiene que sincronizar
	return

;*************************************************************
;CRUCE POR CERO
;*************************************************************

CRUCE_0
	bcf		PWM_1 			;bit de salida para onda positiva
	bcf		PWM_2 			;bit de salida para onda negativa
	bsf		SINCRONIZA 		;bit de salida para SINCRONIZACION
	goto	POSITIVO_0

CRUCE_0_1
	bcf		PWM_1 			;bit de salida para onda positiva
	bcf		PWM_2 			;bit de salida para onda negativa
	btfsc	CRUCE_CERO 		;Chequeamos si ya no esta en 1 el pin de cruce por cero
	goto	$-1
	btfss	CRUCE_CERO 		;Chequeamos si ya esta en 1 y ahora si mandamos a sincronizar.
	goto	$-1
	bsf		SINCRONIZA 		;bit de salida para SINCRONIZACION
	goto	POSITIVO_0

;*************************************************************
;DEMORAS
;*************************************************************

DEMORA_1					;esta si tendra 4,6uS ya que no hay que descontar instrucciones  
	movlw	.4				; 1 set numero de repeticion 
	movwf	PDel0			; 1 |
PLoop1
	clrwdt					; 1 clear watchdog
	decfsz	PDel0,1			; 1 + (1) es el tiempo 0  ?
	goto	PLoop1			; 2 no, loop
PDelL1
	goto	PDelL2			; 2 ciclos delay
PDelL2
	return					; 2+2 Fin.

DEMORA_7
	movlw	.39				; 1 set numero de repeticion 
	movwf	PDel0			; 1 |
PLoop2
	clrwdt					; 1 clear watchdog
	decfsz	PDel0,1			; 1 + (1) es el tiempo 0  ?
	goto	PLoop2			; 2 no, loop
	clrwdt					; 1 ciclo delay
	return					; 2+2 Fin.

	END						;fin de programa