SlideShare una empresa de Scribd logo
1 de 38
Descargar para leer sin conexión
INTERRUPCIONES Y
TEMPORIZADORES
MICROELECTRONICA
GENERALIDADES
 Las interrupciones son desviaciones del flujo de
control del programa originadas asíncronamente por
diversos sucesos que no se hallan bajo la supervisión
de las instrucciones.
 Dichos sucesos pueden ser externos al sistema,
como la generación de un flanco o nivel activo en un
pin del microcontrolador, o bien internos, como el
desbordamiento de un contador.
 Las interrupciones son desviaciones del flujo de
control del programa originadas asíncronamente por
diversos sucesos que no se hallan bajo la supervisión
de las instrucciones.
 Dichos sucesos pueden ser externos al sistema,
como la generación de un flanco o nivel activo en un
pin del microcontrolador, o bien internos, como el
desbordamiento de un contador.
GENERALIDADES
 Se detiene la ejecución del programa en curso, se
salva la dirección actual del PC en la Pila y se carga
el PC con una dirección, en el caso de una
interrupción es una dirección “reservada” de la
memoria de código, llamada Vector de
interrupción, 0x04 para los microcontroladores de
la gama baja y media; mientras que en la gama alta
existen dos direcciones: 0x08 prioridad alta y 0x18
prioridad baja.
 Se detiene la ejecución del programa en curso, se
salva la dirección actual del PC en la Pila y se carga
el PC con una dirección, en el caso de una
interrupción es una dirección “reservada” de la
memoria de código, llamada Vector de
interrupción, 0x04 para los microcontroladores de
la gama baja y media; mientras que en la gama alta
existen dos direcciones: 0x08 prioridad alta y 0x18
prioridad baja.
ENABLE/DISABLE_INTERRUPTS() are:
#define GLOBAL 0xF2C0
#define INT_RTCC 0xF220
#define INT_TIMER0 0xF220
#define INT_TIMER1 0x9D01
#define INT_TIMER2 0x9D02
#define INT_TIMER3 0xA002
#define INT_EXT 0xF210
#define INT_EXT1 0xF008
#define INT_EXT2 0xF010
#define INT_RB 0xFFF208
#define INT_AD 0x9D40
INTERRUPCIONES - DIRECTIVAS
ENABLE/DISABLE_INTERRUPTS() are:
#define GLOBAL 0xF2C0
#define INT_RTCC 0xF220
#define INT_TIMER0 0xF220
#define INT_TIMER1 0x9D01
#define INT_TIMER2 0x9D02
#define INT_TIMER3 0xA002
#define INT_EXT 0xF210
#define INT_EXT1 0xF008
#define INT_EXT2 0xF010
#define INT_RB 0xFFF208
#define INT_AD 0x9D40
ENABLE/DISABLE_INTERRUPTS() are:
#define INT_RDA 0x9D20
#define INT_TBE 0x9D10
#define INT_SSP 0x9D08
#define INT_CCP1 0x9D04
#define INT_CCP2 0xA001
#define INT_BUSCOL 0xA008
#define INT_LOWVOLT 0xA004
#define INT_COMP 0xA040
#define INT_EEPROM 0xA010
#define INT_OSCF 0xA080
#define INT_SPP 0x9D80
#define INT_USB 0xA020
INTERRUPCIONES - DIRECTIVAS
ENABLE/DISABLE_INTERRUPTS() are:
#define INT_RDA 0x9D20
#define INT_TBE 0x9D10
#define INT_SSP 0x9D08
#define INT_CCP1 0x9D04
#define INT_CCP2 0xA001
#define INT_BUSCOL 0xA008
#define INT_LOWVOLT 0xA004
#define INT_COMP 0xA040
#define INT_EEPROM 0xA010
#define INT_OSCF 0xA080
#define INT_SPP 0x9D80
#define INT_USB 0xA020
DEFAULT - GLOBAL
Luis David Narváez
VENTAJAS
INTERRUPCION EXTERNA
RB0/INT
INTERRUPCION EXTERNA
RB0/INT
REGISTRO INTCON
GIE PEIE T0IE INTE RBIE T0IF INTF RBIF
DESCRIPCIÓN
 Esta fuente de interrupción es sumamente importante
para atender acontecimientos externos en tiempo real.
 Cuando ocurre alguno de ellos activa el pin RB0/INT y
se hace una petición de interrupción, en forma
automática.
 Este método es más eficaz que la técnica de sondeo ya
que el microcontrolador no perderá tiempo preguntando
a la línea de entrada para leer su estado, sino que
únicamente atenderá al periférico cuando éste se lo pida
mediante la solicitud de interrupción.
 Esta fuente de interrupción es sumamente importante
para atender acontecimientos externos en tiempo real.
 Cuando ocurre alguno de ellos activa el pin RB0/INT y
se hace una petición de interrupción, en forma
automática.
 Este método es más eficaz que la técnica de sondeo ya
que el microcontrolador no perderá tiempo preguntando
a la línea de entrada para leer su estado, sino que
únicamente atenderá al periférico cuando éste se lo pida
mediante la solicitud de interrupción.
RB0/INT - PICC
 En el caso de la interrupción externa RB0/INT de los
PIC18FXXX se tiene la siguiente directiva.
#INT_EXT – flanco en el pin RB0. Se activa la bandera INTF.
 La directiva #INT_Global indica que la función que va a
continuación sustituye todas las acciones que inserta el
compilador al aceptarse una interrupción. Sólo se ejecuta lo
que vaya en dicha función.
 En el caso de la interrupción externa RB0/INT de los
PIC18FXXX se tiene la siguiente directiva.
#INT_EXT – flanco en el pin RB0. Se activa la bandera INTF.
 La directiva #INT_Global indica que la función que va a
continuación sustituye todas las acciones que inserta el
compilador al aceptarse una interrupción. Sólo se ejecuta lo
que vaya en dicha función.
RB0/INT - PICC
 Si se utilizan las directivas de interrupción, el
compilador genera el código necesario para saltar a la
función que va tras esta directiva en el momento de
la interrupción.
 Además, genera el código para salvar al principio y
restituir al final el contexto, y también borrará la
bandera que se activó con la interrupción. El
programador, solo debe encargarse de habilitar
las interrupciones.
 Si se utilizan las directivas de interrupción, el
compilador genera el código necesario para saltar a la
función que va tras esta directiva en el momento de
la interrupción.
 Además, genera el código para salvar al principio y
restituir al final el contexto, y también borrará la
bandera que se activó con la interrupción. El
programador, solo debe encargarse de habilitar
las interrupciones.
RB0/INT - PICC
 Existe también otra función adicional destinada a
configurar el flanco activo que genera la interrupción
externa (en RB0).
 ext_int_edge (0, H_TO_L); - equivale a INTEDG=0.
