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

Amplificador de instrumentación
Amplificador de instrumentaciónAmplificador de instrumentación
Amplificador de instrumentaciónSaul Perez
 
Amplificadores Operacionales - Seguidor, Inversor y No Inversor
Amplificadores Operacionales - Seguidor, Inversor y No InversorAmplificadores Operacionales - Seguidor, Inversor y No Inversor
Amplificadores Operacionales - Seguidor, Inversor y No InversorCris Mascote
 
Latches y flip flops
Latches y flip flopsLatches y flip flops
Latches y flip flopsJimmy Osores
 
Codificadores y decodificadores
Codificadores y decodificadoresCodificadores y decodificadores
Codificadores y decodificadoresRopoga
 
02 lecciones transformadores trifasicos
02 lecciones transformadores trifasicos02 lecciones transformadores trifasicos
02 lecciones transformadores trifasicosGuillermo Salinas
 
Transformadores ideales
Transformadores idealesTransformadores ideales
Transformadores idealesJesús Hinojos
 
Acondicionar la señal del sensor (lm35) para obtener una salida de 0.7 v a 5v
Acondicionar la señal del sensor (lm35) para obtener una salida de 0.7 v a 5vAcondicionar la señal del sensor (lm35) para obtener una salida de 0.7 v a 5v
Acondicionar la señal del sensor (lm35) para obtener una salida de 0.7 v a 5vCARLOS MARANI
 
Contador de 0 a 7 flip flop tipo D
Contador de 0 a 7 flip flop tipo DContador de 0 a 7 flip flop tipo D
Contador de 0 a 7 flip flop tipo DCristian Rodriguez
 
Control de motor trifasico con spwm
Control de motor trifasico con spwmControl de motor trifasico con spwm
Control de motor trifasico con spwmhenrytosco5
 
Electrónica: El SCR (rectificador controlado de silicio)
Electrónica: El SCR (rectificador controlado de silicio)Electrónica: El SCR (rectificador controlado de silicio)
Electrónica: El SCR (rectificador controlado de silicio)SANTIAGO PABLO ALBERTO
 
3 2 circuitos-disparo
3 2 circuitos-disparo3 2 circuitos-disparo
3 2 circuitos-disparoAxtridf Gs
 
Diapositivas transformadores-de-medición-y-protección
Diapositivas transformadores-de-medición-y-protecciónDiapositivas transformadores-de-medición-y-protección
Diapositivas transformadores-de-medición-y-protecciónAlexander Moreno Matinez
 

La actualidad más candente (20)

Amplificador de instrumentación
Amplificador de instrumentaciónAmplificador de instrumentación
Amplificador de instrumentación
 
Amplificadores Operacionales - Seguidor, Inversor y No Inversor
Amplificadores Operacionales - Seguidor, Inversor y No InversorAmplificadores Operacionales - Seguidor, Inversor y No Inversor
Amplificadores Operacionales - Seguidor, Inversor y No Inversor
 
Ac ac monofasicos
Ac ac monofasicosAc ac monofasicos
Ac ac monofasicos
 
Módulo Timer 1 del PIC16F887
Módulo Timer 1 del PIC16F887Módulo Timer 1 del PIC16F887
Módulo Timer 1 del PIC16F887
 
Latches y flip flops
Latches y flip flopsLatches y flip flops
Latches y flip flops
 
El PIC16F84
El PIC16F84El PIC16F84
El PIC16F84
 
Resumen de lineas de transmision
Resumen de lineas de transmisionResumen de lineas de transmision
Resumen de lineas de transmision
 
MARLON
MARLONMARLON
MARLON
 
Codificadores y decodificadores
Codificadores y decodificadoresCodificadores y decodificadores
Codificadores y decodificadores
 
02 lecciones transformadores trifasicos
02 lecciones transformadores trifasicos02 lecciones transformadores trifasicos
02 lecciones transformadores trifasicos
 
Scr, triac y diac
Scr, triac y diacScr, triac y diac
Scr, triac y diac
 
Transformadores ideales
Transformadores idealesTransformadores ideales
Transformadores ideales
 
Practica0,1,2,3,4
Practica0,1,2,3,4Practica0,1,2,3,4
Practica0,1,2,3,4
 
Acondicionar la señal del sensor (lm35) para obtener una salida de 0.7 v a 5v
Acondicionar la señal del sensor (lm35) para obtener una salida de 0.7 v a 5vAcondicionar la señal del sensor (lm35) para obtener una salida de 0.7 v a 5v
Acondicionar la señal del sensor (lm35) para obtener una salida de 0.7 v a 5v
 
Controladores de tensión AC
Controladores de tensión ACControladores de tensión AC
Controladores de tensión AC
 
Contador de 0 a 7 flip flop tipo D
Contador de 0 a 7 flip flop tipo DContador de 0 a 7 flip flop tipo D
Contador de 0 a 7 flip flop tipo D
 
Control de motor trifasico con spwm
Control de motor trifasico con spwmControl de motor trifasico con spwm
Control de motor trifasico con spwm
 
Electrónica: El SCR (rectificador controlado de silicio)
Electrónica: El SCR (rectificador controlado de silicio)Electrónica: El SCR (rectificador controlado de silicio)
Electrónica: El SCR (rectificador controlado de silicio)
 
3 2 circuitos-disparo
3 2 circuitos-disparo3 2 circuitos-disparo
3 2 circuitos-disparo
 
Diapositivas transformadores-de-medición-y-protección
Diapositivas transformadores-de-medición-y-protecciónDiapositivas transformadores-de-medición-y-protección
Diapositivas transformadores-de-medición-y-protección
 

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 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 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

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 

Último (15)

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 

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.