Módulos CCP
LOPE BUSTAMANTE JOSE OCTAVIO
MICROPROCESADORES Y MICROCONTROLADORES
En Modo Captura
Proporciona el acceso al estado actual de un registro que
cambia su valor constantemente. En este caso, es el registro
del temporizador Timer1.
En este modo, el registro del temporizador Timer1 (que
consiste en los TMR1H y TMR1L) se copia al registro CCP1 (que
consiste en los CCPR1H y CCPR1L) en las siguientes
situaciones: Cada flanco ascendente (1 -> 0) en el pin
RC2/CCP.
Cada flanco descendente (0 -> 1) en el pin RC2/CCP1.
Cada cuarto flanco ascendente (0 -> 1) en el pin RC2/CCP1.
Cada decimosexto flanco descendente (0 -> 1) en el pin
RC2/CCP1.
Una combinación de cuatro bits (CCP1M3 - CCP1M0) del
registro de control determina cuál de estos eventos causará
transmisión de dato de 16 bits. Además, se deben cumplir los
siguientes requisitos::El pin RC2/CCP1 debe estar configurado
como entrada.
El Timer1 debe funcionar como temporizador o contador
síncrono.
En Modo PWM
Puede generar señales de frecuencia y de ciclo de
trabajo variados por uno o más pines de salida
Las señales de frecuencia y de ciclo de trabajo variados
tienen una amplia gama de aplicaciones en
automatización. Un ejemplo típico es un circuito de
control de potencia. Refiérase a la siguiente figura. Si un
cero lógico (0) indica un interruptor abierto y un uno
lógico (1) indica un interruptor cerrado, la potencia
eléctrica que se transmite a los consumidores será
directamente proporcional a la duración del pulso. Esta
relación se le denomina Ciclo de Trabajo.
Los dispositivos que funcionan según este principio se
utilizan con frecuencia en la práctica como variadores
de frecuencia ajustable que controlan motores
eléctricos (velocidad, aceleración, desaceleración etc.)
En Modo Comparación
Compara constantemente valores de dos registros. Uno
de ellos es el registro del temporizador Timer1. Este
circuito también le permite al usuario activar un evento
externo después de que haya expirado una cantidad
de tiempo predeterminada.
En este modo, el valor almacenado en el registro CCP1
se compara constantemente al valor almacenado en
el registro del temporizador Timer1. Al igualarse los
valores, el estado lógico en el pin de salida puede ser
cambiado, lo que depende del estado de bits en el
registro de control (CCP1M3 - CCP1M0). El bit de
bandera CCP1IF se pone a uno simultáneamente.
Para poner el módulo CCP1 en este modo de
funcionamiento, se deben cumplir dos condiciones: pin
RC2/CCP1 debe estar configurado como salida; y
El temporizador Timer1 debe estar sincronizado con el
reloj interno.
Módulo EEPROM
El microcontrolador PIC16F887 dispone de 256 localidades de memoria
EEPROM controlados por los bits de los siguientes registros:EECON1
(registro de control);
EECON2 (registro de control);
EEDAT (almacena los datos listos para escritura y lectura); y
EEADR (almacena la dirección de la EEPROM a la que se accede).
Además, el registro EECON2 no es un registro verdadero, no existe
físicamente en el chip. Se utiliza sólo durante la escritura de los datos en
la memoria. Los registros EEDATH y EEADRH se utilizan durante la escritura
y lectura de la EEPROM. Los dos se utilizan también durante la escritura y
lectura de la memoria de programa (FLASH). Por considerar esto una
zona de riesgo (por supuesto usted no quiere que el microcontrolador
borre su propio programa por casualidad), no vamos a discutirlo aquí,
no obstante le avisamos que tenga cuidado.
Registro EECON1
EEPGD - Program/Data EEPROM Select bit (bit de selección de
memorias)1 - Acceso a la memoria Flash de programa.
0 - Acceso a la memoria de datos EEPROM.
WRERR - EEPROM Error Flag bit (bit de error de escritura)1 - Se produce un
error de escritura de forma prematura y ha ocurrido un error.
0 - Se ha completado la operación de escritura.
WREN - EEPROM Write Enable bit (bit de habilitación de escritura)1 -
Escritura de datos en la EEPROM habilitada.
0 - Escritura de datos en la EEPROM deshabilitada.
WR - Write Control bit (bit de control de escritura)1 - Se ha iniciado una
operación de escritura de datos en la EEPROM.
0 - Se ha completado una operación de escritura de datos en la
EEPROM.
RD - Read Control bit (bit de control de lectura)1 - Inicia una lectura de la
memoria EEPROM.
0 - Lectura de la memoria EEPROM deshabilitada.
Lectura de la Memoria EEPROM
Para leer los datos de la memoria EEMPROM, siga los siguientes pasos:Paso 1:
Escribir la dirección (00h - FFh) en el registro EEADR.
Paso 2: Seleccionar el bloque de memoria EEPROM al poner a cero el bit EEPGD
del registro EECON1.
Paso 3: Poner a uno el bit RD del mismo registro para leer el contenido de la
localidad.
Paso 4: El dato se almacena en el registro EEDAT y está listo para su uso.
El siguiente ejemplo muestra el procedimiento anteriormente descrito al escribir
un programa en lenguaje ensamblador:
La misma secuencia de programa escrita en C se parece a lo siguiente:
Escritura en la Memoria EEPROM
Antes de escribir los datos en la memoria EEPROM es necesario escribir
la dirección en el registro EESADR y los datos en el registro EESAT. Sólo
ha quedado seguir a una secuencia especial para iniciar la escritura
para cada byte. Durante el proceso de escritura las interrupciones
deben estar deshabilitadas. El ejemplo que sigue muestra el
procedimiento anteriormente descrito al escribir un programa en
lenguaje ensamblador:
Escrito en C:
GRACIAS