SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
MICROCONTROLADORES II
MÓDULO CCPMÓDULO CCP
(CAPTURA/COMPARACIÓN/PWM)
TEMA 3
PROF. LUIS ZURITA
MODO CAPTURA
• En este modo CCP1 y CCP2 funcionan de forma idéntica. (En los
nombres de registros a continuación x=1,2)
• En este modo la pareja de registros CCPRxH:CCPRxL captura el
valor de 16 bits que contiene TMR1 cuando sucede un evento en
la pata RCy/CCPx del PORTC (estos pines deben configurarse
como entradas con un 1 en TRISC).
• Los eventos son los configurados en CCPxM3:CCPxM0 del
registro de control CCPxCON, para el modo Captura.
• Los eventos son los configurados en CCPxM3:CCPxM0 del
registro de control CCPxCON, para el modo Captura.
• Al realizar la captura se activa el bit de interrupción CCPxIF y si
la interrupción está habilitada mediante CCPxIE, se genera una
interrupción al cargar el CCPRxH:CCPRxL con TMR1.
• TMR1 en este modo debe estar configurado como temporizador o
contador síncrono, nunca en modo asíncrono.
• Al cambiar la condiciones de funcionamiento dentro del modo
captura conviene desactivar el módulo primero.
Prof. Luis Zurita Microcontroladores II
FLUJOGRAMA CCP1 CAPTURA
Prof. Luis Zurita Microcontroladores II
MODO COMPARACIÓN
• Los registros CCPRxH:CCPRxL comparan su valor de forma
continua con el valor de TMR1. Cuando coinciden el pin RCy/CCPx
del PORTC (configurado como salida) sufre un evento.
• Los eventos son los configurados en CCPxM3:CCPxM0 del
registro de control CCPxCON para el modo Comparación.
• Al coincidir CCPRxH:CCPRxL y TMR1 se activa el bit de
interrupción CCPxIF y si la interrupción está habilitada mediante
CCPxIE, se genera un interrupción.
interrupción CCPxIF y si la interrupción está habilitada mediante
CCPxIE, se genera un interrupción.
• TMR1 en este modo debe estar configurado como temporizador o
contador síncrono, nunca en modo asíncrono.
• Si se ha seleccionado el modo disparo especial, el módulo CCP1 y
CCP2 realizan tareas distintas. El CCP1 pone a 0 el TMR1 y el
CCPR1 funciona como un Registro de Período capaz de generar
periódicamente interrupciones. El CCP2 pone a 0 el TMR1 y
además inicia una conversión del A/D, con lo que se pueden
realizar conversiones periódicas. Aunque TMR1=0 no se genera
interrupción del timer1.
Prof. Luis Zurita Microcontroladores II
FLUJOGRAMA CCP1 COMPARACIÓN
Prof. Luis Zurita Microcontroladores II
MODO PWM
• Con este modo se consiguen impulsos, cuya anchura de nivel alto es de
duración variable y sirven para control de motores y generación de
señales.
• Se utiliza un módulo CCP, el timer2 y un pin RCy/CCPx de salida.
• El comparador entre el valor PR2 y TMR2 cuando detecta la igualdad:
1. Activa ‘1’ el flip-flop de salida.
2. Resetea TMR2.
3. El valor de CCPRxL se carga en CCPRxH.3. El valor de CCPRxL se carga en CCPRxH.
• El periodo de la señal se calcula como:
Periodo=[(PR2)+1]*4*Tosc*(Valor predivisor TMR2)
• Se comparan los valores de 10 bits ([CCPRxH:CCP1CON(5:4)]) y TMR2
concatenados con los dos bits de menor peso del reloj interno) cuando
son iguales:
1. Desactiva ‘0’ el flip-flop de salida.
2. No resetea TMR2
• El ciclo activo es:
Ancho pulso=(CCPRxL:CCP1CON(5:4))*Tosc*(V. predivisor TMR2)
Prof. Luis Zurita Microcontroladores II
FLUJOGRAMA PWM
Prof. Luis Zurita Microcontroladores II
Bit 7-6: No implementados: Se lee como "0"
CCP1CON
U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
--- CCP1X CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1M0
Bit 7 Bit 0
Bit 7-6: No implementados: Se lee como "0"
Bit 5-4: CCP1X: CCP1Y: bit menos significativos de PWM
Modo Captura sin usar
Modo Comparación sin usar
Modo PWM: Estos dos bit son los menos significativos del ciclo
de PWM.
Los ocho bits más significativos se encuentran en CCPR1L.
Bit 3-0: CCP1M3-.CCP1M0; bit de selección del modo de
trabajo del módulo comparador CCP1.
Prof. Luis Zurita Microcontroladores II
CCP1CON
Prof. Luis Zurita Microcontroladores II
TABLAS MÓDULO CCP
Modo CCP Recurso de Timer
Captura Timer1
Comparación Timer1
PWM Timer2
Prof. Luis Zurita Microcontroladores II
EJERCICIOS CCPZonadeConfiguración
Se configuran los bancos
Se configura el módulo CCP
Se configuran las
Interrupciones (opcional)
Captura:
Medir período,
Ton, Toff
Captura:
Comparación:
Setpoint 16 bits
PWM:
Genera señal
ZonadeConfiguración
Interrupciones (opcional)
Se regresa al Banco 0
Resto del programa
(Tratamiento de la información)
Captura:
Comparaciones
Y acciones
Comparación:
Acción sobre RCx
PWM:
En base a acción
Generar Señal
Prof. Luis Zurita Microcontroladores II
El compilador C contiene un conjunto de funciones para el
manejo del módulo CCP.
• Para leer el contenido de un módulo CCP se utiliza (x= 1 ó 2):
valor=CCP_x;
donde valor es un entero de 16 bits que se carga con el valor del
CCP respectivo.
• Para escribir el contenido de un módulo CCP se utiliza:
CCP_x=valor;
MÓDULO CCP EN LENGUAJE C
CCP_x=valor;
donde valor es un entero de 16 bits que se carga con el valor del
CCP respectivo.
• Configuración del módulo CCPX:
setup_ccpx (modo);
modo hace referencia a los bits CCPxM3:CCPxM0 del registro
CCPxCON.
El modo permite configurar al PIC para que trabaje en modo PWM,
Captura o comparación.
Prof. Luis Zurita Microcontroladores II
MÓDULO CCP EN LENGUAJE C
Setup_CCPx(modo) Modo Registro CCPxCON
CCP_OFF Deshabilitación 00000000
CCP_CAPTURE_FE Captura por flanco de bajada 00000100
CCP_CAPTURE_RE Captura por flanco de subida 00000101
CCP_CAPTURE_DIV_4 Captura cada 4 pulsos 00000110
CCP_CAPTURE_DIV_16 Captura cada 16 pulsos 00000111CCP_CAPTURE_DIV_16 Captura cada 16 pulsos 00000111
CCP_COMPARE_SET_ON_MATCH Salida a 1 en comparación 00001000
CCP_COMPARE_CLR_ON_MATCH Salida a 0 en comparación 00001001
CCP_COMPARE_INT Interrupción en comparación 00001010
CCP_COMPARE_RESET_TIMER Reset TMR1 en comparación 00001011
CCP_PWM Modo PWM habilitado 00001100
Prof. Luis Zurita Microcontroladores II
• Los valores para comparar se fijan en los registros
CCPRx. En el compilador C, estos registros están
definidos en el fichero include, por ejemplo para el
16F87x.h:
MÓDULO CCP EN LENGUAJE C
long CCP_1; long CCP_2;
#byte CCP_1=0x15 #byte CCP_2=0x1B#byte CCP_1=0x15 #byte CCP_2=0x1B
#byte CCP_1_LOW=0x15 #byte CCP_2_LOW=0x1B
#byte CCP_1_HIGH=0x16 #byte CCP_2_HIGH=0x1C
set_pwmx_duty(valor);
valor: dato de 8 o 16 bits (10 bits efectivos) que determina el
ciclo de trabajo. Este valor, junto con el valor del preescaler
del TMR2, determina el valor del ciclo de trabajo. En la
configuración del TIMER2, el postcaler debe valer 1.
Prof. Luis Zurita Microcontroladores II
Ejercicio 1. Medición de Período de una señal
Sea una señal cuadrada de frecuencia F, Para medir el período (1/F),
se deben tomar dos muestras, una al inicio de la señal y una al final
del período que se desea determinar, sea en el flanco ascendente o
en el flanco descendente:
F
Prof. Luis Zurita Microcontroladores II
F
FMedida inicial Medida Final
Período (T) = Medida Final – Medida Inicial (seg)
Frecuencia (F)= 1 / T (Hz)
Normalmente se recomienda utilizar la interrupción por captura para
realizar la medición del período de una señal. A continuación el
lenguaje c:
#include <16f877A.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#define use_portD_lcd_true
#include <lcd.c>
#byte PIR1=0x0C
int1 nuevopulso=0; //contador de pulsos (inicial, final)
int16 TFF=0,TFI=0,TFTOTAL=0; //Tiempo flancos
float APERIODO=0.0; //Valor final del ancho de pulso
int1 cambio=0; //Cambio de flanco de disparo
#int_ccp1 //Función interrupción por Captura
void ccp1_int(){
Ejercicio 1. Medición de Período de una señal
void ccp1_int(){
if(cambio==0){ //Flanco de subida. Lectura inicial
TFI=CCP_1; //Carga del valor del registro CCPR1 en flanco subida
//setup_ccp1(CCP_CAPTURE_FE); //Configuración modo Captura en flanco de bajada
cambio=1; //Control de cambio de flanco inicial a final
} else { //Flanco Final
TFF=CCP_1; //Carga del valor del registro CCPR1 en flanco bajada
//setup_ccp1(CCP_CAPTURE_RE); //Configuración modo Captura en flanco de subida
cambio=0; //Control de cambio de flanco
if(nuevopulso==0){ //Fin de pulso...
nuevopulso=1; //pulso a medir
}
}
}
Prof. Luis Zurita Microcontroladores II
void main() {
lcd_init();
setup_timer_1(T1_INTERNAL); //Configuración TMR1
setup_ccp1(CCP_CAPTURE_RE);
//Configuración modo Captura en flanco de subida
cambio = 0; //Control de cambio a 0
enable_interrupts(int_ccp1); //Habilitación interrupción modulo CCP
enable_interrupts(global); //Habilitación interrupción global
Ejercicio 1. Medición de Período de una señal
while(true) {
if(nuevopulso==1){ //¿Pulso nuevo?
TFTOTAL=(TFF-TFI); //Período total.
APERIODO = TFTOTAL*1.0; //Período total en microsegundos (a 4MHz:1us)
printf(lcd_putc,"fMED. FRECUENCIAn");
printf(lcd_putc,"T = %6.1fuS ", APERIODO);
nuevopulso=0; //Periodo medido, espera nuevo
}
}
}
Prof. Luis Zurita Microcontroladores II
Ejercicio 1. Medición de Período de una señal
Prof. Luis Zurita Microcontroladores II
• El CCP en modo comparación, compara
continuamente el valor del TIMER1 con el valor
precargado en el registro CCPR2H:L; Cuando son
iguales se produce un cambio de nivel en el pin CCP
correspondiente y se puede activar la interrupción
por comparación del módulo CCP si la misma ha sido
Ejercicio 2. Generación de una señal cuadrada
mediante la Comparación con el CCP2
por comparación del módulo CCP si la misma ha sido
habilitada.
• En cada cambio de nivel del pin CCP se debe cargar el
valor para obtener una señal cuadrada con un duty
del 50%. Haga los cálculos para generar una señal de
2 kHz.
Prof. Luis Zurita Microcontroladores II
#include <16f877A.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
int1 cambio=0; //Variable de control de cambio
#int_ccp2
void ccp2_int(){ //Función de interrupción
if(++cambio==1){ //cambio++;
setup_ccp2(CCP_COMPARE_CLR_ON_MATCH); //Modo Comparación, cambio a 0
} else{
setup_ccp2(CCP_COMPARE_SET_ON_MATCH); //Modo Comparación, cambio a 1
}
Ejercicio 2. Generación de una señal cuadrada
mediante la Comparación con el CCP2
}
set_timer1(0); //Borrado de TMR1
CCP_2 = 199; //Inicialización del registro CCPR2 para un Duty del 50%
}
void main() {
disable_interrupts(global);
setup_timer_1(T1_INTERNAL | T1_DIV_BY_1); //Configuración TMR1
setup_ccp2(CCP_COMPARE_SET_ON_MATCH); //Configuración inicial modulo CCP
CCP_2 = 199; //Inicialización del registro CCPR2 para un Duty del 50%
enable_interrupts(int_ccp2); //Habilitación interrupción modulo CCP2
enable_interrupts(global); //Habilitación interrupción general
while (TRUE){
}
}
Prof. Luis Zurita Microcontroladores II
Ejercicio 2. Generación de una señal cuadrada
mediante la Comparación con el CCP2
Prof. Luis Zurita Microcontroladores II
SEÑAL PWM
Periodo=[(PR2)+1]*4*Tosc*(Valor predivisor TMR2)
Duty Cycle=(CCPRxL:CCP1CON(5:4))*Tosc*(V. predivisor TMR2)
Prof. Luis Zurita Microcontroladores II
SEÑAL PWM
La resolución máxima en bits viene dada por:
Nota: Si el valor del duty cycle de la PWM es más
largo que el período de la PWM, el pin CCP1 no
podrá ser puesto a cero
Prof. Luis Zurita Microcontroladores II
• En el siguiente ejercicio se va a generar una señal PWM
con cuatro coeficientes cíclicos distintos que dependen
de dos interruptores que seleccionan el modo de la señal
(25%, 50%, 60% y 80%). El modo elegido debe mostrarse
en una pantalla LCD:
#include <16F877A.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
Ejercicio 3. Generación de una señal PWM
mediante el CCP1
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#use fast_io(c)
#use fast_io(d)
#use standard_io(a)
#define use_portd_lcd_true
#include <lcd.c>
byte A=0;
Prof. Luis Zurita Microcontroladores II
void main(){
set_tris_c(0xF0);
set_tris_d(0x00);
setup_timer_2(T2_DIV_BY_1,224,1);
setup_ccp1(CCP_PWM);
lcd_init();
while(TRUE){
A=input_a();
switch(A){
set_pwm1_duty(0x2EE);
printf(lcd_putc,"fPORC= 60");
break;
case (3):
set_pwm1_duty(0x304);
printf(lcd_putc,"fPORC= 80");
break;}
}
}
Ejercicio 3. Generación de una señal PWM
mediante el CCP1. Continuación.
switch(A){
case (0):
set_pwm1_duty(0xC8);
printf(lcd_putc,"fPORC= 25");
break;
case (1):
set_pwm1_duty(0x1F4);
printf(lcd_putc,"fPORC= 50");
break;
case (2):
}
Prof. Luis Zurita Microcontroladores II
Ejercicio 3. Generación de una señal PWM
mediante el CCP1
Prof. Luis Zurita Microcontroladores II
Ejercicio 3. Generación de una señal PWM
mediante el CCP1
Prof. Luis Zurita Microcontroladores II

