SlideShare uma empresa Scribd logo
1 de 5
Programacion del PIC 16F877A
USO DEL TIMER2 PARA PWM CON EL PIC 16F877A con el COMPILADOR HI TECH

Buitrón Quispe Carlos E.

Página 1
Programacion del PIC 16F877A

F:ESCRITORIO DECIMO CICLO fuses exporta y grabaPWM.c
#include <htc.h> // Directivas del Preprocesador
//__CONFIG(0x3F32); //Palabra de configuración para el pic 16F877A
__CONFIG( FOSC_HS & WDTE_OFF & PWRTE_ON & BOREN_OFF & LVP_OFF &
CPD_OFF & CP_OFF & DEBUG_OFF & WRT_OFF ); #define _XTAL_FREQ
20000000 //Oscilador Externo de 20MHZ
/* Declaración de variables GLOBALES con inicialización o sin inicialización*/
unsigned int x;
/* Declaración de funciones con o sin parámetros*/
void set_pwm(unsigned int duty); // prototipo de la función
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~ /* FUNCION PRINCIPAL*/
void main(void) // "función main" sin ningún valor de
retorno.
{
/* REGISTROS Y SIMBOLO DEFINIDOS POR EL PROGRAMADOR*/
// ~~~~~~~~~~PASOS PARA CON FIGURAR EL MODULO TIMER 0 ~~~~~~~~~~~
//OPTION_REG=0B10100000;
// voy al BANCO1 y configuro como usare el modulo timer

Buitrón Quispe Carlos E.

Página 2
Programacion del PIC 16F877A
// mediante el registro OPTION_REG.
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//T0CS - BIT5: Bit selector de fuente para el TMR0
//1 = Clock externo, pin RA4/T0CKI
//0 =Clock interno (CLKOUT)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//T0SE - BIT4: Bit selector de flanco
//1 = Incrementa en flanco de bajada en pin T0CKI
//0 = Incrementa en flanco de subida en pin T0CKI
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//PSA - BIT3: Bits de asignación del preescaler
//1 = Prescaler es asignado al WATCHDOG
//0 = Prescaler es asignado al modulo Timer0*/
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//Si el preescaler vale 1:8 quiere decir por cada 8 eventos o 8 pulsos o 8 ciclos
que sucedan
// Solo aumentará una cuenta en un valor de "uno" en el registro TMR0 (y el
valor máximo de
// Cuentas será 8x256).
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ~~~~~~~´PASOS PARA CON FIGURAR EL REGISTRO INTCON ~~~~~~~~~~
// Es el controlador de Interrupciones, utilizar las banderas:
// bit 2 TMR0IF: Señalizador de desbordamiento del temporizador en TMR0
// 1 = se activa por defecto cuando hay desbordamiento de TMR0 (borrar por

Buitrón Quispe Carlos E.

Página 3
Programacion del PIC 16F877A
software)
// 0 = TMR0 register did not overflow
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// bit 5 TMR0IE: Bit de permiso de interrupción del TMR0
// 1 = Enables the TMR0 interrupt
// 0 = Disables the TMR0 interrupt
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//TMR0=0X00; //Aseguramos que registro de conteo TMR0 está en 0
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//ADCON1 = 0x06;
// Configuro puerto A, para obtener E/S digital.
//TRISA=0XFF; // configuro puerto A como ENTRADA, PIN RA4: T0CKI se debe
leer el estado. //TRISB=0X00; // configuro puerto B como SALIDA.
TRISC=0X00; // configuro puerto C como SALIDA.
CCP1CON = 0b00001100; // Configurar el modulo CCP, utilizar como modo
PWM
T2CON = 0b00000110; // configurar TIMER2 para funcionar el PWM
PR2 = 255; // valor para calcular en resultado de frecuencia. PR = 0 o 255.
set_pwm(512); // iniciar el PWM en 50%. 1024 niveles - 100%, 512 niveles =
50%
x=0; // inicialización para ver como varia los niveles. (Cantidad de niveles)
while(1)
{
x++;
if(x>=1024) x=0;
set_pwm(x);
__delay_ms(10);
}
}

Buitrón Quispe Carlos E.

Página 4
Programacion del PIC 16F877A
void set_pwm(unsigned int duty)
{
CCPR1L = duty>>2;
CCP1CONbits.CCP1X = duty>>1;
CCP1CONbits.CCP1Y = duty;
}

Medida del Frecuencímetro a 1.22Khz
Programa permite medir la intensidad de Luminosidad del Led cuando el Duty cicle llega al 100 el
Led deja de Iluminar y retorna en parpadear hasta alcanzar la máxima iluminación.

