Anda di halaman 1dari 7

5/6/2019 Interrupción timer0 PIC - MICROCONTROLADORES

MICROCONTROLADORES
Programación de Microcontroladores PIC, AVR, ARDUINO

  

Inicio » Interrupción timer0 PIC

Interrupción timer0 PIC

Interrupción timer0 PIC, mediante la interrupción timer0 PIC se puede detener el programa
principal con el cual este trabajando el microcontrolador PIC, para indicarle al microcontrolador
que se dedique a realizar otras tareas, al finalizar la interrupción timer0 PIC, se seguirá con el
programa principal desde donde fue interrumpido.

En esta sección que es una secuencia del tema tratado en este enlace, se tratará sobre la
interrupción timer0 PIC por desborde, por lo que es muy importante que se sepa utilizar el timer0
PIC, sobre la utilización del timer0 PIC ya se ha tratado y se puede ver aquí, para lo que se va a
comentar a continuación se utilizará como base el microcontrolador PIC16F84A.

La interrupción timer0 PIC por desborde ocurre cuando el registro TMR0 del timer0 llega a su valor
máximo de 255 tras lo que se reinicia a 0, a este paso de 255 a 0 se le llama desborde, y es en
ese momento que se puede habilitar que ocurra una interrupción.

Interrupción timer0 PIC por desborde

Del registro INTCON se pondrá su bit7 GIE a 1 para habilitar el uso de las interrupciones, su
bit5 TMR0IE se pondrá a 1 para habilitar el uso de la interrupción timer0 PIC por desborde, su bit2
TMR0IF es la bandera que detecta que se ha producido la interrupción del timer0 por desborde y
se tendrá que poner a 0 para que haga la detección, cuando ocurre la interrupción este bit se pone
automáticamente a 1, y para seguir detectando mas interrupciones externas en al rutina de
atención a las interrupciones se tendrá que poner nuevamente a 0 este bit.

Del registro OPTION_REG se pone a 0 su bit5 T0CS para indicarle al PIC que se utilizará el
timer0 como temporizador, el bit4 se pone a 0 ya que este se usa cuando el timer0 es utilizado
como contador, mediante su bit3 PSA=0 se indica a quien será asignado el prescaler, y con sus
Política y privacidad de Cookies
microcontroladores-mrelberni.com/interrupcion-timer0-pic/ 1/7
5/6/2019 Interrupción timer0 PIC - MICROCONTROLADORES

bits PS2:PS0 se indica de cuanto será el prescaler.

En el siguiente vídeo publicado en el canal de youtube de MrElberni se ve como utilizar la


interrupción timer0 PIC por desborde, para el ejemplo se utiliza el PIC16F84A.

Del registro OPTION_REG su bit5 TOCS se pone a 0 para utilizar el timer0 PIC como
temporizador, se pone el bit3 a 0 para asignar el prescaler al TMR0, con las combinaciones de
los bits 2, 1 y 0 se selecciona de cuanto será el prescaler.

Del registro INTCON se pondrá su bit7 GIE a 1 para habilitar las interrupciones, su bit5 TMR0IE
se pondrá a 1 para habilitar el uso de la interrupción por desborde del registro TMR0, además en
necesario poner el bit 2 TMR0IF a 0 para detectar cuando ocurra la interrupción al ponerse este bit
automáticamente a 1, luego dentro de la rutina de atención a las interrupciones habrá que ponerlo
nuevamente a 0.

La programación está hecha en el XC8.

Política y privacidad de Cookies


microcontroladores-mrelberni.com/interrupcion-timer0-pic/ 2/7
5/6/2019 Interrupción timer0 PIC - MICROCONTROLADORES

Microcontroladores PIC en XC8 TMR0 TIMER0 com…


com…

El código del programa en el XC8 es el siguiente:

Política y privacidad de Cookies