Más contenido relacionado

La actualidad más candente

Microprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersMicroprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersmarco calderon layme
 
DAC , Digital to analog Converter
DAC , Digital to analog ConverterDAC , Digital to analog Converter
DAC , Digital to analog ConverterHossam Zein
 
Microcontroller 8051 and its interfacing
Microcontroller 8051 and its interfacingMicrocontroller 8051 and its interfacing
Microcontroller 8051 and its interfacingAnkur Mahajan
 
Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesLuis Zurita
 
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN CEJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN CLuis Zurita
 
TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"Diego Rojas Ruiz
 
Presentaciones plc
Presentaciones plcPresentaciones plc
Presentaciones plcFROYLAM
 
Manejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreManejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreLuis Zurita
 
Medida de condensadores y bobinas
Medida de condensadores y bobinasMedida de condensadores y bobinas
Medida de condensadores y bobinasJomicast
 
Dispositivos eléctricos.
 Dispositivos eléctricos. Dispositivos eléctricos.
Dispositivos eléctricos.MichelleMorag98
 

La actualidad más candente (20)

Microprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersMicroprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timers
 
Arduino: Teclado matricial
Arduino: Teclado matricialArduino: Teclado matricial
Arduino: Teclado matricial
 
DAC , Digital to analog Converter
DAC , Digital to analog ConverterDAC , Digital to analog Converter
DAC , Digital to analog Converter
 