Selecciona el flanco de bajada para activar la bandera
INTF.
 ext_int_edge (0, L_TO_H); - equivale a INTEDG=1.
Selecciona el flanco de subida para activar la bandera
INTF.
 Existe también otra función adicional destinada a
configurar el flanco activo que genera la interrupción
externa (en RB0).
 ext_int_edge (0, H_TO_L); - equivale a INTEDG=0.
Selecciona el flanco de bajada para activar la bandera
INTF.
 ext_int_edge (0, L_TO_H); - equivale a INTEDG=1.
Selecciona el flanco de subida para activar la bandera
INTF.
PRÁCTICA
 Enunciado: Realizar un programa que indique en
tiempo real la recepción de una señal externa recibida
por el pin INT0, INT1, INT2 del microcontrolador. La
recepción de dicha señal se lo hará a través de tres
LEDs indicadores, los cuales se apagarán mientras se
presione el pulsador correspondiente.
 Enunciado: Realizar un programa que indique en
tiempo real la recepción de una señal externa recibida
por el pin INT0, INT1, INT2 del microcontrolador. La
recepción de dicha señal se lo hará a través de tres
LEDs indicadores, los cuales se apagarán mientras se
presione el pulsador correspondiente.
FLUJOGRAMA
SIMULACIÓN
INTERRUPCION RBI
INTERRUPCION EXTERNA RBI
REGISTRO INTCON
GIE PEIE T0IE INTE RBIE T0IF INTF RBIF
INTERRUPCION RBI
DESCRIPCIÓN
 Los pines <RB7:RB4> del PORTB producen una sola
interrupción por cambio de su estado.
 Para activar la interrupción por cambio de estado en los
pines <RB7:RB4> los bits RBIE y GIE del registro
INTCON deben estar a “1”, en estas condiciones
cuando se produce un cambio de nivel en cualquiera de
las líneas RB7 a RB4 se activa la bandera RBIF del
registro INTCON.
 Los pines <RB7:RB4> del PORTB producen una sola
interrupción por cambio de su estado.
 Para activar la interrupción por cambio de estado en los
pines <RB7:RB4> los bits RBIE y GIE del registro
INTCON deben estar a “1”, en estas condiciones
cuando se produce un cambio de nivel en cualquiera de
las líneas RB7 a RB4 se activa la bandera RBIF del
registro INTCON.
RBI – CCS COMPILER
 Entonces en la subrutina de interrupción se deberá hacer
el tratamiento respectivo para identificar cual de los
pines se activó.
 En Lenguaje C, la interrupción se activa con
enable_interrupts(INT_RB) y la subrutina de
tratamiento de la interrupción se llama con INT_RB.
 Entonces en la subrutina de interrupción se deberá hacer
el tratamiento respectivo para identificar cual de los
pines se activó.
 En Lenguaje C, la interrupción se activa con
enable_interrupts(INT_RB) y la subrutina de
tratamiento de la interrupción se llama con INT_RB.
RBI – CCS COMPILER
 En caso que se estén atendiendo varias interrupciones,
el compilador C, también tiene la directiva #priority que
sirve para fijar la prioridad de las interrupciones, así, las
interrupciones más importantes están son listadas al
principio.
 Por ejemplo:
 #priority ext, rbi; //la interrupción RB0/INT será
atendida antes de RBI.
 En caso que se estén atendiendo varias interrupciones,
el compilador C, también tiene la directiva #priority que
sirve para fijar la prioridad de las interrupciones, así, las
interrupciones más importantes están son listadas al
principio.
 Por ejemplo:
 #priority ext, rbi; //la interrupción RB0/INT será
atendida antes de RBI.
PRÁCTICA
Enunciado: Se conectan 4 pulsadores a RB4, RB5,
RB6 y RB7 y una LCD al puerto D. Se realiza un
contador automática que dependa de la detección de
cambio de estado en cada pin RBI, de acuerdo al
siguiente detalle: +1, -1, -10, +10.
Enunciado: Se conectan 4 pulsadores a RB4, RB5,
RB6 y RB7 y una LCD al puerto D. Se realiza un
contador automática que dependa de la detección de
cambio de estado en cada pin RBI, de acuerdo al
siguiente detalle: +1, -1, -10, +10.
SIMULACIÓN
TIMERSTIMERS
RTCC, TIMER 1,TIMER 2,TIMER 3
Luis David Narváez
TIMER 0 - RTCC
 Una de las labores más habituales en los programas
de control de dispositivos suele ser determinar
intervalos concretos de tiempo, y recibe el nombre
de temporizador (timer) el elemento encargado de
realizar esta función.
 También suele ser frecuente contar los impulsos que
se producen en el exterior del sistema, y el elemento
destinado a este fin se llama contador.
Luis David Narváez
 Una de las labores más habituales en los programas
de control de dispositivos suele ser determinar
intervalos concretos de tiempo, y recibe el nombre
de temporizador (timer) el elemento encargado de
realizar esta función.
 También suele ser frecuente contar los impulsos que
se producen en el exterior del sistema, y el elemento
destinado a este fin se llama contador.
TIMER 0 - RTCC
 TMR0 es un contador/temporizador de 8/16 bits.
 Se puede leer y escribir.
 Puede trabajar con reloj interno o con señal de reloj
externa.
 Selección del flanco en el reloj externo.
 Predivisor de frecuencia de reloj programable por
software de 8 bits.
 Interrupción opcional en el desbordamiento.
Luis David Narváez
 TMR0 es un contador/temporizador de 8/16 bits.
 Se puede leer y escribir.
 Puede trabajar con reloj interno o con señal de reloj
externa.
 Selección del flanco en el reloj externo.
 Predivisor de frecuencia de reloj programable por
software de 8 bits.
 Interrupción opcional en el desbordamiento.
TEMPORIZACIÓN TIMER 0
 El tiempo empleado en una temporización se puede
calcular a partir de un ciclo de instrucción (es decir una
instrucción por cada ½ microsegundo, si se trabaja con
un cristal HS de 8 MHz), también necesitamos el valor del
Divisor de Frecuencia (el que seleccionamos con los
bits PS2, PS1 y PS0), y finalmente con el complemento
del valor cargado en TMR0 (es decir 65536-TMR0), la
ecuación que nos permite realizar el cálculo es la que
sigue:
 Temporización = Ciclo de instrucción * (65536 -
TMR0) * Divisor de Frecuencia
 El tiempo empleado en una temporización se puede