Buitrón Quispe Carlos E.

Página 5

Mais conteúdo relacionado

Mais procurados

Curso de microcontroladores capitulo 05
Curso de microcontroladores capitulo 05Curso de microcontroladores capitulo 05
Curso de microcontroladores capitulo 05Hamiltonn Casallas
 
Curso de microcontroladores capitulo 04
Curso de microcontroladores capitulo 04Curso de microcontroladores capitulo 04
Curso de microcontroladores capitulo 04Hamiltonn Casallas
 
Manejo de teclado 4x4 con pic 16 f84a
Manejo de teclado 4x4 con pic 16 f84aManejo de teclado 4x4 con pic 16 f84a
Manejo de teclado 4x4 con pic 16 f84axeleta
 
Curso de microcontroladores capitulo 03
Curso de microcontroladores capitulo 03Curso de microcontroladores capitulo 03
Curso de microcontroladores capitulo 03Hamiltonn Casallas
 
Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06Hamiltonn Casallas
 
programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84guestf09168b
 
C++ para microcontroladores y aplicación práctica
C++ para microcontroladores y aplicación prácticaC++ para microcontroladores y aplicación práctica
C++ para microcontroladores y aplicación prácticaGerardo C
 
Curso de microcontroladores capitulo 02
Curso de microcontroladores capitulo 02Curso de microcontroladores capitulo 02
Curso de microcontroladores capitulo 02Hamiltonn Casallas
 

Mais procurados (20)

Curso de microcontroladores capitulo 05
Curso de microcontroladores capitulo 05Curso de microcontroladores capitulo 05
Curso de microcontroladores capitulo 05
 
50824079 datasheet-pic18f4550-espanol
50824079 datasheet-pic18f4550-espanol50824079 datasheet-pic18f4550-espanol
50824079 datasheet-pic18f4550-espanol
 
Microcontroladores
MicrocontroladoresMicrocontroladores
Microcontroladores
 
Modulo Timer 0 del PIC16F887
Modulo Timer 0 del PIC16F887Modulo Timer 0 del PIC16F887
Modulo Timer 0 del PIC16F887
 
Curso de microcontroladores capitulo 04
Curso de microcontroladores capitulo 04Curso de microcontroladores capitulo 04
Curso de microcontroladores capitulo 04
 
Manejo de teclado 4x4 con pic 16 f84a
Manejo de teclado 4x4 con pic 16 f84aManejo de teclado 4x4 con pic 16 f84a
Manejo de teclado 4x4 con pic 16 f84a
 
Curso de microcontroladores capitulo 03
Curso de microcontroladores capitulo 03Curso de microcontroladores capitulo 03
Curso de microcontroladores capitulo 03
 
Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06
 
Curso de microcontroladores pic18 f4550
Curso de microcontroladores pic18 f4550Curso de microcontroladores pic18 f4550
Curso de microcontroladores pic18 f4550
 
07 Familia Atmega
07 Familia Atmega07 Familia Atmega
07 Familia Atmega
 
programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84
 
Arquitectura Microcontrolador PIC16F887
Arquitectura Microcontrolador PIC16F887Arquitectura Microcontrolador PIC16F887
Arquitectura Microcontrolador PIC16F887
 
El PIC16F84
El PIC16F84El PIC16F84
El PIC16F84
 
Módulo ADC del PIC16F887
Módulo ADC del PIC16F887Módulo ADC del PIC16F887
Módulo ADC del PIC16F887
 
14 Fusibles Programables
14 Fusibles Programables14 Fusibles Programables
14 Fusibles Programables
 
C++ para microcontroladores y aplicación práctica
C++ para microcontroladores y aplicación prácticaC++ para microcontroladores y aplicación práctica
C++ para microcontroladores y aplicación práctica
 
Módulo EUSART del PIC16F887
Módulo EUSART del PIC16F887Módulo EUSART del PIC16F887
Módulo EUSART del PIC16F887
 
Curso de microcontroladores capitulo 02
Curso de microcontroladores capitulo 02Curso de microcontroladores capitulo 02
Curso de microcontroladores capitulo 02
 
Taxímetro con Pic16F887
Taxímetro con Pic16F887Taxímetro con Pic16F887
Taxímetro con Pic16F887
 
Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84
 

Destaque

Microcontroladores pic diseño practico de aplicaciones
Microcontroladores pic diseño practico de aplicacionesMicrocontroladores pic diseño practico de aplicaciones
Microcontroladores pic diseño practico de aplicacionesCarlos Tovar
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxfreddymadriz
 
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos aoMicrocontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos aohector8764
 