Microcontroller 8051 and its interfacing
Microcontroller 8051 and its interfacingMicrocontroller 8051 and its interfacing
Microcontroller 8051 and its interfacing
 
Comunicación Serie
Comunicación SerieComunicación Serie
Comunicación Serie
 
Timers and counters of microcontroller 8051
Timers and counters of microcontroller 8051Timers and counters of microcontroller 8051
Timers and counters of microcontroller 8051
 
PIC 18F4550... 2021.pdf
PIC 18F4550... 2021.pdfPIC 18F4550... 2021.pdf
PIC 18F4550... 2021.pdf
 
Curso de microcontroladores pic18 f4550
Curso de microcontroladores pic18 f4550Curso de microcontroladores pic18 f4550
Curso de microcontroladores pic18 f4550
 
Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupciones
 
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN CEJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
 
El microcontrolador PIC16F877
El microcontrolador PIC16F877El microcontrolador PIC16F877
El microcontrolador PIC16F877
 
TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"
 
Presentaciones plc
Presentaciones plcPresentaciones plc
Presentaciones plc
 
Timer0 PIC16F84A
Timer0 PIC16F84ATimer0 PIC16F84A
Timer0 PIC16F84A
 
Manejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreManejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladore
 
Semana dos
Semana dosSemana dos
Semana dos
 