calcular a partir de un ciclo de instrucción (es decir una
instrucción por cada ½ microsegundo, si se trabaja con
un cristal HS de 8 MHz), también necesitamos el valor del
Divisor de Frecuencia (el que seleccionamos con los
bits PS2, PS1 y PS0), y finalmente con el complemento
del valor cargado en TMR0 (es decir 65536-TMR0), la
ecuación que nos permite realizar el cálculo es la que
sigue:
 Temporización = Ciclo de instrucción * (65536 -
TMR0) * Divisor de Frecuencia
TEMPORIZACIÓN TIMER 0
 Se desea una temporización de 100 ms (100 milisegundos), con un
HS de 8 MHz., y que además seleccionamos como Divisor de
frecuencia 256 (es decir PS2,PS1,PS0 = 1,1,1). La pregunta, sería
¿Cuál es el valor que se debe cargar enTMR0?
 Despejando
65536-TMR0 =Temporización(en microsegundos)/(1 us/cm* Div. de Frec.)
 (cm ciclos máquina) y reemplazando tendremos
 65536-TMR0 = 100000 us/(0,5 us/cm * 256)
 65536-TMR0 ~ 781 cm
 Se desea una temporización de 100 ms (100 milisegundos), con un
HS de 8 MHz., y que además seleccionamos como Divisor de
frecuencia 256 (es decir PS2,PS1,PS0 = 1,1,1). La pregunta, sería
¿Cuál es el valor que se debe cargar enTMR0?
 Despejando
65536-TMR0 =Temporización(en microsegundos)/(1 us/cm* Div. de Frec.)
 (cm ciclos máquina) y reemplazando tendremos
 65536-TMR0 = 100000 us/(0,5 us/cm * 256)
 65536-TMR0 ~ 781 cm
TEMPORIZACIÓN TIMER 0
 Eso significa que en TMR0 deberemos cargar es:
65536-781=64755
 A partir de allí el TMR0 contará los 781 ciclos que
faltan para desbordarse y producir la interrupción, y
el tiempo que tardará en hacerlo es 100ms
aproximadamente.
 Eso significa que en TMR0 deberemos cargar es:
65536-781=64755
 A partir de allí el TMR0 contará los 781 ciclos que
faltan para desbordarse y producir la interrupción, y
el tiempo que tardará en hacerlo es 100ms
aproximadamente.
TIMER 0 – PIC C
Luis David Narváez
TIMER 0 – PIC C
 Escritura en el módulo TMR0
 Set_timer0(valor);
 Valor: Entero de 8/16 bits
 Lectura en el módulo TMR0
 Valor=get_timer0();
 Valor: Entero de 8/16 bits
Luis David Narváez
 Escritura en el módulo TMR0
 Set_timer0(valor);
 Valor: Entero de 8/16 bits
 Lectura en el módulo TMR0
 Valor=get_timer0();
 Valor: Entero de 8/16 bits
TIMER 0 – PIC C
 Los distintos modos se pueden agrupar mediante el
empleo del símbolo |. Por ejemplo:
Setup_timer_0(RTCC_Div_256|RTCC_Ext_L_to_H);
 Nota!!! En ocasiones se emplea RTCC en lugar de
timer0, es decir, set_RTCC es lo mismo que
set_timer0.
 Los distintos modos se pueden agrupar mediante el
empleo del símbolo |. Por ejemplo:
Setup_timer_0(RTCC_Div_256|RTCC_Ext_L_to_H);
 Nota!!! En ocasiones se emplea RTCC en lugar de
timer0, es decir, set_RTCC es lo mismo que
set_timer0.
PRÁCTICA
 Enunciado:
 Desarrollar un programa que encienda y
apague secuencialmente un LED cada 300ms.
Para la temporización se empleará la
interrupción del TMR0.
 Enunciado:
 Desarrollar un programa que encienda y
apague secuencialmente un LED cada 300ms.
Para la temporización se empleará la
interrupción del TMR0.
DESARROLLO
 Calcular la carga del TMR0 para 10 ms con un
divisor de frecuencia de 256 (Prescaler de 256)
 Entonces usaremos un registro auxiliar con un
contenido de 30 para obtener los 300ms.
 Carga Registro Auxiliar con 30 para obtener los
300ms de temporización.
 Bucle infinito en el programa principal.
 Calcular la carga del TMR0 para 10 ms con un
divisor de frecuencia de 256 (Prescaler de 256)
 Entonces usaremos un registro auxiliar con un
contenido de 30 para obtener los 300ms.
 Carga Registro Auxiliar con 30 para obtener los
300ms de temporización.
 Bucle infinito en el programa principal.
DESARROLLO
 Para la subrutina de interrupción, tenemos:
 Recarga del TMR0 con su valor correspondiente para
obtener una temporización de 10ms.
 Disminuir (aumentar) el Contador Auxiliar hasta
obtener los 300ms.
 Verificar el estado del LED. Si está apagado lo enciende y
viceversa.
 Mantener en ese estado (prendido o pagado) durante
300ms.
 Regresar al programa principal.
 Para la subrutina de interrupción, tenemos:
 Recarga del TMR0 con su valor correspondiente para
obtener una temporización de 10ms.
 Disminuir (aumentar) el Contador Auxiliar hasta
obtener los 300ms.
 Verificar el estado del LED. Si está apagado lo enciende y
viceversa.
 Mantener en ese estado (prendido o pagado) durante
300ms.
 Regresar al programa principal.
SIMULACIÓN
SIMULACIÓN
EL TMR0 COMO CONTADOR DE
EVENTOS EXTERNOS
Práctica:
 Enunciado:
 Se desea realizar un programa que cuente los pulsos
provenientes por el pin RA4 mediante el TMR0 configurado
como contador, y el TMR1 como base de tiempo de 1s.
(Frecuencímetro)
 De esta manera se visualizará la frecuencia en una LCD.
Práctica:
 Enunciado:
 Se desea realizar un programa que cuente los pulsos
provenientes por el pin RA4 mediante el TMR0 configurado
como contador, y el TMR1 como base de tiempo de 1s.
(Frecuencímetro)
 De esta manera se visualizará la frecuencia en una LCD.
SIMULACIÓN

Más contenido relacionado

La actualidad más candente

Arduino labview
Arduino labviewArduino labview
Arduino labviewJose Limon
 
Potencia y factor de potencia en circuitos monofásicos
Potencia y factor de potencia en circuitos monofásicosPotencia y factor de potencia en circuitos monofásicos
Potencia y factor de potencia en circuitos monofásicosWalter Junior Castro Huertas
 
MOSFET uso aplicaciones definicion
MOSFET uso aplicaciones definicionMOSFET uso aplicaciones definicion
MOSFET uso aplicaciones definicionJ'Luis Mata
 
Amplificadores diferenciales y en cascada
Amplificadores diferenciales y en cascadaAmplificadores diferenciales y en cascada
Amplificadores diferenciales y en cascadaAnaCegarra
 
El transistor bjt
El transistor bjtEl transistor bjt
El transistor bjtFenix Alome
 
PWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros InvolucradosPWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros InvolucradosEduardo Henriquez
 
Transistor como interruptor y amplificador
Transistor como interruptor y amplificador Transistor como interruptor y amplificador
Transistor como interruptor y amplificador Sebastian Hermosilla
 
Pruebas a Motores Eléctricos
Pruebas a Motores EléctricosPruebas a Motores Eléctricos
Pruebas a Motores EléctricosTRANSEQUIPOS S.A.
 
Sistemas lineales invariantes en el tiempo
Sistemas lineales invariantes en el tiempoSistemas lineales invariantes en el tiempo
Sistemas lineales invariantes en el tiempoMari Colmenares
 
Interruptores y seccionadores de alta y media tension
Interruptores y seccionadores de alta y media tensionInterruptores y seccionadores de alta y media tension
Interruptores y seccionadores de alta y media tensionDANNY RAMIREZ FLOREZ
 
Tiristores Bct
Tiristores BctTiristores Bct
Tiristores BctBartkl3
 
93031561 automatismos-electricos-con-contact-ores
93031561 automatismos-electricos-con-contact-ores93031561 automatismos-electricos-con-contact-ores
93031561 automatismos-electricos-con-contact-oresbernardo morales moya
 
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
 

La actualidad más candente (20)

Arduino labview
Arduino labviewArduino labview
Arduino labview
 
Potencia y factor de potencia en circuitos monofásicos
Potencia y factor de potencia en circuitos monofásicosPotencia y factor de potencia en circuitos monofásicos
Potencia y factor de potencia en circuitos monofásicos
 
Arrancadores estaticos
Arrancadores estaticosArrancadores estaticos
Arrancadores estaticos
 
MOSFET uso aplicaciones definicion
MOSFET uso aplicaciones definicionMOSFET uso aplicaciones definicion
MOSFET uso aplicaciones definicion
 
Subrutinas de retardo
Subrutinas de retardoSubrutinas de retardo
Subrutinas de retardo
 
Amplificadores diferenciales y en cascada
Amplificadores diferenciales y en cascadaAmplificadores diferenciales y en cascada
Amplificadores diferenciales y en cascada
 
El transistor bjt
El transistor bjtEl transistor bjt
El transistor bjt
 
PWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros InvolucradosPWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros Involucrados
 
Transistor como interruptor y amplificador
Transistor como interruptor y amplificador Transistor como interruptor y amplificador
Transistor como interruptor y amplificador
 
Pruebas a Motores Eléctricos
Pruebas a Motores EléctricosPruebas a Motores Eléctricos
Pruebas a Motores Eléctricos
 
Sistemas lineales invariantes en el tiempo
Sistemas lineales invariantes en el tiempoSistemas lineales invariantes en el tiempo
Sistemas lineales invariantes en el tiempo
 
Flip-Flops y aplicaciones de los Latch
Flip-Flops y aplicaciones de los LatchFlip-Flops y aplicaciones de los Latch
Flip-Flops y aplicaciones de los Latch
 
Interruptores y seccionadores de alta y media tension
Interruptores y seccionadores de alta y media tensionInterruptores y seccionadores de alta y media tension
Interruptores y seccionadores de alta y media tension
 
EL TRANSITOR
EL TRANSITOREL TRANSITOR
EL TRANSITOR
 
3.3. Configuración en Base Común
3.3. Configuración en Base Común3.3. Configuración en Base Común
3.3. Configuración en Base Común
 
Tiristores Bct
Tiristores BctTiristores Bct
Tiristores Bct
 
Cmos
CmosCmos
Cmos
 
tipos de tiristores
tipos de tiristores tipos de tiristores
tipos de tiristores
 
93031561 automatismos-electricos-con-contact-ores
93031561 automatismos-electricos-con-contact-ores93031561 automatismos-electricos-con-contact-ores
93031561 automatismos-electricos-con-contact-ores
 
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
 

Similar a INTERRUPCIONES Y TEMPORIZADORES MICROELECTRONICA

Interrupciones y Temporizadores pucesi
Interrupciones y Temporizadores   pucesiInterrupciones y Temporizadores   pucesi
Interrupciones y Temporizadores pucesiDavid Narváez
 
arquitectura de un microcontrolador
arquitectura de un microcontroladorarquitectura de un microcontrolador
arquitectura de un microcontroladorPablo Ramos Garcia
 
Introducpic2
Introducpic2Introducpic2
Introducpic2conalep
 
Introducpic
IntroducpicIntroducpic
Introducpicconalep
 
Curso Micro Tema 5
Curso Micro Tema 5Curso Micro Tema 5
Curso Micro Tema 5Luis Zurita
 
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 f87xxfreddymadriz
 
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 Micro Tema 2
Curso Micro Tema 2Curso Micro Tema 2
Curso Micro Tema 2Luis Zurita
 
Introducción pic 16 f 84 universidad de la marina mercante
Introducción pic 16 f 84   universidad de la marina mercanteIntroducción pic 16 f 84   universidad de la marina mercante
Introducción pic 16 f 84 universidad de la marina mercanteDaniel Remondegui
 

Similar a INTERRUPCIONES Y TEMPORIZADORES MICROELECTRONICA (20)

Interrupciones y Temporizadores pucesi
Interrupciones y Temporizadores   pucesiInterrupciones y Temporizadores   pucesi
Interrupciones y Temporizadores pucesi
 
arquitectura de un microcontrolador
arquitectura de un microcontroladorarquitectura de un microcontrolador
arquitectura de un microcontrolador
 
Tarea final
Tarea finalTarea final
Tarea final
 
Cartilla pic16f877
Cartilla pic16f877Cartilla pic16f877
Cartilla pic16f877
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Introducpic2
Introducpic2Introducpic2
Introducpic2
 
Introducpic
IntroducpicIntroducpic
Introducpic
 
Niple diapopsitiva
Niple   diapopsitivaNiple   diapopsitiva
Niple diapopsitiva
 
Niple diapopsitiva
Niple   diapopsitivaNiple   diapopsitiva
Niple diapopsitiva
 
Niple diapopsitiva
Niple   diapopsitivaNiple   diapopsitiva
Niple diapopsitiva
 
Curso Micro Tema 5
Curso Micro Tema 5Curso Micro Tema 5
Curso Micro Tema 5
 
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
 
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 Micro Tema 2
Curso Micro Tema 2Curso Micro Tema 2
Curso Micro Tema 2
 
Unidad I
Unidad IUnidad I
Unidad I
 
Microcontrolador PIC16F887
Microcontrolador PIC16F887Microcontrolador PIC16F887
Microcontrolador PIC16F887
 
Introducción pic 16 f 84 universidad de la marina mercante
Introducción pic 16 f 84   universidad de la marina mercanteIntroducción pic 16 f 84   universidad de la marina mercante
Introducción pic 16 f 84 universidad de la marina mercante
 