Microcontroladores pic, diseño práctico de aplicaciones 2da parte 16 f87x
Microcontroladores pic, diseño práctico de aplicaciones 2da parte 16 f87xMicrocontroladores pic, diseño práctico de aplicaciones 2da parte 16 f87x
Microcontroladores pic, diseño práctico de aplicaciones 2da parte 16 f87xMiguel Angel Corona Lòpez
 
Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)
Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)
Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)Miguel Angel Corona Lòpez
 

Destaque (7)

Microcontroladores
MicrocontroladoresMicrocontroladores
Microcontroladores
 
Microcontroladores pic diseño practico de aplicaciones
Microcontroladores pic diseño practico de aplicacionesMicrocontroladores pic diseño practico de aplicaciones
Microcontroladores pic diseño practico de aplicaciones
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos aoMicrocontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
 
Curso de-mcu-proteus
Curso de-mcu-proteusCurso de-mcu-proteus
Curso de-mcu-proteus
 
Microcontroladores pic, diseño práctico de aplicaciones 2da parte 16 f87x
Microcontroladores pic, diseño práctico de aplicaciones 2da parte 16 f87xMicrocontroladores pic, diseño práctico de aplicaciones 2da parte 16 f87x
Microcontroladores pic, diseño práctico de aplicaciones 2da parte 16 f87x
 
Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)
Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)
Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)
 

Semelhante a Uso del timer2 para pwm con el pic 16 f877a con el compilador hi tech

Interrupciones y Temporizadores pucesi
Interrupciones y Temporizadores   pucesiInterrupciones y Temporizadores   pucesi
Interrupciones y Temporizadores pucesiDavid Narváez
 
TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"Diego Rojas Ruiz
 
Micc final feb14_2009_soluc
Micc final feb14_2009_solucMicc final feb14_2009_soluc
Micc final feb14_2009_solucJair BG
 
Micc final feb14_2009_soluc
Micc final feb14_2009_solucMicc final feb14_2009_soluc
Micc final feb14_2009_solucJair BG
 
Compare capture pwm mode 5
Compare capture pwm mode 5Compare capture pwm mode 5
Compare capture pwm mode 5georgemanson69
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxJose Manuel Mansilla Carrasco
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxJose Manuel Mansilla Carrasco
 
Controlando el tiempo
Controlando el tiempoControlando el tiempo
Controlando el tiempoguest02693a
 
Micc final sept05 2009 soluc
Micc final sept05 2009 solucMicc final sept05 2009 soluc
Micc final sept05 2009 solucJair BG
 
Micc final sept05 2009 soluc
Micc final sept05 2009 solucMicc final sept05 2009 soluc
Micc final sept05 2009 solucJair BG
 
MICROCONTROLADORES II EN C. TEMA 2
MICROCONTROLADORES II EN C. TEMA 2MICROCONTROLADORES II EN C. TEMA 2
MICROCONTROLADORES II EN C. TEMA 2Luis Zurita
 
Micc temas examen
Micc temas examenMicc temas examen
Micc temas examenJair BG
 
Curso Micro Tema 5
Curso Micro Tema 5Curso Micro Tema 5
Curso Micro Tema 5Luis Zurita
 
Micc final feb14_2009
Micc final feb14_2009Micc final feb14_2009
Micc final feb14_2009Jair BG
 
Micc final sept05_2009
Micc final sept05_2009Micc final sept05_2009
Micc final sept05_2009Jair BG
 

Semelhante a Uso del timer2 para pwm con el pic 16 f877a con el compilador hi tech (20)

Micro2 tema 2
Micro2 tema 2Micro2 tema 2
Micro2 tema 2
 
Interrupciones y Temporizadores pucesi
Interrupciones y Temporizadores   pucesiInterrupciones y Temporizadores   pucesi
Interrupciones y Temporizadores pucesi
 
Nueva secuencia
Nueva secuenciaNueva secuencia
Nueva secuencia
 
TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"
 
INTERRUPCIONES.ppt
INTERRUPCIONES.pptINTERRUPCIONES.ppt
INTERRUPCIONES.ppt
 
Micc final feb14_2009_soluc
Micc final feb14_2009_solucMicc final feb14_2009_soluc
Micc final feb14_2009_soluc
 
Micc final feb14_2009_soluc
Micc final feb14_2009_solucMicc final feb14_2009_soluc
Micc final feb14_2009_soluc
 
