Saludos
He trabajado con el modulo PWM en el PIC16F877, pero en el 876 la verdad no, no he checado el dataSheet, pero teoricamente no debe cambiar, te doy el codigo ASM de un programita sencillo, ya funcionandote ya puedes incrementar y decrementar la frecuencia.
Espero te sirva, si te sirve ahi me habisas
bye
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
LIST p=16f874
ESTADO EQU 0x03
PUERTOC EQU 0x07
T2CON EQU 0x12 ;control de timer2
PR2 EQU 0x12 ;periodo del timer2 (banco1)
CCP1CON EQU 0x17 ;modulo Captura/Comparación/PWM
CCPR1L EQU 0x15 ;parte alta del duty cycle
org 0
goto inicio
org 5
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
inicio bsf ESTADO,5
bcf PUERTOC,2 ;C.2 sale la señal PWM
movlw 0x18 ;Frecuencia de 33 Khz=0x1D
movwf PR2 ;periodo del PWM
bcf ESTADO,5
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
movlw 0x2C ;Empieza en el bit4 y bit5 para el ciclo de trabajo,bit0-bit3 modo de funciponamiento
movwf CCP1CON ;duty cycle, PWM off ciclo de trabajo
movlw 0x0C ;0x0F
movwf CCPR1L ;duty cycle
movlw 0x04 ;(bit2) on timer2, (bit0, bit1)prescaler
movwf T2CON
espera goto espera
end