microcontroladores-mrelberni.com/interrupcion-timer0-pic/ 3/7
5/6/2019 Interrupción timer0 PIC - MICROCONTROLADORES
1 ///////////////////////////////////////////
2 ///////*****************************///////
3 ///***microcontroladores-mrelberni.com***//
4 ///////*****************************///////
5 /////**** Interrupción timer0 PIC *****////
6 ///////*****************************///////
7
8 //bits de configuración del PIC16F84A
9 #pragma config FOSC = XT // Oscillator Selection bits (XT oscillator)
10 #pragma config WDTE = OFF // Watchdog Timer (WDT disabled)
11 #pragma config PWRTE = ON // Power-up Timer Enable bit (Power-up Timer is enabled)
12 #pragma config CP = OFF // Code Protection bit (Code protection disabled)
13
14 #include <xc.h>
15 #define _XTAL_FREQ 4000000
16
17 char i=0;//variable auxiliar hacer parpadear el led cada 500ms
18
19 void main(void) {
20 TRISBbits.TRISB3=0;//como salida para el led que parpadea cada vez que
21 //ocurra la interrupcion timer0 PIC
22 OPTION_REGbits.T0CS=0;//El timer0 actuara como temporizador
23 OPTION_REGbits.PSA=0;//El prescaler se le asigna al timer0
24 OPTION_REGbits.PS2=1;//con estos 3 bits a 1
25 OPTION_REGbits.PS2=1;//se elige el prescaler
26 OPTION_REGbits.PS2=1;//de 256
27
28 INTCONbits.GIE=1;//habilita las interrupciones
29 INTCONbits.TMR0IE=1;//habilita el uso de la interrupción tmr0 PIC
30 //por desborde
31 INTCONbits.TMR0IF=0;//a 0 para que detecte la interrupción tmr0 PIC
32 //por desborde
33
34 TMR0=60;//se inicializa a este valor para obtener 50ms de temporización
35
36 while(1){//ciclo del programa
37 if(i==10){//i aumenta una unidad en cada interrupción y cuando llega a 10
38 PORTB^=(1<<3);//envierte el estado del pin RB3
39 i=0;//la variable i se pone nuevamente a 0
40 }
41 }
42 return;
43 }
44
45 void interrupt int_tmr0(){//rutina de atención a las interrupciones
46 if(INTCONbits.TMR0IF){
47 TMR0=60;//cada 50ms el valor de la variable i
48 i++;//aumenta en una unidad
49 INTCONbits.TMR0IF=0;//bandera nuevamente a 0 para seguir detectando la
50 //interrupción tmr0 por desborde
51 }
52 }

Si he logrado ayudarte en cuanto a la interrupción timer0 PIC por desborde, comparte este enlace
para poder ayudar a muchas personas mas. Muchas Gracias.

Atte: MrElberni.


   

Buscar

 Enlaces del sitio


Política y privacidad de Cookies
microcontroladores-mrelberni.com/interrupcion-timer0-pic/ 4/7
5/6/2019 Interrupción timer0 PIC - MICROCONTROLADORES

› INICIO
› MICROCONTROLADORES PIC
› Introducción
› Bits de configuración PIC
› Entradas salidas digitales PIC
› Temporizador contador PIC
› Timer0 PIC
› Timer1 PIC
› Timer2 PIC
› Interrupciones con el PIC
› Interrupción Externa PIC
› Interrupción timer0 PIC
› Interrupción por cambio de estado en el puerto B PIC
› Interrupción ADC PIC
› Interrupción USART PIC
› Conversor analógico digital PIC
› Módulo CCP
› CCP PIC modo captura
› CCP PIC modo comparación
› CCP PIC modo PWM modulación por ancho de pulso

› USART PIC Comunicación serial


› USART PIC ejemplos
› I2C PIC comunicación serial
› I2C PIC ejemplos
› EEPROM PIC Memoria interna

› MICROCONTROLADORES AVR
› Introducción
› Entradas salidas digitales con el AVR
› Temporizador AVR
› Timer0 AVR
› Timer1 AVR
› Timer2 AVR

› PWM AVR modulación por ancho de pulso


› PWM timer0 AVR modo rápido
› PWM timer0 AVR Fase correcta
› PWM timer1 AVR modo rápido
› PWM timer1 AVR Fase correcta
› PWM timer2 AVR modo rápido
› PWM timer2 AVR fase correcta Política y privacidad de Cookies
microcontroladores-mrelberni.com/interrupcion-timer0-pic/ 5/7
5/6/2019 Interrupción timer0 PIC - MICROCONTROLADORES

› Interrupciones con el AVR


› Interrupción externa AVR
› Interrupción timer0 AVR
› Interrupción timer1 AVR
› Interrupción timer2 AVR
› Interrupción ADC AVR
› Interrupción USART AVR

› Convertidor Analógico Digital AVR


› USART AVR Comunicación serial
› USART AVR ejemplos

› I2C AVR Comunicación serial TWI


› I2C AVR Ejemplos
› EEPROM AVR Memoria interna
› ARDUINO
› Introducción
› Entradas salidas digitales Arduino
› Temporizador Contador ARDUINO
› Programación C C++
› Dispositivos Electrónicos
› Teclado matricial y de punto común
› Pantallas LCD
› LCD con el AVR

› Proyectos PIC
› Proyectos entradas salidas digitales PIC
› Proyectos AVR
› PWM AVR control velocidad motor 12VCC

MAS DE ELECTRÓNICA AQUÍ

mrelbernitutoriales.com
Lista de Reproducción Microcontroladores PIC

Microcontroladores PIC 1 …

Lista de Reproducción Microcontroladores AVR

Política y privacidad de Cookies


microcontroladores-mrelberni.com/interrupcion-timer0-pic/ 6/7
5/6/2019 Interrupción timer0 PIC - MICROCONTROLADORES

Microcontrolador AVR 1 pr…


pr…

Google Maps

Esta página no puede cargar Google Maps


correctamente.

¿Eres el propietario de este sitio web? Aceptar

50 km Datos de mapas ©2019 Google

Compartir

   
· © 2019 MICROCONTROLADORES · Creado con  · Diseñado con el Tema Customizr ·

Política y privacidad de Cookies


microcontroladores-mrelberni.com/interrupcion-timer0-pic/ 7/7

Anda mungkin juga menyukai