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

Redes de compensacion
Redes de compensacionRedes de compensacion
Redes de compensacionUNEFA
 
Rectificador de onda completa Electronica I
Rectificador de onda completa Electronica IRectificador de onda completa Electronica I
Rectificador de onda completa Electronica ITensor
 
8 1 convertidor-digital-analogico
8 1 convertidor-digital-analogico8 1 convertidor-digital-analogico
8 1 convertidor-digital-analogicoRonald_Paul
 
Modulacion y frecuenca comunicacion analogicas 3
Modulacion y frecuenca  comunicacion analogicas 3Modulacion y frecuenca  comunicacion analogicas 3
Modulacion y frecuenca comunicacion analogicas 3Velmuz Buzz
 
CONTADOR BINARIO DESCENDENTE DE 14 BITS CON ARDUINO
CONTADOR BINARIO DESCENDENTE DE 14 BITS CON ARDUINOCONTADOR BINARIO DESCENDENTE DE 14 BITS CON ARDUINO
CONTADOR BINARIO DESCENDENTE DE 14 BITS CON ARDUINOFernando Marcos Marcos
 
Informe subir dc-dc-reductor
Informe subir dc-dc-reductorInforme subir dc-dc-reductor
Informe subir dc-dc-reductorMauricio Naranjo
 
1.3.1 polarizacion del jfet
1.3.1 polarizacion del jfet1.3.1 polarizacion del jfet
1.3.1 polarizacion del jfetjosefer28051989
 
Transistores BJT y JFET. Circuitos de polarización.
Transistores BJT y JFET. Circuitos de polarización. Transistores BJT y JFET. Circuitos de polarización.
Transistores BJT y JFET. Circuitos de polarización. J Luis Salguero Fioratti
 
Elementos pasivos y activos en un circuito eléctrico
Elementos pasivos y activos en un circuito eléctricoElementos pasivos y activos en un circuito eléctrico
Elementos pasivos y activos en un circuito eléctricoAlanFher Gonzalez
 

La actualidad más candente (20)

LabVIEW - Estructuras
LabVIEW - EstructurasLabVIEW - Estructuras
LabVIEW - Estructuras
 
Redes de compensacion
Redes de compensacionRedes de compensacion
Redes de compensacion
 
Rectificador de onda completa Electronica I
Rectificador de onda completa Electronica IRectificador de onda completa Electronica I
Rectificador de onda completa Electronica I
 
8 1 convertidor-digital-analogico
8 1 convertidor-digital-analogico8 1 convertidor-digital-analogico
8 1 convertidor-digital-analogico
 
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
 
Teclado matricial
Teclado matricialTeclado matricial
Teclado matricial
 
Electrónica digital: Comparadores
Electrónica digital: ComparadoresElectrónica digital: Comparadores
Electrónica digital: Comparadores
 
Modulacion y frecuenca comunicacion analogicas 3
Modulacion y frecuenca  comunicacion analogicas 3Modulacion y frecuenca  comunicacion analogicas 3
Modulacion y frecuenca comunicacion analogicas 3
 
CONTADOR BINARIO DESCENDENTE DE 14 BITS CON ARDUINO
CONTADOR BINARIO DESCENDENTE DE 14 BITS CON ARDUINOCONTADOR BINARIO DESCENDENTE DE 14 BITS CON ARDUINO
CONTADOR BINARIO DESCENDENTE DE 14 BITS CON ARDUINO
 
Proyecto 3 lab
Proyecto 3 labProyecto 3 lab
Proyecto 3 lab
 
Informe subir dc-dc-reductor
Informe subir dc-dc-reductorInforme subir dc-dc-reductor
Informe subir dc-dc-reductor
 
1.3.1 polarizacion del jfet
1.3.1 polarizacion del jfet1.3.1 polarizacion del jfet
1.3.1 polarizacion del jfet
 
Compuertas logicas
Compuertas logicasCompuertas logicas
Compuertas logicas
 
Transistores BJT y JFET. Circuitos de polarización.
Transistores BJT y JFET. Circuitos de polarización. Transistores BJT y JFET. Circuitos de polarización.
Transistores BJT y JFET. Circuitos de polarización.
 
Amplificación de señal con BJT
Amplificación de señal con BJTAmplificación de señal con BJT
Amplificación de señal con BJT
 
Conexión darlington transistor
Conexión darlington transistorConexión darlington transistor
Conexión darlington transistor
 
Informe amplificador operacional
Informe amplificador operacionalInforme amplificador operacional
Informe amplificador operacional
 
S10 introbjt
S10 introbjtS10 introbjt
S10 introbjt
 
2.7. Recortadores con Diodos
2.7. Recortadores con Diodos2.7. Recortadores con Diodos
2.7. Recortadores con Diodos
 
Elementos pasivos y activos en un circuito eléctrico
Elementos pasivos y activos en un circuito eléctricoElementos pasivos y activos en un circuito eléctrico
Elementos pasivos y activos en un circuito eléctrico
 

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

PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
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
 
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
 
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
 
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
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
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
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
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
 
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
 
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
 
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
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 

Último (19)

PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .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
 
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
 
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
 
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
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
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
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
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
 
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)
 
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
 
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...
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 

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.