Medida de condensadores y bobinas
Medida de condensadores y bobinasMedida de condensadores y bobinas
Medida de condensadores y bobinas
 
Dispositivos eléctricos.
 Dispositivos eléctricos. Dispositivos eléctricos.
Dispositivos eléctricos.
 
Semaforo, deposito de agua y bombas alternadas ..plc
Semaforo, deposito de agua y bombas alternadas ..plcSemaforo, deposito de agua y bombas alternadas ..plc
Semaforo, deposito de agua y bombas alternadas ..plc
 
Diodo scr
Diodo scrDiodo scr
Diodo scr
 

Destacado

Guía rápidalcd y teclado
Guía rápidalcd y tecladoGuía rápidalcd y teclado
Guía rápidalcd y tecladoLuis Zurita
 
Curso Micro Tema 3 2
Curso Micro Tema 3 2Curso Micro Tema 3 2
Curso Micro Tema 3 2Luis Zurita
 
Curso Micro Tema 3
Curso Micro Tema 3Curso Micro Tema 3
Curso Micro Tema 3Luis Zurita
 
MICROCONTROLADORES II EN C. TEMA 2
MICROCONTROLADORES II EN C. TEMA 2MICROCONTROLADORES II EN C. TEMA 2
MICROCONTROLADORES II EN C. TEMA 2Luis Zurita
 
Microcontroladores ii en c. tema 4
Microcontroladores ii en c. tema 4Microcontroladores ii en c. tema 4
Microcontroladores ii en c. tema 4Luis Zurita
 
MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5Luis Zurita
 
MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3Luis Zurita
 
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN CMANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN CLuis Zurita
 
TALLER NORMAS APA
TALLER NORMAS APATALLER NORMAS APA
TALLER NORMAS APALuis Zurita
 
CIRCUITOS SECUENCIALES
CIRCUITOS SECUENCIALESCIRCUITOS SECUENCIALES
CIRCUITOS SECUENCIALESLuis Zurita
 
PROTOCOLO MODBUS
PROTOCOLO MODBUSPROTOCOLO MODBUS
PROTOCOLO MODBUSLuis Zurita
 
Aprendizaje Significativo
Aprendizaje SignificativoAprendizaje Significativo
Aprendizaje SignificativoLuis Zurita
 
Plan De Evaluacion
Plan De EvaluacionPlan De Evaluacion
Plan De EvaluacionLuis Zurita
 
Presentacion proyecto final micro2
Presentacion proyecto final micro2Presentacion proyecto final micro2
Presentacion proyecto final micro2Luis Zurita
 

Destacado (20)

Micro2 tema 4
Micro2 tema 4Micro2 tema 4
Micro2 tema 4
 
Micro2 tema 5
Micro2 tema 5Micro2 tema 5
Micro2 tema 5
 
Guía rápidalcd y teclado
Guía rápidalcd y tecladoGuía rápidalcd y teclado
Guía rápidalcd y teclado
 
Micro2 tema 1
Micro2 tema 1Micro2 tema 1
Micro2 tema 1
 
Curso Micro Tema 3 2
Curso Micro Tema 3 2Curso Micro Tema 3 2
Curso Micro Tema 3 2
 
Curso Micro Tema 3
Curso Micro Tema 3Curso Micro Tema 3
Curso Micro Tema 3
 
MICROCONTROLADORES II EN C. TEMA 2
MICROCONTROLADORES II EN C. TEMA 2MICROCONTROLADORES II EN C. TEMA 2
MICROCONTROLADORES II EN C. TEMA 2
 
Microcontroladores ii en c. tema 4
Microcontroladores ii en c. tema 4Microcontroladores ii en c. tema 4
Microcontroladores ii en c. tema 4
 
MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5
 
MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3
 
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN CMANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
 
TALLER NORMAS APA
TALLER NORMAS APATALLER NORMAS APA
TALLER NORMAS APA
 
CIRCUITOS SECUENCIALES
CIRCUITOS SECUENCIALESCIRCUITOS SECUENCIALES
CIRCUITOS SECUENCIALES
 
PROTOCOLO MODBUS
PROTOCOLO MODBUSPROTOCOLO MODBUS
PROTOCOLO MODBUS
 
