
	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

#define BANCO0 bcf STATUS,5
#define BANCO1 bsf STATUS,5

;*************************************************************
;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'

	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

;*************************************************************
;SEMICICLO POSITIVO
;*************************************************************

POSITIVO_0					;este es el primer PWM que no tiene dutty, es el paso por 0

	nop						;estos nop son de relleno, despues pondremos mas o menos
	bsf 	PORTC,0			;pin para positivo del Puente H			
	bcf 	INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS; Temporización = Ciclo de instrucción*(256-TMR0)*Divisor de Frecuencia
	movwf	TMR0			;aqui empieza a contar
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0			;ya cruzo por cero 
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_1					;este sera el primer PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0			;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_2					;este sera el segundo PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_1		;tambien llamamos demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

POSITIVO_3					;este sera el tercer PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf 	INTCON,T0IF
	goto	$+1
	nop
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_1		;tambien llamamos demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_4					;este sera el cuarto PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_1		;tambien llamamos demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

POSITIVO_5					;este sera el quinto PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf 	INTCON,T0IF
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_1		;tambien llamamos demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_6					;este sera el sexto PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_1		;tambien llamamos demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_7					;este sera el septimo PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_1		;tambien llamamos demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	nop
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

POSITIVO_8					;este sera el octavo PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf 	INTCON,T0IF
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_9					;este sera el noveno PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

POSITIVO_10					;este sera el decimo PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0			;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_11					;este sera el decimo primer PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	nop
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_12					;este sera el decimo segundo PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

POSITIVO_13					;este sera el decimo tercer PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_14					;este sera el decimo cuarto PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	nop
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

POSITIVO_15					;este sera el decimo quinto PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_16					;este sera el decimo sexto PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_17					;este sera el decimo septimo PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

POSITIVO_18					;este sera el decimo octavo PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf 	INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_19					;este sera el decimo noveno PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

POSITIVO_20					;este sera el vigesimo PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_21					;este sera el vigesimo primero PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	nop
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_22					;este sera el vigesimo segundo PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

POSITIVO_23					;este sera el vigesimo tercer PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_24					;este sera el vigesimo cuarto PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

POSITIVO_25					;este sera el vigesimo quinto PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_26					;este sera el vigesimo sexto PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_27					;este sera el vigesimo septimo PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

POSITIVO_28					;este sera el vigesimo octavo PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	nop
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_29					;este sera el vigesimo noveno PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)
	bcf		INTCON,T0IF
	goto	$+1
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139,2uS, esperamos

POSITIVO_30					;este sera el trigesimo PWM con dutty

	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139,2uS, esperamos

POSITIVO_31					;este sera el trigesimo primer PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	nop
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_32					;este sera el trigesimo segundo PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

POSITIVO_33					;este sera el trigesimo tercero PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_34					;este sera el trigesimo cuarto PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

POSITIVO_35					;este sera el trigesimo quinto PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_36					;este sera el trigesimo sexto PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138uS, esperamos

POSITIVO_37					;este sera el trigesimo septimo PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

POSITIVO_38					;este sera el trigesimo octavo PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	nop
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_39					;este sera el trigesimo noveno PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

POSITIVO_40					;este sera el cuadragesimo PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	nop
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_41					;este sera el cuadragesimo primer PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_42					;este sera el cuadragesimo segundo PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

POSITIVO_43					;este sera el cuadragesimo tercer PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_44					;este sera el cuadragesimo cuarto PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

POSITIVO_45					;este sera el cuadragesimo quinto PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	nop
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	nop
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_46					;este sera el cuadragesimo sexto PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0			;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_47					;este sera el cuadragesimo septimo PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

POSITIVO_48					;este sera el cuadragesimo octavo PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	nop
	movlw	.86				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_49					;este sera el cuadragesimo noveno PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

POSITIVO_50					;este sera el quincuagesimo PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_51					;este sera el quincuagesimo primer PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos


POSITIVO_52					;este sera el quincuagesimo segundo PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_1		;tambien llamamos demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	nop
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

