
	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'
AUX				EQU	H'26'

	ORG		0x00
	GOTO	INICIO

;*************************************************************
;PROGRAMA PRINCIPAL
;*************************************************************

INICIO 	BANCO1
		movlw b'11110001'	
		movwf TRISC	;PONGO PIN 1, 2 y 3 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
	nop			
	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 esta a 1, aqui haremos lo que corresponda 
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_1			;este sera el primer PWM con dutty

	bsf	PORTC,1		;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
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_2			;este sera el segundo PWM con dutty

	bsf	PORTC,1		;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
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_3			;este sera el tercer PWM con dutty

	bsf	PORTC,1		;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
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_4			;este sera el cuarto PWM con dutty

	bsf	PORTC,1		;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,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_5			;este sera el quinto PWM con dutty

	bsf	PORTC,1		;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
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_6			;este sera el sexto PWM con dutty

	bsf	PORTC,1		;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
	call	DEMORA_1	;otra demora completa
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_7			;este sera el septimo PWM con dutty

	bsf	PORTC,1		;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
	call	DEMORA_1	;otra demora completa
	call	DEMORA_1	;otra demora completa
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_8			;este sera el octavo PWM con dutty

	bsf	PORTC,1		;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
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_9			;este sera el noveno PWM con dutty

	bsf	PORTC,1		;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,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_10			;este sera el decimo PWM con dutty

	bsf	PORTC,1		;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
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_11			;este sera el decimo primer PWM con dutty

	bsf	PORTC,1		;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
	call	DEMORA_1	;otra demora completa
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_12			;este sera el decimo segundo PWM con dutty

	bsf	PORTC,1		;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
	call	DEMORA_1	;otra demora completa
	call	DEMORA_1	;otra demora completa
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_13			;este sera el decimo tercer PWM con dutty

	bsf	PORTC,1		;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
	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,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_14			;este sera el decimo cuarto PWM con dutty

	bsf	PORTC,1		;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
	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,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_15			;este sera el decimo quinto PWM con dutty

	bsf	PORTC,1		;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,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_16			;este sera el decimo sexto PWM con dutty

	bsf	PORTC,1		;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
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_17			;este sera el decimo septimo PWM con dutty

	bsf	PORTC,1		;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,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_18			;este sera el decimo octavo PWM con dutty

	bsf	PORTC,1		;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
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_19			;este sera el decimo noveno PWM con dutty

	bsf	PORTC,1		;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
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_20			;este sera el vigesimo PWM con dutty

	bsf	PORTC,1		;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,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_21			;este sera el vigesimo primero PWM con dutty

	bsf	PORTC,1		;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
	call	DEMORA_1	;otra demora completa
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_22			;este sera el vigesimo segundo PWM con dutty

	bsf	PORTC,1		;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
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_23			;este sera el vigesimo tercer PWM con dutty

	bsf	PORTC,1		;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,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_24			;este sera el vigesimo cuarto PWM con dutty

	bsf	PORTC,1		;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
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_25			;este sera el vigesimo quinto PWM con dutty

	bsf	PORTC,1		;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,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_26			;este sera el vigesimo sexto PWM con dutty

	bsf	PORTC,1		;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
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_27			;este sera el vigesimo septimo PWM con dutty

	bsf	PORTC,1		;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
	call	DEMORA_1	;otra demora completa
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_28			;este sera el vigesimo octavo PWM con dutty

	bsf	PORTC,1		;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
	call	DEMORA_1	;otra demora completa
	call	DEMORA_1	;otra demora completa
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_29			;este sera el vigesimo noveno PWM con dutty

	bsf	PORTC,1		;lo activamos (pon el que tu quieras)		
	bcf INTCON,T0IF
	nop				;relleno
	movlw	.85		;valor del offset del TMR0 para 136,80uS
	movwf	TMR0		;aqui empieza a contar
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_30			;este sera el trigesimo PWM con dutty

	bsf	PORTC,1		;lo activamos (pon el que tu quieras)		
	bcf INTCON,T0IF
	nop				;relleno
	movlw	.85		;valor del offset del TMR0 para 136,80uS
	movwf	TMR0		;aqui empieza a contar
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_31			;este sera el trigesimo primer PWM con dutty

	bsf	PORTC,1		;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
	call	DEMORA_1	;otra demora completa
	call	DEMORA_1	;otra demora completa
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_32			;este sera el trigesimo segundo PWM con dutty

	bsf	PORTC,1		;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
	call	DEMORA_1	;otra demora completa
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_33			;este sera el trigesimo tercero PWM con dutty

	bsf	PORTC,1		;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
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_34			;este sera el trigesimo cuarto PWM con dutty

	bsf	PORTC,1		;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,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_35			;este sera el trigesimo quinto PWM con dutty

	bsf	PORTC,1		;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
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_36			;este sera el trigesimo sexto PWM con dutty

	bsf	PORTC,1		;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,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	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,1		;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
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_38			;este sera el trigesimo octavo PWM con dutty

	bsf	PORTC,1		;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
	call	DEMORA_1	;otra demora completa
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_39			;este sera el trigesimo noveno PWM con dutty

	bsf	PORTC,1		;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,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_40			;este sera el cuadragesimo PWM con dutty

	bsf	PORTC,1		;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
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_41			;este sera el cuadragesimo primer PWM con dutty

	bsf	PORTC,1		;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
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_42			;este sera el cuadragesimo segundo PWM con dutty

	bsf	PORTC,1		;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,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_43			;este sera el cuadragesimo tercer PWM con dutty

	bsf	PORTC,1		;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
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_44			;este sera el cuadragesimo cuarto PWM con dutty

	bsf	PORTC,1		;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,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_45			;este sera el cuadragesimo quinto PWM con dutty

	bsf	PORTC,1		;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
	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,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_46			;este sera el cuadragesimo sexto PWM con dutty

	bsf	PORTC,1		;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
	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,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_47			;este sera el cuadragesimo septimo PWM con dutty

	bsf	PORTC,1		;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
	call	DEMORA_1	;otra demora completa
	call	DEMORA_1	;otra demora completa
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_48			;este sera el cuadragesimo octavo PWM con dutty

	bsf	PORTC,1		;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
	call	DEMORA_1	;otra demora completa
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_49			;este sera el cuadragesimo noveno PWM con dutty

	bsf	PORTC,1		;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
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_50			;este sera el quincuagesimo PWM con dutty

	bsf	PORTC,1		;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,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_51			;este sera el quincuagesimo primer PWM con dutty

	bsf	PORTC,1		;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
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos


POSITIVO_52			;este sera el quincuagesimo segundo PWM con dutty

	bsf	PORTC,1		;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
	call	DEMORA_1	;otra demora completa
	call	DEMORA_1	;otra demora completa
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_53			;este sera el quincuagesimo tercer PWM con dutty

	bsf	PORTC,1		;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
	call	DEMORA_1	;otra demora completa
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_54			;este sera el quincuagesimo cuarto PWM con dutty

	bsf	PORTC,1		;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
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_55			;este sera el quincuagesimo quinto PWM con dutty

	bsf	PORTC,1		;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,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_56			;este sera el quincuagesimo sexto PWM con dutty

	bsf	PORTC,1		;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
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_57			;este sera el quincuagesimo septimo PWM con dutty

	bsf	PORTC,1		;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
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_58			;este sera el quincuagesimo octavo PWM con dutty

	bsf	PORTC,1		;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
	bcf	PORTC,1		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

POSITIVO_59			;este sera el quincuagesimo nooveno PWM con dutty

	nop			;estos nop son de relleno, despues pondremos mas o menos
	nop			
	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 esta a 1, aqui haremos lo que corresponda 
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, 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
	nop			
	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 esta a 1, aqui haremos lo que corresponda 
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_1			;este sera el primer 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
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_2			;este sera el 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_1	;tambien llamamos demora completa
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_3			;este sera el 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_1	;tambien llamamos demora completa
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_4			;este sera el 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_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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_5			;este sera el 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
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_6			;este sera el 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_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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_7			;este sera el 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_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
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_8			;este sera el octavo 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
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_10			;este sera el decimo 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
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_11			;este sera el decimo primer 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
	call	DEMORA_1	;otra demora completa
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_12			;este sera el decimo 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_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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_13			;este sera el decimo 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_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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_14			;este sera el decimo 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_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
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_16			;este sera el decimo 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_1	;otra demora completa
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_18			;este sera el decimo octavo 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
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_19			;este sera el decimo 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_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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_21			;este sera el vigesimo primero 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
	call	DEMORA_1	;otra demora completa
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_22			;este sera el vigesimo 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_7	;otras 7 demoras completas
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_24			;este sera el vigesimo 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
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_25			;este sera el vigesimo 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
	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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_26			;este sera el vigesimo 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
	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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_27			;este sera el vigesimo 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_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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_28			;este sera el vigesimo octavo 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
	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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_29			;este sera el vigesimo noveno PWM con dutty

	bsf	PORTC,2		;lo activamos (pon el que tu quieras)		
	bcf INTCON,T0IF
	nop				;relleno
	movlw	.85		;valor del offset del TMR0 para 136,80uS
	movwf	TMR0		;aqui empieza a contar
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_30			;este sera el trigesimo PWM con dutty

	bsf	PORTC,2		;lo activamos (pon el que tu quieras)		
	bcf INTCON,T0IF
	nop				;relleno
	movlw	.85		;valor del offset del TMR0 para 136,80uS
	movwf	TMR0		;aqui empieza a contar
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_31			;este sera el trigesimo primer 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
	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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_32			;este sera el trigesimo 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_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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_33			;este sera el trigesimo tercero 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
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_35			;este sera el trigesimo 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
	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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_37			;este sera el trigesimo 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_7	;otras 7 demoras completas
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_38			;este sera el trigesimo octavo 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
	call	DEMORA_1	;otra demora completa
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_39			;este sera el trigesimo 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_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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_40			;este sera el cuadragesimo 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
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_41			;este sera el cuadragesimo primer 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
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_43			;este sera el cuadragesimo 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_1	;otra demora completa
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_44			;este sera el cuadragesimo 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
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_45			;este sera el cuadragesimo 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_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
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_46			;este sera el cuadragesimo 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_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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_47			;este sera el cuadragesimo 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_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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_48			;este sera el cuadragesimo octavo 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
	call	DEMORA_1	;otra demora completa
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_49			;este sera el cuadragesimo 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
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_50			;este sera el quincuagesimo 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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_51			;este sera el quincuagesimo primer 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
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos


NEGATIVO_52			;este sera el quincuagesimo 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_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
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_53			;este sera el quincuagesimo 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_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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_54			;este sera el quincuagesimo 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_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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_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 esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_56			;este sera el quincuagesimo 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_1	;tambien llamamos demora completa
	call	DEMORA_1	;otra demora completa
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_57			;este sera el quincuagesimo 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_1	;tambien llamamos demora completa
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0_1	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_58			;este sera el quincuagesimo octavo 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
	bcf	PORTC,2		;acabo tiempo dutty, apagamos
	btfsc	PORTB,0  ;chequeamos si esta si cruzo por cero la senoidal de la red
    goto	CRUCE_0	;ya esta a 1
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

NEGATIVO_59			;este sera el quincuagesimo nooveno PWM con dutty

	nop			;estos nop son de relleno, despues pondremos mas o menos
	nop			
	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 esta a 1, aqui haremos lo que corresponda 
	btfss	INTCON,T0IF	;chequeamos si desbordo
	goto	$-3		;todavia no pasaron los 138uS, esperamos

	bcf PORTC,3	;sacamos de sincronizacion luego de cada onda senoidal completa

	goto POSITIVO_0 ;Empezamos nuevamente la onda


;*************************************************************
;CRUCE POR CERO
;*************************************************************

CRUCE_0
	bcf PORTC,1 ;bit de salida para onda positiva
	bcf PORTC,2 ;bit de salida para onda negativa
	bsf PORTC,3 ;bit de salida para SINCRONIZACION
	GOTO POSITIVO_0

CRUCE_0_1
	bcf PORTC,1 ;bit de salida para onda positiva
	bcf PORTC,2 ;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,3 ;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