Tema3 Microii
Tema3 MicroiiTema3 Microii
Tema3 Microii
 
Aprendizaje Significativo
Aprendizaje SignificativoAprendizaje Significativo
Aprendizaje Significativo
 
Plan De Evaluacion
Plan De EvaluacionPlan De Evaluacion
Plan De Evaluacion
 
Clase 3 cdii
Clase 3 cdiiClase 3 cdii
Clase 3 cdii
 
Clase 5 cdii
Clase 5 cdiiClase 5 cdii
Clase 5 cdii
 
Presentacion proyecto final micro2
Presentacion proyecto final micro2Presentacion proyecto final micro2
Presentacion proyecto final micro2
 

Similar a Micro2 tema 3 (20)

Ccp2009170309
Ccp2009170309Ccp2009170309
Ccp2009170309
 
Modulos ccp v2(ring telefono)
Modulos ccp v2(ring telefono)Modulos ccp v2(ring telefono)
Modulos ccp v2(ring telefono)
 
Ccpx
CcpxCcpx
Ccpx
 
Curso de microcontroladores capitulo 07
Curso de microcontroladores capitulo 07Curso de microcontroladores capitulo 07
Curso de microcontroladores capitulo 07
 
Compare capture pwm mode 5
Compare capture pwm mode 5Compare capture pwm mode 5
Compare capture pwm mode 5
 
Pwm
PwmPwm
Pwm
 
Clase Timer 1
Clase Timer 1Clase Timer 1
Clase Timer 1
 
Módulo Timer 1 del PIC16F887
Módulo Timer 1 del PIC16F887Módulo Timer 1 del PIC16F887
Módulo Timer 1 del PIC16F887
 
Pwm
PwmPwm
Pwm
 
Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06
 
Interrupciones y Temporizadores
Interrupciones y TemporizadoresInterrupciones y Temporizadores
Interrupciones y Temporizadores
 
Ejercicio 07 Timers
Ejercicio 07 TimersEjercicio 07 Timers
Ejercicio 07 Timers
 
Interrupciones y Temporizadores pucesi
Interrupciones y Temporizadores   pucesiInterrupciones y Temporizadores   pucesi
Interrupciones y Temporizadores pucesi
 
final PWM
final PWMfinal PWM
final PWM
 
In terrupciones pic
In terrupciones picIn terrupciones pic
In terrupciones pic
 
Ejemplos De Ccp
Ejemplos De CcpEjemplos De Ccp
Ejemplos De Ccp
 
Timers
TimersTimers
Timers
 
Adc y usart pic16 f887
Adc y usart pic16 f887Adc y usart pic16 f887
Adc y usart pic16 f887
 
preinforme PWM
preinforme PWMpreinforme PWM
preinforme PWM
 
Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador
Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizadorLab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador
Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador
 

Más de Luis Zurita

Grupos micro2 13
Grupos micro2 13Grupos micro2 13
Grupos micro2 13Luis Zurita
 
Notas def electronica
Notas def electronicaNotas def electronica
Notas def electronicaLuis Zurita
 
Notas proyecto3 iyc
Notas proyecto3 iycNotas proyecto3 iyc
Notas proyecto3 iycLuis Zurita
 
Notas definitivas iyc2013
Notas definitivas iyc2013Notas definitivas iyc2013
Notas definitivas iyc2013Luis Zurita
 
Proyecto 2 electronica
Proyecto 2 electronicaProyecto 2 electronica
Proyecto 2 electronicaLuis Zurita
 
Acumuladas electronica
Acumuladas electronicaAcumuladas electronica
Acumuladas electronicaLuis Zurita
 
Proyecto2 notas iyc2013
Proyecto2 notas iyc2013Proyecto2 notas iyc2013
Proyecto2 notas iyc2013Luis Zurita
 
Acumuladas iyc2013
Acumuladas iyc2013Acumuladas iyc2013
Acumuladas iyc2013Luis Zurita
 
Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesLuis Zurita
 
Labmicro tsu 2013
Labmicro tsu 2013Labmicro tsu 2013
Labmicro tsu 2013Luis Zurita
 

Más de Luis Zurita (20)

Pevmicroi ieo
Pevmicroi ieoPevmicroi ieo
Pevmicroi ieo
 
Pevmicroii13 2
Pevmicroii13 2Pevmicroii13 2
Pevmicroii13 2
 
Pevmicro1 t2 13
Pevmicro1 t2 13Pevmicro1 t2 13
Pevmicro1 t2 13
 
Pev electronica
Pev electronicaPev electronica
Pev electronica
 
Grupos micro2 13
Grupos micro2 13Grupos micro2 13
Grupos micro2 13
 
Pevmicro1 t2 13
Pevmicro1 t2 13Pevmicro1 t2 13
Pevmicro1 t2 13
 
Pevmicroii13 2
Pevmicroii13 2Pevmicroii13 2
Pevmicroii13 2
 
Notas def electronica
Notas def electronicaNotas def electronica
Notas def electronica
 
Notas proyecto3 iyc
Notas proyecto3 iycNotas proyecto3 iyc
Notas proyecto3 iyc
 
Notas definitivas iyc2013
Notas definitivas iyc2013Notas definitivas iyc2013
Notas definitivas iyc2013
 
Proyecto 2 electronica
Proyecto 2 electronicaProyecto 2 electronica
Proyecto 2 electronica
 
Acumuladas electronica
Acumuladas electronicaAcumuladas electronica
Acumuladas electronica
 
Pevmicro2013
Pevmicro2013Pevmicro2013
Pevmicro2013
 