Compare capture pwm mode 5
Compare capture pwm mode 5Compare capture pwm mode 5
Compare capture pwm mode 5
 
Timers 2
Timers 2Timers 2
Timers 2
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Tarea final
Tarea finalTarea final
Tarea final
 
Controlando el tiempo
Controlando el tiempoControlando el tiempo
Controlando el tiempo
 
Micc final sept05 2009 soluc
Micc final sept05 2009 solucMicc final sept05 2009 soluc
Micc final sept05 2009 soluc
 
Micc final sept05 2009 soluc
Micc final sept05 2009 solucMicc final sept05 2009 soluc
Micc final sept05 2009 soluc
 
MICROCONTROLADORES II EN C. TEMA 2
MICROCONTROLADORES II EN C. TEMA 2MICROCONTROLADORES II EN C. TEMA 2
MICROCONTROLADORES II EN C. TEMA 2
 
Micc temas examen
Micc temas examenMicc temas examen
Micc temas examen
 
Curso Micro Tema 5
Curso Micro Tema 5Curso Micro Tema 5
Curso Micro Tema 5
 
Micc final feb14_2009
Micc final feb14_2009Micc final feb14_2009
Micc final feb14_2009
 
Micc final sept05_2009
Micc final sept05_2009Micc final sept05_2009
Micc final sept05_2009
 

Mais de Carlos Buitron Quispe

Programación orientada a objetos en vb 2012
Programación orientada a objetos en vb 2012Programación orientada a objetos en vb 2012
Programación orientada a objetos en vb 2012Carlos Buitron Quispe
 
COMUNICACION SERIAL DSPIC30F3014 Y MATLAB
COMUNICACION SERIAL DSPIC30F3014 Y MATLABCOMUNICACION SERIAL DSPIC30F3014 Y MATLAB
COMUNICACION SERIAL DSPIC30F3014 Y MATLABCarlos Buitron Quispe
 
Uso del timer0 para el pic 16 f877a con el compilador hi tech
Uso del timer0 para el pic 16 f877a con el compilador hi techUso del timer0 para el pic 16 f877a con el compilador hi tech
Uso del timer0 para el pic 16 f877a con el compilador hi techCarlos Buitron Quispe
 
SISTEMA RECONOCIMIENTO DE OBJETOS APLICANDO PROCESAMIENTO DE IMAGENES
SISTEMA RECONOCIMIENTO DE OBJETOS APLICANDO PROCESAMIENTO DE IMAGENESSISTEMA RECONOCIMIENTO DE OBJETOS APLICANDO PROCESAMIENTO DE IMAGENES
SISTEMA RECONOCIMIENTO DE OBJETOS APLICANDO PROCESAMIENTO DE IMAGENESCarlos Buitron Quispe
 
Tutorial de programacion en c para pic16 f877a
Tutorial de programacion en c para pic16 f877aTutorial de programacion en c para pic16 f877a
Tutorial de programacion en c para pic16 f877aCarlos Buitron Quispe
 

Mais de Carlos Buitron Quispe (6)

Programación orientada a objetos en vb 2012
Programación orientada a objetos en vb 2012Programación orientada a objetos en vb 2012
Programación orientada a objetos en vb 2012
 
COMUNICACION SERIAL DSPIC30F3014 Y MATLAB
COMUNICACION SERIAL DSPIC30F3014 Y MATLABCOMUNICACION SERIAL DSPIC30F3014 Y MATLAB
COMUNICACION SERIAL DSPIC30F3014 Y MATLAB
 
Uso del timer0 para el pic 16 f877a con el compilador hi tech
Uso del timer0 para el pic 16 f877a con el compilador hi techUso del timer0 para el pic 16 f877a con el compilador hi tech
Uso del timer0 para el pic 16 f877a con el compilador hi tech
 
SISTEMA RECONOCIMIENTO DE OBJETOS APLICANDO PROCESAMIENTO DE IMAGENES
SISTEMA RECONOCIMIENTO DE OBJETOS APLICANDO PROCESAMIENTO DE IMAGENESSISTEMA RECONOCIMIENTO DE OBJETOS APLICANDO PROCESAMIENTO DE IMAGENES
SISTEMA RECONOCIMIENTO DE OBJETOS APLICANDO PROCESAMIENTO DE IMAGENES
 
Tutorial de programacion en c para pic16 f877a
Tutorial de programacion en c para pic16 f877aTutorial de programacion en c para pic16 f877a
Tutorial de programacion en c para pic16 f877a
 
000191
000191000191
000191
 

