Estoy intentando realizar este prigrama que usa el modulo pwm para encender un led aplicando una potencia creciente, cuando llegue a esta esperar 5 segundos y decremental hasta que la potencia se nula, esperando otros 5 segundos; es mas que todo para familiarizarme con el modulo pwm. El problema es que al ejecutarlo, pues no tiene el efecto deseado simplemente se enciende el led con poca potencia, ¿alguien sabe en que puedo estar fallando? gracias de antemano
Codigo:
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