Proyecto2 notas iyc2013
Proyecto2 notas iyc2013Proyecto2 notas iyc2013
Proyecto2 notas iyc2013
 
Acumuladas iyc2013
Acumuladas iyc2013Acumuladas iyc2013
Acumuladas iyc2013
 
TMR0 Y RB0_INT
TMR0 Y RB0_INTTMR0 Y RB0_INT
TMR0 Y RB0_INT
 
Eomicro2013
Eomicro2013Eomicro2013
Eomicro2013
 
Pevmicro2013
Pevmicro2013Pevmicro2013
Pevmicro2013
 
Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupciones
 
Labmicro tsu 2013
Labmicro tsu 2013Labmicro tsu 2013
Labmicro tsu 2013
 

Último

1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...JoseMartinMalpartida1
 
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptxPLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptxCamuchaCrdovaAlonso
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primariaWilian24
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxpaogar2178
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024IES Vicent Andres Estelles
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...jlorentemartos
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfJonathanCovena1
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfcarolinamartinezsev
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresJonathanCovena1
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Katherine Concepcion Gonzalez
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptAlberto Rubio
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024IES Vicent Andres Estelles
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuelabeltranponce75
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxlclcarmen
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalJonathanCovena1
 

Último (20)

1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptxPLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docx
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por Valores
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuela
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 