1. microcontrolador
1. microcontrolador1. microcontrolador
1. microcontrolador
 
Programación PIC16F84A
Programación PIC16F84AProgramación PIC16F84A
Programación PIC16F84A
 

Más de David Narváez

3. Procedimientos Estadística Descriptiva.pdf
3. Procedimientos Estadística Descriptiva.pdf3. Procedimientos Estadística Descriptiva.pdf
3. Procedimientos Estadística Descriptiva.pdfDavid Narváez
 
1. Conceptos Datos Valores - Gamificacion.pdf
1. Conceptos Datos Valores - Gamificacion.pdf1. Conceptos Datos Valores - Gamificacion.pdf
1. Conceptos Datos Valores - Gamificacion.pdfDavid Narváez
 
Muestreo Aleatorio - Bioestadística
Muestreo Aleatorio - BioestadísticaMuestreo Aleatorio - Bioestadística
Muestreo Aleatorio - BioestadísticaDavid Narváez
 
Protocolos y Acceso a la Red
Protocolos y Acceso a la RedProtocolos y Acceso a la Red
Protocolos y Acceso a la RedDavid Narváez
 
Procedimientos Estadística Descriptiva
Procedimientos Estadística DescriptivaProcedimientos Estadística Descriptiva
Procedimientos Estadística DescriptivaDavid Narváez
 
Variables Recolección Datos
Variables Recolección DatosVariables Recolección Datos
Variables Recolección DatosDavid Narváez
 
2. Sistema Operativo de Red.pdf
2. Sistema Operativo de Red.pdf2. Sistema Operativo de Red.pdf
2. Sistema Operativo de Red.pdfDavid Narváez
 
Conceptos Datos Valores - Bioestadistica.pdf
Conceptos Datos Valores - Bioestadistica.pdfConceptos Datos Valores - Bioestadistica.pdf
Conceptos Datos Valores - Bioestadistica.pdfDavid Narváez
 
1. Redes en la Actualidad
1. Redes en la Actualidad1. Redes en la Actualidad
1. Redes en la ActualidadDavid Narváez
 
3. Medidas de posición y variabilidad
3. Medidas de posición y variabilidad3. Medidas de posición y variabilidad
3. Medidas de posición y variabilidadDavid Narváez
 
2.2C Procedimientos Estadística Descriptiva-Tendencias Centrales.pdf
2.2C Procedimientos Estadística Descriptiva-Tendencias Centrales.pdf2.2C Procedimientos Estadística Descriptiva-Tendencias Centrales.pdf
2.2C Procedimientos Estadística Descriptiva-Tendencias Centrales.pdfDavid Narváez
 
Procedimientos Estadística Descriptiva-Frecuencias.pdf
Procedimientos Estadística Descriptiva-Frecuencias.pdfProcedimientos Estadística Descriptiva-Frecuencias.pdf
Procedimientos Estadística Descriptiva-Frecuencias.pdfDavid Narváez
 
2.2 Procedimientos Estadistica Descriptiva.pdf
2.2 Procedimientos Estadistica Descriptiva.pdf2.2 Procedimientos Estadistica Descriptiva.pdf
2.2 Procedimientos Estadistica Descriptiva.pdfDavid Narváez
 
2.1 Variables Recoleccion Datos.pdf
2.1 Variables Recoleccion Datos.pdf2.1 Variables Recoleccion Datos.pdf
2.1 Variables Recoleccion Datos.pdfDavid Narváez
 
Conceptos Datos Valores - Bioestadistica.pdf
Conceptos Datos Valores - Bioestadistica.pdfConceptos Datos Valores - Bioestadistica.pdf
Conceptos Datos Valores - Bioestadistica.pdfDavid Narváez
 
1. Perspectivas, impactos y procesos IOT
1. Perspectivas, impactos y procesos IOT1. Perspectivas, impactos y procesos IOT
1. Perspectivas, impactos y procesos IOTDavid Narváez
 
Seguridad de la información
Seguridad de la informaciónSeguridad de la información
Seguridad de la informaciónDavid Narváez
 
Virtual private network VPN e IPSec
Virtual private network VPN e IPSecVirtual private network VPN e IPSec
Virtual private network VPN e IPSecDavid Narváez
 
Listas de control de acceso - ACL
Listas de control de acceso - ACLListas de control de acceso - ACL
Listas de control de acceso - ACLDavid Narváez
 
Recomendación X.800 UIT
Recomendación X.800 UITRecomendación X.800 UIT
Recomendación X.800 UITDavid Narváez
 

Más de David Narváez (20)

3. Procedimientos Estadística Descriptiva.pdf
3. Procedimientos Estadística Descriptiva.pdf3. Procedimientos Estadística Descriptiva.pdf
3. Procedimientos Estadística Descriptiva.pdf
 
1. Conceptos Datos Valores - Gamificacion.pdf
1. Conceptos Datos Valores - Gamificacion.pdf1. Conceptos Datos Valores - Gamificacion.pdf
1. Conceptos Datos Valores - Gamificacion.pdf
 
Muestreo Aleatorio - Bioestadística
Muestreo Aleatorio - BioestadísticaMuestreo Aleatorio - Bioestadística
Muestreo Aleatorio - Bioestadística
 
Protocolos y Acceso a la Red
Protocolos y Acceso a la RedProtocolos y Acceso a la Red
Protocolos y Acceso a la Red
 
Procedimientos Estadística Descriptiva
Procedimientos Estadística DescriptivaProcedimientos Estadística Descriptiva
Procedimientos Estadística Descriptiva
 
Variables Recolección Datos
Variables Recolección DatosVariables Recolección Datos
Variables Recolección Datos
 
2. Sistema Operativo de Red.pdf
2. Sistema Operativo de Red.pdf2. Sistema Operativo de Red.pdf
2. Sistema Operativo de Red.pdf
 
Conceptos Datos Valores - Bioestadistica.pdf
Conceptos Datos Valores - Bioestadistica.pdfConceptos Datos Valores - Bioestadistica.pdf
Conceptos Datos Valores - Bioestadistica.pdf
 
1. Redes en la Actualidad
1. Redes en la Actualidad1. Redes en la Actualidad
1. Redes en la Actualidad
 
3. Medidas de posición y variabilidad
3. Medidas de posición y variabilidad3. Medidas de posición y variabilidad
3. Medidas de posición y variabilidad
 
2.2C Procedimientos Estadística Descriptiva-Tendencias Centrales.pdf
2.2C Procedimientos Estadística Descriptiva-Tendencias Centrales.pdf2.2C Procedimientos Estadística Descriptiva-Tendencias Centrales.pdf
2.2C Procedimientos Estadística Descriptiva-Tendencias Centrales.pdf
 