POSITIVO_53					;este sera el quincuagesimo tercer PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_1		;tambien llamamos demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_54					;este sera el quincuagesimo cuarto PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_1		;tambien llamamos demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

POSITIVO_55					;este sera el quincuagesimo quinto PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_1		;tambien llamamos demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_56					;este sera el quincuagesimo sexto PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	nop
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_1		;tambien llamamos demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0			;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_57					;este sera el quincuagesimo septimo PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_1		;tambien llamamos demora completa
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

POSITIVO_58					;este sera el quincuagesimo octavo PWM con dutty

	bsf		PORTC,2			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	bcf		PORTC,2			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0			;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

POSITIVO_59					;este sera el quincuagesimo nooveno PWM con dutty

	goto	$+1
	bcf		PORTC,0			;pin para positivo del Puente H		
	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	btfsc	PORTB,0  		;puedes ponerlo donde quieras
    goto	CRUCE_0			;ya cruzo por cero 
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

;*************************************************************
;SEMICICLO NEGATIVO
;*************************************************************

NEGATIVO_0					;este es el primer PWM que no tiene dutty, es el paso por 0

	nop						;estos nop son de relleno, despues pondremos mas o menos
	bsf		PORTC,1			;pin para positivo del Puente H
	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	btfsc	PORTB,0  		;puedes ponerlo donde quieras
    goto	CRUCE_0			;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_1					;este sera el primer PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0			;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_2					;este sera el segundo PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_1		;tambien llamamos demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0			;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

NEGATIVO_3					;este sera el tercer PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	nop
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_1		;tambien llamamos demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_4					;este sera el cuarto PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_1		;tambien llamamos demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

NEGATIVO_5					;este sera el quinto PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_1		;tambien llamamos demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_6					;este sera el sexto PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_1		;tambien llamamos demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_7					;este sera el septimo PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_1		;tambien llamamos demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	nop
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

NEGATIVO_8					;este sera el octavo PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_9					;este sera el noveno PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0			;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

NEGATIVO_10					;este sera el decimo PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_11					;este sera el decimo primer PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	nop
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_12					;este sera el decimo segundo PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

NEGATIVO_13					;este sera el decimo tercer PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_14					;este sera el decimo cuarto PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	nop
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

NEGATIVO_15					;este sera el decimo quinto PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_16					;este sera el decimo sexto PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_17					;este sera el decimo septimo PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

NEGATIVO_18					;este sera el decimo octavo PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_19					;este sera el decimo noveno PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

NEGATIVO_20					;este sera el vigesimo PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_21					;este sera el vigesimo primero PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	nop
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_22					;este sera el vigesimo segundo PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

NEGATIVO_23					;este sera el vigesimo tercer PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_24					;este sera el vigesimo cuarto PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

NEGATIVO_25					;este sera el vigesimo quinto PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_26					;este sera el vigesimo sexto PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_27					;este sera el vigesimo septimo PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

NEGATIVO_28					;este sera el vigesimo octavo PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	nop
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_29					;este sera el vigesimo noveno PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139,4uS, esperamos

NEGATIVO_30					;este sera el trigesimo PWM con dutty

	bcf		INTCON,T0IF
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_31					;este sera el trigesimo primer PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	nop
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_32					;este sera el trigesimo segundo PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

NEGATIVO_33					;este sera el trigesimo tercero PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_34					;este sera el trigesimo cuarto PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

NEGATIVO_35					;este sera el trigesimo quinto PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_36					;este sera el trigesimo sexto PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_37					;este sera el trigesimo septimo PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

NEGATIVO_38					;este sera el trigesimo octavo PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	nop
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_39					;este sera el trigesimo noveno PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

NEGATIVO_40					;este sera el cuadragesimo PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	nop
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_41					;este sera el cuadragesimo primer PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_42					;este sera el cuadragesimo segundo PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

NEGATIVO_43					;este sera el cuadragesimo tercer PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		 ;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_44					;este sera el cuadragesimo cuarto PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_7		;otras 7 demoras completas
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

