Está en la página 1de 21

PIC16F877 – Modulo CCP

II parcial

Modulo CCP
PIC16F877 – Modulo CCP

Modulo CCP
 Comparación
 Captura
 PWM

El PIC16F877 Dispone de dos módulos: CCP1 y CCP2 que trabajan de


manera muy similar.

CCPx CCPy
Captura Captura
Captura Comparador
Comparador Comparador
PWM PWM
PWM Captura
PWM Comparador
PIC16F877 – Modulo CCP1
PIC16F877 – Modulo CCP1

Modulo CCP1

Registro de trabajo: CCPR1H:CCPR1L (Banco 0)

Registro de control: CCP1CON (Banco 0)


PIC16F877 – Modulo CCP1

Modulo CCP1

MODO DE OPERACIÓN Captura Comparación PWM


DEL MÓDULO CCP1
RECURSO UTILIZADO Timer 1 Timer 1 Timer 2

BIS DE TRABAJO 16 16 10

REGISTROS ASOCIADOS CCP1CON CCP1CON CCP1CON


CCPR1H:CCPR1L CCPR1H:CCPR1L CCPR1L:CCP1CON<5:4>
TMR1 TMR1 PR2

PIN RC2/CCP1 RC2/CCP1 RC2/CCP1


PIC16F877 – Modulo CCP1 - Modo Captura

Modo Captura:

Los registros CCPR1H y CCPR1L capturan (almacenan) el valor


de 16 bit que contiene el timer 1. Cuando sucede un evento
en RC2/CCP1 (configurado como entrada)

Eventos:
- Un flanco ascendente
- Un flanco descendente
- Cada 4 flanco ascendente
- Cada 4 flanco descendente

Al efectuar una captura activa una bandera y puede generar


una interrupción
PIC16F877 – Modulo CCP1 - Modo Comparación

Modo Comparación:

Los registros CCPR1H y CCPR1L comparan su contenido de forma continua


con el valor del timer 1. Cuando coinciden anbos valores, el pin
RC2/CCP1 (configurado como salida); Acontece uno de los siguientes
eventos:

- Pasa a nivel alto.


- Pasa a nivel bajo.
- No cambia su estado pero puede producir una interrupción.
PIC16F877 – Modulo CCP1 - Modo PWM (modulación de ancho de pulso)

Modo PWM (modulación de ancho de pulso)

Genera un pulso a niveles lógicos, cuya anchura a nivel alto es


variable (ciclo útil)
PIC16F877 – Modulo CCP1 - Modo PWM (modulación de ancho de pulso)

Modo PWM (modulación de ancho de pulso)

Registros asociados:
- PR2 (Banco1)
- CCPR1L (Banco0)
- CCP1CON (Banco0)

La resolución del PWM es de 10bit

CCPR1L : CCP1CON<5,4>
PIC16F877 – Modulo CCP1 - Modo PWM (modulación de ancho de pulso)

  Modo PWM (modulación de ancho de pulso)

Periodo de PWM:

Donde:
𝑃.𝑆. 𝑑𝑒𝑙 𝑇𝑖𝑚𝑒𝑟2 Pre escalador del Timer 2 (1,4,16)
PIC16F877 – Modulo CCP1 - Modo PWM (modulación de ancho de pulso)

Modo PWM (modulación de ancho de pulso)


PIC16F877 – Modulo CCP1 - Modo PWM (modulación de ancho de pulso)

Modo PWM (modulación de ancho de pulso)

𝑇  𝑃𝑊𝑀 ∗ 𝑋 %=𝐶𝐶𝑃𝑅 1 𝐿:𝐶𝐶𝑃 1𝐶𝑂𝑁 <4,5>∗𝑇 𝑜𝑠𝑐 ∗(𝑃 . 𝑆 . 𝑑𝑒𝑙 𝑇𝑖𝑚𝑒𝑟2)

  𝑇 𝑃𝑊𝑀 ∗ 𝑋 %
𝐶𝐶𝑃𝑅 1 𝐿: 𝐶𝐶𝑃 1𝐶𝑂𝑁 < 4,5>¿
𝑇 𝑜𝑠𝑐 ∗ ¿ ¿

  𝐹 𝑜𝑠𝑐

𝑅𝑒𝑠𝑜𝑙𝑢𝑐𝑖𝑜𝑛=
𝐿𝑜𝑔
(
𝐹 𝑝𝑤𝑚 ∗( 𝑃 . 𝑆 . 𝑑𝑒𝑙 𝑇𝑖𝑚𝑒𝑟 2) )
𝐿𝑜𝑔( 2)
PIC16F877 – Modulo CCP1 - Modo PWM (modulación de ancho de pulso)

Modo PWM (modulación de ancho de pulso)


PIC16F877 – Modulo CCP1 - Modo PWM (modulación de ancho de pulso)

