You are on page 1of 2

Mdulo CCP como comparador

Es necesario bajar la bandera de comparacin del CCP1 luego de realizada una


igualdad con el contador de Timer1?

LIST P=16F877A
INCLUDE <P16F877A.INC>
ORG 0x00
NOP
NOP

inicio
movlw 0xAF
movwf CCPR1H
movlw 0xC8
movwf CCPR1L ;valor de CCP de 20000
CLRF INTCON ; Deshabilito interrupciones
BSF STATUS, RP0 ; Banco 1
BCF TRISC, 2 ; Pin RC2/CCP1 SALIDA
CLRF PIE1 ; Deshabilito interrupciones de perifricos
BCF STATUS, RP0 ; Banco 0
CLRF PIR1 ; limpio flags de interrupciones de perifricos
MOVLW 0x08 ; Modo comparacin, a 1 el pin CCP1 cuando se
; iguale
MOVWF CCP1CON ;
BSF T1CON, TMR1ON ; Timer 1 ON

Evento_comparacion
BTFSS PIR1, CCP1IF
GOTO Evento_comparacion
BCF PIR1, CCP1IF

END
Realizando la prueba del programa con un valor a comparar igual 45000, se observ
que bajando la bandera por software coloca el puerto a 0, pero tambin puede bajarse
de manera automtica mediante hardware

Tambin se observ que el IDE no reconoce el comando BCF TRISC, CCP1 as


que es necesario colocarlo como salida del puerto RC2

You might also like