LIST P=16F876
#INCLUDE <P16F876.INC>
PERIODO EQU 0ffh
TEMPORAL EQU 020H
TEMPORAL1 EQU 021H
DELAY_CONT EQU 022H
ORG 00H
GOTO INICIO
ORG 05H
;USA PWM DESDE NULO A MAXIMO Y DECREMENTA HASTA NULA
DELAY
MOVLW 4EH;(~.78)
MOVWF TMR0
DELAY_1
BTFSS INTCON,T0IF
GOTO DELAY_1
BCF INTCON,T0IF
DECFSZ DELAY_CONT,F
GOTO DELAY
RETURN
INICIO
CLRF PORTA
CLRF PORTB
CLRF PORTC
BSF STATUS,RP0
BCF STATUS,RP1;BANCO1
MOVLW 06H;(00000110)
MOVWF ADCON1
CLRF TRISA
CLRF TRISB
CLRF TRISC
MOVLW 0C7H;(11000111)
MOVWF OPTION_REG;TMR0 A 256
MOVLW PERIODO-1;CARGA PERIODO
MOVWF PR2
BCF STATUS,RP0;BANCO 0
BSF PORTB,1;PRUEBA
BUCLE
MOVLW 0CH
MOVWF CCP2CON;CONFIGURA CCP2 EN PWM
MOVLW 0ffh;MAXIMA POTENCIA DESEADA
MOVWF TEMPORAL
MOVWF TEMPORAL1
CLRF CCPR2L
MOVLW 07H
MOVWF T2CON;HABILITA Y PREDIVISOR A 16
AUMENTA
MOVLW 05H
MOVLW DELAY_CONT
CALL DELAY
INCF CCPR2L,F
DECFSZ TEMPORAL,F
GOTO AUMENTA
CALL ESPERA
DECREMENTA
MOVLW 05H
MOVWF DELAY_CONT
CALL DELAY
DECF CCPR2L,F
DECFSZ TEMPORAL1,F
GOTO DECREMENTA
CALL ESPERA
DESACTIVAPWM
CLRF CCP2CON
GOTO BUCLE
ESPERA ;RETARDO 5 S
MOVLW 0fah
MOVWF DELAY_CONT
CALL DELAY
RETURN
END