Uso del timer2 para pwm con el pic 16 f877a con el compilador hi tech

  • 1. Programacion del PIC 16F877A USO DEL TIMER2 PARA PWM CON EL PIC 16F877A con el COMPILADOR HI TECH Buitrón Quispe Carlos E. Página 1
  • 2. Programacion del PIC 16F877A F:ESCRITORIO DECIMO CICLO fuses exporta y grabaPWM.c #include <htc.h> // Directivas del Preprocesador //__CONFIG(0x3F32); //Palabra de configuración para el pic 16F877A __CONFIG( FOSC_HS & WDTE_OFF & PWRTE_ON & BOREN_OFF & LVP_OFF & CPD_OFF & CP_OFF & DEBUG_OFF & WRT_OFF ); #define _XTAL_FREQ 20000000 //Oscilador Externo de 20MHZ /* Declaración de variables GLOBALES con inicialización o sin inicialización*/ unsigned int x; /* Declaración de funciones con o sin parámetros*/ void set_pwm(unsigned int duty); // prototipo de la función //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~ /* FUNCION PRINCIPAL*/ void main(void) // "función main" sin ningún valor de retorno. { /* REGISTROS Y SIMBOLO DEFINIDOS POR EL PROGRAMADOR*/ // ~~~~~~~~~~PASOS PARA CON FIGURAR EL MODULO TIMER 0 ~~~~~~~~~~~ //OPTION_REG=0B10100000; // voy al BANCO1 y configuro como usare el modulo timer Buitrón Quispe Carlos E. Página 2
  • 3. Programacion del PIC 16F877A // mediante el registro OPTION_REG. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //T0CS - BIT5: Bit selector de fuente para el TMR0 //1 = Clock externo, pin RA4/T0CKI //0 =Clock interno (CLKOUT) //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //T0SE - BIT4: Bit selector de flanco //1 = Incrementa en flanco de bajada en pin T0CKI //0 = Incrementa en flanco de subida en pin T0CKI //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //PSA - BIT3: Bits de asignación del preescaler //1 = Prescaler es asignado al WATCHDOG //0 = Prescaler es asignado al modulo Timer0*/ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //Si el preescaler vale 1:8 quiere decir por cada 8 eventos o 8 pulsos o 8 ciclos que sucedan // Solo aumentará una cuenta en un valor de "uno" en el registro TMR0 (y el valor máximo de // Cuentas será 8x256). ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // ~~~~~~~´PASOS PARA CON FIGURAR EL REGISTRO INTCON ~~~~~~~~~~ // Es el controlador de Interrupciones, utilizar las banderas: // bit 2 TMR0IF: Señalizador de desbordamiento del temporizador en TMR0 // 1 = se activa por defecto cuando hay desbordamiento de TMR0 (borrar por Buitrón Quispe Carlos E. Página 3
  • 4. Programacion del PIC 16F877A software) // 0 = TMR0 register did not overflow //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // bit 5 TMR0IE: Bit de permiso de interrupción del TMR0 // 1 = Enables the TMR0 interrupt // 0 = Disables the TMR0 interrupt //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //TMR0=0X00; //Aseguramos que registro de conteo TMR0 está en 0 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //ADCON1 = 0x06; // Configuro puerto A, para obtener E/S digital. //TRISA=0XFF; // configuro puerto A como ENTRADA, PIN RA4: T0CKI se debe leer el estado. //TRISB=0X00; // configuro puerto B como SALIDA. TRISC=0X00; // configuro puerto C como SALIDA. CCP1CON = 0b00001100; // Configurar el modulo CCP, utilizar como modo PWM T2CON = 0b00000110; // configurar TIMER2 para funcionar el PWM PR2 = 255; // valor para calcular en resultado de frecuencia. PR = 0 o 255. set_pwm(512); // iniciar el PWM en 50%. 1024 niveles - 100%, 512 niveles = 50% x=0; // inicialización para ver como varia los niveles. (Cantidad de niveles) while(1) { x++; if(x>=1024) x=0; set_pwm(x); __delay_ms(10); } } Buitrón Quispe Carlos E. Página 4
  • 5. Programacion del PIC 16F877A void set_pwm(unsigned int duty) { CCPR1L = duty>>2; CCP1CONbits.CCP1X = duty>>1; CCP1CONbits.CCP1Y = duty; } Medida del Frecuencímetro a 1.22Khz Programa permite medir la intensidad de Luminosidad del Led cuando el Duty cicle llega al 100 el Led deja de Iluminar y retorna en parpadear hasta alcanzar la máxima iluminación. Buitrón Quispe Carlos E. Página 5