Micro2 tema 3

  • 1. MICROCONTROLADORES II MÓDULO CCPMÓDULO CCP (CAPTURA/COMPARACIÓN/PWM) TEMA 3 PROF. LUIS ZURITA
  • 2. MODO CAPTURA • En este modo CCP1 y CCP2 funcionan de forma idéntica. (En los nombres de registros a continuación x=1,2) • En este modo la pareja de registros CCPRxH:CCPRxL captura el valor de 16 bits que contiene TMR1 cuando sucede un evento en la pata RCy/CCPx del PORTC (estos pines deben configurarse como entradas con un 1 en TRISC). • Los eventos son los configurados en CCPxM3:CCPxM0 del registro de control CCPxCON, para el modo Captura. • Los eventos son los configurados en CCPxM3:CCPxM0 del registro de control CCPxCON, para el modo Captura. • Al realizar la captura se activa el bit de interrupción CCPxIF y si la interrupción está habilitada mediante CCPxIE, se genera una interrupción al cargar el CCPRxH:CCPRxL con TMR1. • TMR1 en este modo debe estar configurado como temporizador o contador síncrono, nunca en modo asíncrono. • Al cambiar la condiciones de funcionamiento dentro del modo captura conviene desactivar el módulo primero. Prof. Luis Zurita Microcontroladores II
  • 3. FLUJOGRAMA CCP1 CAPTURA Prof. Luis Zurita Microcontroladores II
  • 4. MODO COMPARACIÓN • Los registros CCPRxH:CCPRxL comparan su valor de forma continua con el valor de TMR1. Cuando coinciden el pin RCy/CCPx del PORTC (configurado como salida) sufre un evento. • Los eventos son los configurados en CCPxM3:CCPxM0 del registro de control CCPxCON para el modo Comparación. • Al coincidir CCPRxH:CCPRxL y TMR1 se activa el bit de interrupción CCPxIF y si la interrupción está habilitada mediante CCPxIE, se genera un interrupción. interrupción CCPxIF y si la interrupción está habilitada mediante CCPxIE, se genera un interrupción. • TMR1 en este modo debe estar configurado como temporizador o contador síncrono, nunca en modo asíncrono. • Si se ha seleccionado el modo disparo especial, el módulo CCP1 y CCP2 realizan tareas distintas. El CCP1 pone a 0 el TMR1 y el CCPR1 funciona como un Registro de Período capaz de generar periódicamente interrupciones. El CCP2 pone a 0 el TMR1 y además inicia una conversión del A/D, con lo que se pueden realizar conversiones periódicas. Aunque TMR1=0 no se genera interrupción del timer1. Prof. Luis Zurita Microcontroladores II
  • 5. FLUJOGRAMA CCP1 COMPARACIÓN Prof. Luis Zurita Microcontroladores II
  • 6. MODO PWM • Con este modo se consiguen impulsos, cuya anchura de nivel alto es de duración variable y sirven para control de motores y generación de señales. • Se utiliza un módulo CCP, el timer2 y un pin RCy/CCPx de salida. • El comparador entre el valor PR2 y TMR2 cuando detecta la igualdad: 1. Activa ‘1’ el flip-flop de salida. 2. Resetea TMR2. 3. El valor de CCPRxL se carga en CCPRxH.3. El valor de CCPRxL se carga en CCPRxH. • El periodo de la señal se calcula como: Periodo=[(PR2)+1]*4*Tosc*(Valor predivisor TMR2) • Se comparan los valores de 10 bits ([CCPRxH:CCP1CON(5:4)]) y TMR2 concatenados con los dos bits de menor peso del reloj interno) cuando son iguales: 1. Desactiva ‘0’ el flip-flop de salida. 2. No resetea TMR2 • El ciclo activo es: Ancho pulso=(CCPRxL:CCP1CON(5:4))*Tosc*(V. predivisor TMR2) Prof. Luis Zurita Microcontroladores II
  • 7. FLUJOGRAMA PWM Prof. Luis Zurita Microcontroladores II
  • 8. Bit 7-6: No implementados: Se lee como "0" CCP1CON U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 --- CCP1X CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1M0 Bit 7 Bit 0 Bit 7-6: No implementados: Se lee como "0" Bit 5-4: CCP1X: CCP1Y: bit menos significativos de PWM Modo Captura sin usar Modo Comparación sin usar Modo PWM: Estos dos bit son los menos significativos del ciclo de PWM. Los ocho bits más significativos se encuentran en CCPR1L. Bit 3-0: CCP1M3-.CCP1M0; bit de selección del modo de trabajo del módulo comparador CCP1. Prof. Luis Zurita Microcontroladores II
  • 9. CCP1CON Prof. Luis Zurita Microcontroladores II
  • 10. TABLAS MÓDULO CCP Modo CCP Recurso de Timer Captura Timer1 Comparación Timer1 PWM Timer2 Prof. Luis Zurita Microcontroladores II
  • 11. EJERCICIOS CCPZonadeConfiguración Se configuran los bancos Se configura el módulo CCP Se configuran las Interrupciones (opcional) Captura: Medir período, Ton, Toff Captura: Comparación: Setpoint 16 bits PWM: Genera señal ZonadeConfiguración Interrupciones (opcional) Se regresa al Banco 0 Resto del programa (Tratamiento de la información) Captura: Comparaciones Y acciones Comparación: Acción sobre RCx PWM: En base a acción Generar Señal Prof. Luis Zurita Microcontroladores II
  • 12. El compilador C contiene un conjunto de funciones para el manejo del módulo CCP. • Para leer el contenido de un módulo CCP se utiliza (x= 1 ó 2): valor=CCP_x; donde valor es un entero de 16 bits que se carga con el valor del CCP respectivo. • Para escribir el contenido de un módulo CCP se utiliza: CCP_x=valor; MÓDULO CCP EN LENGUAJE C CCP_x=valor; donde valor es un entero de 16 bits que se carga con el valor del CCP respectivo. • Configuración del módulo CCPX: setup_ccpx (modo); modo hace referencia a los bits CCPxM3:CCPxM0 del registro CCPxCON. El modo permite configurar al PIC para que trabaje en modo PWM, Captura o comparación. Prof. Luis Zurita Microcontroladores II
  • 13. MÓDULO CCP EN LENGUAJE C Setup_CCPx(modo) Modo Registro CCPxCON CCP_OFF Deshabilitación 00000000 CCP_CAPTURE_FE Captura por flanco de bajada 00000100 CCP_CAPTURE_RE Captura por flanco de subida 00000101 CCP_CAPTURE_DIV_4 Captura cada 4 pulsos 00000110 CCP_CAPTURE_DIV_16 Captura cada 16 pulsos 00000111CCP_CAPTURE_DIV_16 Captura cada 16 pulsos 00000111 CCP_COMPARE_SET_ON_MATCH Salida a 1 en comparación 00001000 CCP_COMPARE_CLR_ON_MATCH Salida a 0 en comparación 00001001 CCP_COMPARE_INT Interrupción en comparación 00001010 CCP_COMPARE_RESET_TIMER Reset TMR1 en comparación 00001011 CCP_PWM Modo PWM habilitado 00001100 Prof. Luis Zurita Microcontroladores II
  • 14. • Los valores para comparar se fijan en los registros CCPRx. En el compilador C, estos registros están definidos en el fichero include, por ejemplo para el 16F87x.h: MÓDULO CCP EN LENGUAJE C long CCP_1; long CCP_2; #byte CCP_1=0x15 #byte CCP_2=0x1B#byte CCP_1=0x15 #byte CCP_2=0x1B #byte CCP_1_LOW=0x15 #byte CCP_2_LOW=0x1B #byte CCP_1_HIGH=0x16 #byte CCP_2_HIGH=0x1C set_pwmx_duty(valor); valor: dato de 8 o 16 bits (10 bits efectivos) que determina el ciclo de trabajo. Este valor, junto con el valor del preescaler del TMR2, determina el valor del ciclo de trabajo. En la configuración del TIMER2, el postcaler debe valer 1. Prof. Luis Zurita Microcontroladores II
  • 15. Ejercicio 1. Medición de Período de una señal Sea una señal cuadrada de frecuencia F, Para medir el período (1/F), se deben tomar dos muestras, una al inicio de la señal y una al final del período que se desea determinar, sea en el flanco ascendente o en el flanco descendente: F Prof. Luis Zurita Microcontroladores II F FMedida inicial Medida Final Período (T) = Medida Final – Medida Inicial (seg) Frecuencia (F)= 1 / T (Hz) Normalmente se recomienda utilizar la interrupción por captura para realizar la medición del período de una señal. A continuación el lenguaje c:
  • 16. #include <16f877A.h> #fuses XT,NOWDT,NOPROTECT,NOLVP #use delay(clock=4000000) #define use_portD_lcd_true #include <lcd.c> #byte PIR1=0x0C int1 nuevopulso=0; //contador de pulsos (inicial, final) int16 TFF=0,TFI=0,TFTOTAL=0; //Tiempo flancos float APERIODO=0.0; //Valor final del ancho de pulso int1 cambio=0; //Cambio de flanco de disparo #int_ccp1 //Función interrupción por Captura void ccp1_int(){ Ejercicio 1. Medición de Período de una señal void ccp1_int(){ if(cambio==0){ //Flanco de subida. Lectura inicial TFI=CCP_1; //Carga del valor del registro CCPR1 en flanco subida //setup_ccp1(CCP_CAPTURE_FE); //Configuración modo Captura en flanco de bajada cambio=1; //Control de cambio de flanco inicial a final } else { //Flanco Final TFF=CCP_1; //Carga del valor del registro CCPR1 en flanco bajada //setup_ccp1(CCP_CAPTURE_RE); //Configuración modo Captura en flanco de subida cambio=0; //Control de cambio de flanco if(nuevopulso==0){ //Fin de pulso... nuevopulso=1; //pulso a medir } } } Prof. Luis Zurita Microcontroladores II
  • 17. void main() { lcd_init(); setup_timer_1(T1_INTERNAL); //Configuración TMR1 setup_ccp1(CCP_CAPTURE_RE); //Configuración modo Captura en flanco de subida cambio = 0; //Control de cambio a 0 enable_interrupts(int_ccp1); //Habilitación interrupción modulo CCP enable_interrupts(global); //Habilitación interrupción global Ejercicio 1. Medición de Período de una señal while(true) { if(nuevopulso==1){ //¿Pulso nuevo? TFTOTAL=(TFF-TFI); //Período total. APERIODO = TFTOTAL*1.0; //Período total en microsegundos (a 4MHz:1us) printf(lcd_putc,"fMED. FRECUENCIAn"); printf(lcd_putc,"T = %6.1fuS ", APERIODO); nuevopulso=0; //Periodo medido, espera nuevo } } } Prof. Luis Zurita Microcontroladores II
  • 18. Ejercicio 1. Medición de Período de una señal Prof. Luis Zurita Microcontroladores II
  • 19. • El CCP en modo comparación, compara continuamente el valor del TIMER1 con el valor precargado en el registro CCPR2H:L; Cuando son iguales se produce un cambio de nivel en el pin CCP correspondiente y se puede activar la interrupción por comparación del módulo CCP si la misma ha sido Ejercicio 2. Generación de una señal cuadrada mediante la Comparación con el CCP2 por comparación del módulo CCP si la misma ha sido habilitada. • En cada cambio de nivel del pin CCP se debe cargar el valor para obtener una señal cuadrada con un duty del 50%. Haga los cálculos para generar una señal de 2 kHz. Prof. Luis Zurita Microcontroladores II
  • 20. #include <16f877A.h> #fuses XT,NOWDT,NOPROTECT,NOLVP int1 cambio=0; //Variable de control de cambio #int_ccp2 void ccp2_int(){ //Función de interrupción if(++cambio==1){ //cambio++; setup_ccp2(CCP_COMPARE_CLR_ON_MATCH); //Modo Comparación, cambio a 0 } else{ setup_ccp2(CCP_COMPARE_SET_ON_MATCH); //Modo Comparación, cambio a 1 } Ejercicio 2. Generación de una señal cuadrada mediante la Comparación con el CCP2 } set_timer1(0); //Borrado de TMR1 CCP_2 = 199; //Inicialización del registro CCPR2 para un Duty del 50% } void main() { disable_interrupts(global); setup_timer_1(T1_INTERNAL | T1_DIV_BY_1); //Configuración TMR1 setup_ccp2(CCP_COMPARE_SET_ON_MATCH); //Configuración inicial modulo CCP CCP_2 = 199; //Inicialización del registro CCPR2 para un Duty del 50% enable_interrupts(int_ccp2); //Habilitación interrupción modulo CCP2 enable_interrupts(global); //Habilitación interrupción general while (TRUE){ } } Prof. Luis Zurita Microcontroladores II
  • 21. Ejercicio 2. Generación de una señal cuadrada mediante la Comparación con el CCP2 Prof. Luis Zurita Microcontroladores II
  • 22. SEÑAL PWM Periodo=[(PR2)+1]*4*Tosc*(Valor predivisor TMR2) Duty Cycle=(CCPRxL:CCP1CON(5:4))*Tosc*(V. predivisor TMR2) Prof. Luis Zurita Microcontroladores II
  • 23. SEÑAL PWM La resolución máxima en bits viene dada por: Nota: Si el valor del duty cycle de la PWM es más largo que el período de la PWM, el pin CCP1 no podrá ser puesto a cero Prof. Luis Zurita Microcontroladores II
  • 24. • En el siguiente ejercicio se va a generar una señal PWM con cuatro coeficientes cíclicos distintos que dependen de dos interruptores que seleccionan el modo de la señal (25%, 50%, 60% y 80%). El modo elegido debe mostrarse en una pantalla LCD: #include <16F877A.h> #fuses XT,NOWDT,NOPROTECT,NOLVP Ejercicio 3. Generación de una señal PWM mediante el CCP1 #fuses XT,NOWDT,NOPROTECT,NOLVP #use delay(clock=4000000) #use fast_io(c) #use fast_io(d) #use standard_io(a) #define use_portd_lcd_true #include <lcd.c> byte A=0; Prof. Luis Zurita Microcontroladores II
  • 25. void main(){ set_tris_c(0xF0); set_tris_d(0x00); setup_timer_2(T2_DIV_BY_1,224,1); setup_ccp1(CCP_PWM); lcd_init(); while(TRUE){ A=input_a(); switch(A){ set_pwm1_duty(0x2EE); printf(lcd_putc,"fPORC= 60"); break; case (3): set_pwm1_duty(0x304); printf(lcd_putc,"fPORC= 80"); break;} } } Ejercicio 3. Generación de una señal PWM mediante el CCP1. Continuación. switch(A){ case (0): set_pwm1_duty(0xC8); printf(lcd_putc,"fPORC= 25"); break; case (1): set_pwm1_duty(0x1F4); printf(lcd_putc,"fPORC= 50"); break; case (2): } Prof. Luis Zurita Microcontroladores II
  • 26. Ejercicio 3. Generación de una señal PWM mediante el CCP1 Prof. Luis Zurita Microcontroladores II
  • 27. Ejercicio 3. Generación de una señal PWM mediante el CCP1 Prof. Luis Zurita Microcontroladores II