Procedimientos Estadística Descriptiva-Frecuencias.pdf
Procedimientos Estadística Descriptiva-Frecuencias.pdfProcedimientos Estadística Descriptiva-Frecuencias.pdf
Procedimientos Estadística Descriptiva-Frecuencias.pdf
 
2.2 Procedimientos Estadistica Descriptiva.pdf
2.2 Procedimientos Estadistica Descriptiva.pdf2.2 Procedimientos Estadistica Descriptiva.pdf
2.2 Procedimientos Estadistica Descriptiva.pdf
 
2.1 Variables Recoleccion Datos.pdf
2.1 Variables Recoleccion Datos.pdf2.1 Variables Recoleccion Datos.pdf
2.1 Variables Recoleccion Datos.pdf
 
Conceptos Datos Valores - Bioestadistica.pdf
Conceptos Datos Valores - Bioestadistica.pdfConceptos Datos Valores - Bioestadistica.pdf
Conceptos Datos Valores - Bioestadistica.pdf
 
1. Perspectivas, impactos y procesos IOT
1. Perspectivas, impactos y procesos IOT1. Perspectivas, impactos y procesos IOT
1. Perspectivas, impactos y procesos IOT
 
Seguridad de la información
Seguridad de la informaciónSeguridad de la información
Seguridad de la información
 
Virtual private network VPN e IPSec
Virtual private network VPN e IPSecVirtual private network VPN e IPSec
Virtual private network VPN e IPSec
 
Listas de control de acceso - ACL
Listas de control de acceso - ACLListas de control de acceso - ACL
Listas de control de acceso - ACL
 
Recomendación X.800 UIT
Recomendación X.800 UITRecomendación X.800 UIT
Recomendación X.800 UIT
 

Último

Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 

Último (20)

Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 