NEGATIVO_45					;este sera el cuadragesimo quinto PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	nop
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	nop
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_46					;este sera el cuadragesimo sexto PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_47					;este sera el cuadragesimo septimo PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

NEGATIVO_48					;este sera el cuadragesimo octavo PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	nop
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_49					;este sera el cuadragesimo noveno PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

NEGATIVO_50					;este sera el quincuagesimo PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_51					;este sera el quincuagesimo primer PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_7		;tambien llamamos 7 demoras completas
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos


NEGATIVO_52					;este sera el quincuagesimo segundo PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_1		;tambien llamamos demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	nop
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

NEGATIVO_53					;este sera el quincuagesimo tercer PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_1		;tambien llamamos demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_54					;este sera el quincuagesimo cuarto PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	nop
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_1		;tambien llamamos demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

NEGATIVO_55					;este sera el quincuagesimo quinto PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_1		;tambien llamamos demora completa
	call	DEMORA_1		;otra demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0 		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_56					;este sera el quincuagesimo sexto PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	nop
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_1		;tambien llamamos demora completa
	call	DEMORA_1		;otra demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_57					;este sera el quincuagesimo septimo PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	movlw	.85				;valor del offset del TMR0 para 136,80uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	call	DEMORA_1		;tambien llamamos demora completa
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la  senoidal de la red
    goto	CRUCE_0_1		;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS, esperamos

NEGATIVO_58					;este sera el quincuagesimo octavo PWM con dutty

	bsf		PORTC,3			;lo activamos (pon el que tu quieras)		
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	call	DEMORA			;llamamos demora
	bcf		PORTC,3			;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la senoidal de la red
    goto	CRUCE_0			;ya cruzo por cero
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 138,8uS, esperamos

NEGATIVO_59					;este sera el quincuagesimo nooveno PWM con dutty

	bcf		PORTC,1			;pin para positivo del Puente H
	bcf		INTCON,T0IF
	goto	$+1
	goto	$+1
	movlw	.86				;valor del offset del TMR0 para 136,0uS
	movwf	TMR0			;aqui empieza a contar
	btfsc	PORTB,0  		;chequeamos si cruzo por cero la senoidal de la red
    goto	CRUCE_0			;ya cruzo por cero 
	btfss	INTCON,T0IF		;chequeamos si desbordo
	goto	$-3				;todavia no pasaron los 139uS (hasta iniciar nuevamente), esperamos

	bcf		PORTC,4			;sacamos de sincronizacion luego de cada onda senoidal completa

	goto	POSITIVO_0 		;Empezamos nuevamente la onda


;*************************************************************
;CRUCE POR CERO
;*************************************************************

CRUCE_0
	bcf		PORTC,2 		;bit de salida para onda positiva
	bcf		PORTC,3 		;bit de salida para onda negativa
	bsf		PORTC,4 		;bit de salida para SINCRONIZACION
	goto	POSITIVO_0

CRUCE_0_1
	bcf		PORTC,2 		;bit de salida para onda positiva
	bcf		PORTC,3 		;bit de salida para onda negativa
	btfsc	PORTB,0 		;Chequeamos si ya no esta en 1 el pin de cruce por cero
	goto	$-1
	btfss	PORTB,0 		;Chequeamos si ya esta en 1 y ahora si mandamos a sincronizar.
	goto	$-1
	bsf		PORTC,4 		;bit de salida para SINCRONIZACION
	goto	POSITIVO_0

;*************************************************************
;DEMORAS
;*************************************************************

DEMORA						;demora de 4,2uS, descontamos los tiempos de las instrucciones precedentes  
	movlw	.4				; 1 set numero de repeticion 
    movwf	PDel0			; 1 |
PLoop0
	clrwdt					; 1 clear watchdog
	decfsz	PDel0,1  		; 1 + (1) es el tiempo 0  ?
	goto	PLoop0			; 2 no, loop
	return					; 2+2 Fin.

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