CCP1CON
- - CCP1X CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1M0

<3,2,1> CCP1M3:CCP1M0 Bits de selección del modo CCP a utilizar


CCP1M3:CCP1M2:CCP1M0 Modo de trabajo del modulo CCP
0000 Comparación/Captura/PWM desactivada (reset del módulo CCP)
0100 Modo de captura, cada flanco descendente
0101 Modo de captura, cada flanco ascendente
0110 Modo de captura, cada 4º flanco ascendente
0111 Modo de captura, cada 16º flanco ascendente
1000 Modo de comparación, CCPx=1 al igualarse (CCPxIF=1)
1001 Modo de comparación, CCPx=0 al igualarse (CCPxIF=1)
1010 Modo de comparación, genera interrupción al igualarse (CCPx
invariable, CCPxIF=1)
1011 Modo de comparación, lanza acción especial (CCPxIF=1, CCPx
invariable) CCP1 resetea TMR1 / CCP2 resetea TMR1 y lanza una
conversión A/D
11xx Modo PWM
PIC16F877 – Modulo CCP1 - Modo PWM (modulación de ancho de pulso)

Modo PWM (modulación de ancho de pulso)

Secuencia de configuración del PWM 1:

A continuación se resumen los pasos para realizar la


configuración inicial del PWM:

1. Ingresar al banco 1

2. Establecer el periodo del PWM cargando el valor al registro PR2.

3. Configurar como salida el pin RC2/CCP1, limpiando el bit TRISC<2>.

4. Ingresar al banco 0

5. Establecer el Ciclo de Trabajo del PWM cargando el valor al registro CCPR1L y


a los bits CCP1CON<5:4>.

6. Configurar el pre-escalador del Timer 2 y habilitar el Timer 2, escribiendo al


registro T2CON.

7. Configurar el módulo CCP1 para operación en modo PWM. Poniendo en alto los
bits CCP1CON <2:3>.
PIC16F877 – Modulo CCP1 - Modo PWM (modulación de ancho de pulso)

Ejemplo:
  Configure el PWM para una frecuencia de 5KHz usando un
cristal de 20MHz.

Solución:
PIC16F877 – Modulo CCP1 - Modo PWM (modulación de ancho de pulso)

Ejemplo:
  Configure el PWM para una frecuencia de 5KHz usando un
cristal de 20MHz.

Solución:
PIC16F877 – Modulo CCP1 - Modo PWM (modulación de ancho de pulso)

 Para el 25%

250 = 00111110 : 10

Para el 50%

500 = 01111101 : 00

Para el 100%

1000 = 11111010 : 00
PIC16F877 – Modulo CCP1 - Modo PWM (modulación de ancho de pulso)

CONFIGURAR_PWM PWM_25_%
BSF STATUS,RP0 BCF CCP1CON,5
BCF STATUS,RP1 BSF CCP1CON,4
MOVLW .249 MOVLW B' 00111110’
MOVWF PR2 MOVWF CCPR1L
; BCF TRISC,2 RETURN
BCF STATUS,RP0
MOVLW B'00000101'
MOVWF T2CON
CLRF CCPR1L
MOVLW B'00001100’ ; --0011XX
MOVWF CCP1CON
RETURN
PIC16F877 – Modulo CCP1 - Modo PWM (modulación de ancho de pulso)

PRACTICA 5
Objetivo: Implementar el modulo CCP1 en modo de trabajo como PWM
Puntaje: 3 puntos
Fecha: Próxima Semana Martes 18 de Febrero 2020
 Realizar el control de velocidad de un motor DC
 Utilizar dos (2) pulsadores para variar la velocidad
(aumentar - disminuir) 2pts
 Mostrar en la pantalla LCD: el valor binario de los
registros CCPR1L:CCP1CON<5,4>
 Mostrar el porcentaje (de 0% a 100%) de la velocidad en
3 display BCD 7 segmentos multiplexado con un solo
decodificador 7447/7448 2pt
 El valor debe ingresarse por medio de un teclado
matricial (3x4 o 4x4)
RECUERDE UTILIZAR EL TRANSISTOR CON SU DIODO DE PROTECCIÓN
DEBIDAMENTE.

Realizar los cálculos necesario, el programa en lenguaje


ensamblador y montaje del circuito en protoboar.
PIC16F877 – Modulo CCP

BIBLIOGRAFÍA

 Data Sheet: PIC16F87X Microcontrollers.pdf

 Libro: 1ra parte Microcontroladores PIC - Diseño Práctico de


Aplicaciones.pdf

 Libro: 2da Parte Microcontroladores PIC, Diseño Práctico de


Aplicaciones 16F87x.pdf

 Libro: Fundamentos y Aplicaciones con PIC Valdez Pallas.pdf

También podría gustarte