INTERRUPCIONES Y TEMPORIZADORES MICROELECTRONICA

  • 2. GENERALIDADES  Las interrupciones son desviaciones del flujo de control del programa originadas asíncronamente por diversos sucesos que no se hallan bajo la supervisión de las instrucciones.  Dichos sucesos pueden ser externos al sistema, como la generación de un flanco o nivel activo en un pin del microcontrolador, o bien internos, como el desbordamiento de un contador.  Las interrupciones son desviaciones del flujo de control del programa originadas asíncronamente por diversos sucesos que no se hallan bajo la supervisión de las instrucciones.  Dichos sucesos pueden ser externos al sistema, como la generación de un flanco o nivel activo en un pin del microcontrolador, o bien internos, como el desbordamiento de un contador.
  • 3. GENERALIDADES  Se detiene la ejecución del programa en curso, se salva la dirección actual del PC en la Pila y se carga el PC con una dirección, en el caso de una interrupción es una dirección “reservada” de la memoria de código, llamada Vector de interrupción, 0x04 para los microcontroladores de la gama baja y media; mientras que en la gama alta existen dos direcciones: 0x08 prioridad alta y 0x18 prioridad baja.  Se detiene la ejecución del programa en curso, se salva la dirección actual del PC en la Pila y se carga el PC con una dirección, en el caso de una interrupción es una dirección “reservada” de la memoria de código, llamada Vector de interrupción, 0x04 para los microcontroladores de la gama baja y media; mientras que en la gama alta existen dos direcciones: 0x08 prioridad alta y 0x18 prioridad baja.
  • 4. ENABLE/DISABLE_INTERRUPTS() are: #define GLOBAL 0xF2C0 #define INT_RTCC 0xF220 #define INT_TIMER0 0xF220 #define INT_TIMER1 0x9D01 #define INT_TIMER2 0x9D02 #define INT_TIMER3 0xA002 #define INT_EXT 0xF210 #define INT_EXT1 0xF008 #define INT_EXT2 0xF010 #define INT_RB 0xFFF208 #define INT_AD 0x9D40 INTERRUPCIONES - DIRECTIVAS ENABLE/DISABLE_INTERRUPTS() are: #define GLOBAL 0xF2C0 #define INT_RTCC 0xF220 #define INT_TIMER0 0xF220 #define INT_TIMER1 0x9D01 #define INT_TIMER2 0x9D02 #define INT_TIMER3 0xA002 #define INT_EXT 0xF210 #define INT_EXT1 0xF008 #define INT_EXT2 0xF010 #define INT_RB 0xFFF208 #define INT_AD 0x9D40
  • 5. ENABLE/DISABLE_INTERRUPTS() are: #define INT_RDA 0x9D20 #define INT_TBE 0x9D10 #define INT_SSP 0x9D08 #define INT_CCP1 0x9D04 #define INT_CCP2 0xA001 #define INT_BUSCOL 0xA008 #define INT_LOWVOLT 0xA004 #define INT_COMP 0xA040 #define INT_EEPROM 0xA010 #define INT_OSCF 0xA080 #define INT_SPP 0x9D80 #define INT_USB 0xA020 INTERRUPCIONES - DIRECTIVAS ENABLE/DISABLE_INTERRUPTS() are: #define INT_RDA 0x9D20 #define INT_TBE 0x9D10 #define INT_SSP 0x9D08 #define INT_CCP1 0x9D04 #define INT_CCP2 0xA001 #define INT_BUSCOL 0xA008 #define INT_LOWVOLT 0xA004 #define INT_COMP 0xA040 #define INT_EEPROM 0xA010 #define INT_OSCF 0xA080 #define INT_SPP 0x9D80 #define INT_USB 0xA020
  • 6. DEFAULT - GLOBAL Luis David Narváez
  • 8. INTERRUPCION EXTERNA RB0/INT INTERRUPCION EXTERNA RB0/INT REGISTRO INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF
  • 9. DESCRIPCIÓN  Esta fuente de interrupción es sumamente importante para atender acontecimientos externos en tiempo real.  Cuando ocurre alguno de ellos activa el pin RB0/INT y se hace una petición de interrupción, en forma automática.  Este método es más eficaz que la técnica de sondeo ya que el microcontrolador no perderá tiempo preguntando a la línea de entrada para leer su estado, sino que únicamente atenderá al periférico cuando éste se lo pida mediante la solicitud de interrupción.  Esta fuente de interrupción es sumamente importante para atender acontecimientos externos en tiempo real.  Cuando ocurre alguno de ellos activa el pin RB0/INT y se hace una petición de interrupción, en forma automática.  Este método es más eficaz que la técnica de sondeo ya que el microcontrolador no perderá tiempo preguntando a la línea de entrada para leer su estado, sino que únicamente atenderá al periférico cuando éste se lo pida mediante la solicitud de interrupción.
  • 10. RB0/INT - PICC  En el caso de la interrupción externa RB0/INT de los PIC18FXXX se tiene la siguiente directiva. #INT_EXT – flanco en el pin RB0. Se activa la bandera INTF.  La directiva #INT_Global indica que la función que va a continuación sustituye todas las acciones que inserta el compilador al aceptarse una interrupción. Sólo se ejecuta lo que vaya en dicha función.  En el caso de la interrupción externa RB0/INT de los PIC18FXXX se tiene la siguiente directiva. #INT_EXT – flanco en el pin RB0. Se activa la bandera INTF.  La directiva #INT_Global indica que la función que va a continuación sustituye todas las acciones que inserta el compilador al aceptarse una interrupción. Sólo se ejecuta lo que vaya en dicha función.
  • 11. RB0/INT - PICC  Si se utilizan las directivas de interrupción, el compilador genera el código necesario para saltar a la función que va tras esta directiva en el momento de la interrupción.  Además, genera el código para salvar al principio y restituir al final el contexto, y también borrará la bandera que se activó con la interrupción. El programador, solo debe encargarse de habilitar las interrupciones.  Si se utilizan las directivas de interrupción, el compilador genera el código necesario para saltar a la función que va tras esta directiva en el momento de la interrupción.  Además, genera el código para salvar al principio y restituir al final el contexto, y también borrará la bandera que se activó con la interrupción. El programador, solo debe encargarse de habilitar las interrupciones.
  • 12. RB0/INT - PICC  Existe también otra función adicional destinada a configurar el flanco activo que genera la interrupción externa (en RB0).  ext_int_edge (0, H_TO_L); - equivale a INTEDG=0. Selecciona el flanco de bajada para activar la bandera INTF.  ext_int_edge (0, L_TO_H); - equivale a INTEDG=1. Selecciona el flanco de subida para activar la bandera INTF.  Existe también otra función adicional destinada a configurar el flanco activo que genera la interrupción externa (en RB0).  ext_int_edge (0, H_TO_L); - equivale a INTEDG=0. Selecciona el flanco de bajada para activar la bandera INTF.  ext_int_edge (0, L_TO_H); - equivale a INTEDG=1. Selecciona el flanco de subida para activar la bandera INTF.
  • 13. PRÁCTICA  Enunciado: Realizar un programa que indique en tiempo real la recepción de una señal externa recibida por el pin INT0, INT1, INT2 del microcontrolador. La recepción de dicha señal se lo hará a través de tres LEDs indicadores, los cuales se apagarán mientras se presione el pulsador correspondiente.  Enunciado: Realizar un programa que indique en tiempo real la recepción de una señal externa recibida por el pin INT0, INT1, INT2 del microcontrolador. La recepción de dicha señal se lo hará a través de tres LEDs indicadores, los cuales se apagarán mientras se presione el pulsador correspondiente.
  • 16. INTERRUPCION RBI INTERRUPCION EXTERNA RBI REGISTRO INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF INTERRUPCION RBI
  • 17. DESCRIPCIÓN  Los pines <RB7:RB4> del PORTB producen una sola interrupción por cambio de su estado.  Para activar la interrupción por cambio de estado en los pines <RB7:RB4> los bits RBIE y GIE del registro INTCON deben estar a “1”, en estas condiciones cuando se produce un cambio de nivel en cualquiera de las líneas RB7 a RB4 se activa la bandera RBIF del registro INTCON.  Los pines <RB7:RB4> del PORTB producen una sola interrupción por cambio de su estado.  Para activar la interrupción por cambio de estado en los pines <RB7:RB4> los bits RBIE y GIE del registro INTCON deben estar a “1”, en estas condiciones cuando se produce un cambio de nivel en cualquiera de las líneas RB7 a RB4 se activa la bandera RBIF del registro INTCON.
  • 18. RBI – CCS COMPILER  Entonces en la subrutina de interrupción se deberá hacer el tratamiento respectivo para identificar cual de los pines se activó.  En Lenguaje C, la interrupción se activa con enable_interrupts(INT_RB) y la subrutina de tratamiento de la interrupción se llama con INT_RB.  Entonces en la subrutina de interrupción se deberá hacer el tratamiento respectivo para identificar cual de los pines se activó.  En Lenguaje C, la interrupción se activa con enable_interrupts(INT_RB) y la subrutina de tratamiento de la interrupción se llama con INT_RB.
  • 19. RBI – CCS COMPILER  En caso que se estén atendiendo varias interrupciones, el compilador C, también tiene la directiva #priority que sirve para fijar la prioridad de las interrupciones, así, las interrupciones más importantes están son listadas al principio.  Por ejemplo:  #priority ext, rbi; //la interrupción RB0/INT será atendida antes de RBI.  En caso que se estén atendiendo varias interrupciones, el compilador C, también tiene la directiva #priority que sirve para fijar la prioridad de las interrupciones, así, las interrupciones más importantes están son listadas al principio.  Por ejemplo:  #priority ext, rbi; //la interrupción RB0/INT será atendida antes de RBI.
  • 20. PRÁCTICA Enunciado: Se conectan 4 pulsadores a RB4, RB5, RB6 y RB7 y una LCD al puerto D. Se realiza un contador automática que dependa de la detección de cambio de estado en cada pin RBI, de acuerdo al siguiente detalle: +1, -1, -10, +10. Enunciado: Se conectan 4 pulsadores a RB4, RB5, RB6 y RB7 y una LCD al puerto D. Se realiza un contador automática que dependa de la detección de cambio de estado en cada pin RBI, de acuerdo al siguiente detalle: +1, -1, -10, +10.
  • 22. TIMERSTIMERS RTCC, TIMER 1,TIMER 2,TIMER 3 Luis David Narváez
  • 23. TIMER 0 - RTCC  Una de las labores más habituales en los programas de control de dispositivos suele ser determinar intervalos concretos de tiempo, y recibe el nombre de temporizador (timer) el elemento encargado de realizar esta función.  También suele ser frecuente contar los impulsos que se producen en el exterior del sistema, y el elemento destinado a este fin se llama contador. Luis David Narváez  Una de las labores más habituales en los programas de control de dispositivos suele ser determinar intervalos concretos de tiempo, y recibe el nombre de temporizador (timer) el elemento encargado de realizar esta función.  También suele ser frecuente contar los impulsos que se producen en el exterior del sistema, y el elemento destinado a este fin se llama contador.
  • 24. TIMER 0 - RTCC  TMR0 es un contador/temporizador de 8/16 bits.  Se puede leer y escribir.  Puede trabajar con reloj interno o con señal de reloj externa.  Selección del flanco en el reloj externo.  Predivisor de frecuencia de reloj programable por software de 8 bits.  Interrupción opcional en el desbordamiento. Luis David Narváez  TMR0 es un contador/temporizador de 8/16 bits.  Se puede leer y escribir.  Puede trabajar con reloj interno o con señal de reloj externa.  Selección del flanco en el reloj externo.  Predivisor de frecuencia de reloj programable por software de 8 bits.  Interrupción opcional en el desbordamiento.
  • 25. TEMPORIZACIÓN TIMER 0  El tiempo empleado en una temporización se puede calcular a partir de un ciclo de instrucción (es decir una instrucción por cada ½ microsegundo, si se trabaja con un cristal HS de 8 MHz), también necesitamos el valor del Divisor de Frecuencia (el que seleccionamos con los bits PS2, PS1 y PS0), y finalmente con el complemento del valor cargado en TMR0 (es decir 65536-TMR0), la ecuación que nos permite realizar el cálculo es la que sigue:  Temporización = Ciclo de instrucción * (65536 - TMR0) * Divisor de Frecuencia  El tiempo empleado en una temporización se puede calcular a partir de un ciclo de instrucción (es decir una instrucción por cada ½ microsegundo, si se trabaja con un cristal HS de 8 MHz), también necesitamos el valor del Divisor de Frecuencia (el que seleccionamos con los bits PS2, PS1 y PS0), y finalmente con el complemento del valor cargado en TMR0 (es decir 65536-TMR0), la ecuación que nos permite realizar el cálculo es la que sigue:  Temporización = Ciclo de instrucción * (65536 - TMR0) * Divisor de Frecuencia
  • 26. TEMPORIZACIÓN TIMER 0  Se desea una temporización de 100 ms (100 milisegundos), con un HS de 8 MHz., y que además seleccionamos como Divisor de frecuencia 256 (es decir PS2,PS1,PS0 = 1,1,1). La pregunta, sería ¿Cuál es el valor que se debe cargar enTMR0?  Despejando 65536-TMR0 =Temporización(en microsegundos)/(1 us/cm* Div. de Frec.)  (cm ciclos máquina) y reemplazando tendremos  65536-TMR0 = 100000 us/(0,5 us/cm * 256)  65536-TMR0 ~ 781 cm  Se desea una temporización de 100 ms (100 milisegundos), con un HS de 8 MHz., y que además seleccionamos como Divisor de frecuencia 256 (es decir PS2,PS1,PS0 = 1,1,1). La pregunta, sería ¿Cuál es el valor que se debe cargar enTMR0?  Despejando 65536-TMR0 =Temporización(en microsegundos)/(1 us/cm* Div. de Frec.)  (cm ciclos máquina) y reemplazando tendremos  65536-TMR0 = 100000 us/(0,5 us/cm * 256)  65536-TMR0 ~ 781 cm
  • 27. TEMPORIZACIÓN TIMER 0  Eso significa que en TMR0 deberemos cargar es: 65536-781=64755  A partir de allí el TMR0 contará los 781 ciclos que faltan para desbordarse y producir la interrupción, y el tiempo que tardará en hacerlo es 100ms aproximadamente.  Eso significa que en TMR0 deberemos cargar es: 65536-781=64755  A partir de allí el TMR0 contará los 781 ciclos que faltan para desbordarse y producir la interrupción, y el tiempo que tardará en hacerlo es 100ms aproximadamente.
  • 28. TIMER 0 – PIC C Luis David Narváez
  • 29. TIMER 0 – PIC C  Escritura en el módulo TMR0  Set_timer0(valor);  Valor: Entero de 8/16 bits  Lectura en el módulo TMR0  Valor=get_timer0();  Valor: Entero de 8/16 bits Luis David Narváez  Escritura en el módulo TMR0  Set_timer0(valor);  Valor: Entero de 8/16 bits  Lectura en el módulo TMR0  Valor=get_timer0();  Valor: Entero de 8/16 bits
  • 30. TIMER 0 – PIC C  Los distintos modos se pueden agrupar mediante el empleo del símbolo |. Por ejemplo: Setup_timer_0(RTCC_Div_256|RTCC_Ext_L_to_H);  Nota!!! En ocasiones se emplea RTCC en lugar de timer0, es decir, set_RTCC es lo mismo que set_timer0.  Los distintos modos se pueden agrupar mediante el empleo del símbolo |. Por ejemplo: Setup_timer_0(RTCC_Div_256|RTCC_Ext_L_to_H);  Nota!!! En ocasiones se emplea RTCC en lugar de timer0, es decir, set_RTCC es lo mismo que set_timer0.
  • 31. PRÁCTICA  Enunciado:  Desarrollar un programa que encienda y apague secuencialmente un LED cada 300ms. Para la temporización se empleará la interrupción del TMR0.  Enunciado:  Desarrollar un programa que encienda y apague secuencialmente un LED cada 300ms. Para la temporización se empleará la interrupción del TMR0.
  • 32. DESARROLLO  Calcular la carga del TMR0 para 10 ms con un divisor de frecuencia de 256 (Prescaler de 256)  Entonces usaremos un registro auxiliar con un contenido de 30 para obtener los 300ms.  Carga Registro Auxiliar con 30 para obtener los 300ms de temporización.  Bucle infinito en el programa principal.  Calcular la carga del TMR0 para 10 ms con un divisor de frecuencia de 256 (Prescaler de 256)  Entonces usaremos un registro auxiliar con un contenido de 30 para obtener los 300ms.  Carga Registro Auxiliar con 30 para obtener los 300ms de temporización.  Bucle infinito en el programa principal.
  • 33. DESARROLLO  Para la subrutina de interrupción, tenemos:  Recarga del TMR0 con su valor correspondiente para obtener una temporización de 10ms.  Disminuir (aumentar) el Contador Auxiliar hasta obtener los 300ms.  Verificar el estado del LED. Si está apagado lo enciende y viceversa.  Mantener en ese estado (prendido o pagado) durante 300ms.  Regresar al programa principal.  Para la subrutina de interrupción, tenemos:  Recarga del TMR0 con su valor correspondiente para obtener una temporización de 10ms.  Disminuir (aumentar) el Contador Auxiliar hasta obtener los 300ms.  Verificar el estado del LED. Si está apagado lo enciende y viceversa.  Mantener en ese estado (prendido o pagado) durante 300ms.  Regresar al programa principal.
  • 34.
  • 37. EL TMR0 COMO CONTADOR DE EVENTOS EXTERNOS Práctica:  Enunciado:  Se desea realizar un programa que cuente los pulsos provenientes por el pin RA4 mediante el TMR0 configurado como contador, y el TMR1 como base de tiempo de 1s. (Frecuencímetro)  De esta manera se visualizará la frecuencia en una LCD. Práctica:  Enunciado:  Se desea realizar un programa que cuente los pulsos provenientes por el pin RA4 mediante el TMR0 configurado como contador, y el TMR1 como base de tiempo de 1s. (Frecuencímetro)  De esta manera se visualizará la frecuencia en una LCD.