SlideShare una empresa de Scribd logo
1 de 51
IUT Cumaná MICROCONTROLADORES IIINTERRUPCIONES Y TEMPORIZADORESTEMA 2 PROF. LUIS ZURITA
IUT Cumaná (PIC16F84) CAUSAS DE INTERRUPCIÓN Activación del pin RB0/INT Desbordamiento del TMR0 Cambio de estado de una de los 4 pines de más peso (RB7:RB4) del puerto B Finalización de la escritura en la EEPROM de datos REGISTRO INTCON Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
IUT Cumaná INTERRUCCIONES PIC16F87X CLÁSICAS PIC16F84 NUEVAS GIE PEIE TOIE INTE RBIE TOIF INTF RBIF PIE1 PIR1 PIE2 PIR2 Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
IUT Cumaná REGISTRO PIE1 bit 7: PSPIE: bit de habilitación de interrupción por lectura / escritura en el Puerto Paralelo Esclavo. Para los modelos de 40 pines. 1 = Habilita la interrupción por lectura/escritura en el PSP 0= inhabilita la interrupción por lectura/escritura en el PSP bit 6: ADIF: bit de habilitación de interrupción por finalización de la conversión A/D. 1 = Habilita la interrupción del convertidor A/D 0 = Inhabilita la interrupción del convertidor A/D bit 5: RCIE: bit de habilitación de interrupción en recepción por el USART, cuando se llena el buffer. 1 = Habilita interrupción por recepción en el USART 0 = Inhabilita interrupción por recepción en el USART Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
IUT Cumaná REGISTRO PIE1 bit 4: TXIE: bit de interrupción al transmitir por el USART, cuando se vacía el buffer. 1 = Habilita la interrupción de transmisión por el USART 0 = Inhabilita la interrupción de transmisión por el USART  bit 3: SSPIE: bit de habilitación de interrupción por el Puerto Serie Síncrono (SSP) 1= Habilita la interrupción del SSP 0= Inhabilita la interrupción del SSP bit 2: CCP1IE: bit de habilitación de interrupción del módulo CCPI cuando seproduce una captura o una comparación. 1= Habilita la interrupción del CCPI 0= Inhabilita la interrupción del CCPI bit 1: TMR2IE: bit de habilitación de interrupción por desbordamiento de TMR2 que está emparejado con el registro PR2 (92h) 1= Habilita la interrupción por desbordamiento de TMR2 emparejado a PR2 0= Inhabilita la interrupción de TMR2 emparejado a PR2 bit 0: TMR1IE: bit de habilitación de interrupción por desbordamiento del TMRI 1= Habilita la interrupción por desbordamiento de TMR1 0= Inhabilita la interrupción por desbordamiento de TMR1 Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
IUT Cumaná REGISTRO PIE2 bit 7: No implementado: se lee como “0’ bit 6 Reservado, Mantiene este bits a cero bit 5: No implementado: se lee como “0” bit 4: EEIE: Habilita la interrupción por escritura en la EEPROM de datos 	1= Habilita la interrupción por escritura de la EEPROM de datos 	0 =Deshabilita la interrupción por escritura en la EEPROM de datos bit 3: BCLIE: Habilita la interrupción por colisión en el bus SSP cuando dos o más maestros tratan de transferir al mismo tiempo. 	1 = Habilita la interrupción por colisión de bus SSP 	0 = Deshabilita la interrupción por colisión en el bus SSP. bit 2-1 No implementados, se leen como “0” bit 0: CCP2IE: Habilita la interrupción del modulo CCP2 	1 = habilita la interrupción de CCP2 	0 = inhabilita la interrupción de CCP2 Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
IUT Cumaná PC<12:0> CALL, RETURN RETFIE, RETLW Nivel 1 de la Pila 13 Nivel 2 de la Pila ……………… Nivel 8 de la Pila Vector de Reset 0000h ……………… Vector de Interrupción 0004h 0005h Página 0 07FFh 0800h Página 1 0FFFh 1000h Página 2 17FFh 1FFh Página 3
IUT Cumaná INTERRUPCIONES EN LENGUAJE C Ventajas de usar las directivas de interrupciones 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. También genera el código para salvar al principio y restituir al final el contexto (salvar y restaurar el entorno), y borrará el flag que se activó con la interrupción. El programador debe seguir encargándose únicamente de habilitar las interrupciones y establecer las sentencias que se ejecutarán en cada función de las interrupciones deseadas a ejecutarse. Las directivas #INT_xxxx 	Indican que la función que aparece a continuación corresponde al tratamiento de una interrupción (no tiene ni necesita parámetros): 	Para los PICs 16F877 hay 14 posibles directivas: Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
IUT Cumaná INTERRUPCIONES EN LENGUAJE C La directiva #INT_DEFAULT 	Indica que la función que viene a continuación será llamada si se dispara una interrupción y ninguno de los flags está activo. 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. GLOBAL equivale a GIE=PEIE=1 y debe activarse de forma independiente. El resto activarán la máscara correspondiente. Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
FUNCIONES PARA GESTIÓN DE INTERRUPCIONES IUT Cumaná enable_interrupts (nivel); 	nivel es una constante definida en el 16F877.h y genera el código necesario para activar las máscaras necesarias. Etiquetas de nivel definidas para el 16F877: GLOBAL		INT_RTCC		INT_RB INT_EXT		INT_AD		INT_TBE INT_RDA		INT_TIMER1		INT_TIMER2 INT_CCP1		INT_CCP2		INT_SSP INT_PSP		INT_BUSCOL		INT_EEPROM 	La máscara global (hace a GIE=1) debe activarse de manera independiente. Las otras activan la máscara particular y el PEIE si es necesario. disable_interrupts(nivel); 	Hace la acción contraria a la función anterior, poniendo a 0 las máscaras relacionadas con la interrupción indicada. Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
IUT Cumaná INTERRUPCIÓN EXTERIOR POR RB0 	Es una interrupción clásica en la mayoría de los PICs. Permite generar una interrupción por cambio de nivel en la entrada RB0. 	La directiva que se utiliza es #INT_EXT y se debe acompañar de las siguientes funciones: ext_int_edge(H_TO_L); 	La interrupción es activada por flanco de bajada (antiva el flag INTF). ext_int_edge(L_TO_H); 	La interrupción es activada por flanco de subida (activa el flag INTF). Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
EJEMPLO 1. INTERRUPCIÓN POR RB0/INT IUT Cumaná #INT_EXT ext_isr( ){ …..//aquí se colocan las sentencias que se  …..//desean ejecutar durante esta interrupción. } voidmain ( ){ enable_interrupts(INT_EXT); //Activa INTE ext_int_edge(H_TO_L);	//Flanco de bajada enable_interrupts(GLOBAL);	//Habilita GIE while (TRUE){ 	} } Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
IUT Cumaná EJEMPLO 2.  Active dos leds de forma intermitente cada 1 segundo. Si presiona RB0/INT, los leds se activan a razón de 250 ms de manera intermitente hasta que se presione RA1 para volver a su estado normal.  #include <16f877a.h> #fuses XT,NOWDT,NOPROTECT,NOLVP #use delay(clock=4000000) #use fast_IO(B) #use fast_IO(D) #use fast_IO(A) #INT_EXT voidext_interm( ){	//función de interrupción por RB0/INT: while (TRUE){ if (input(PIN_A0)==0) 			{break;} delay_ms(250); output_toggle(PIN_D0); output_toggle(PIN_D1); 		} } Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
IUT Cumaná Continuación Ejemplo 2. voidmain(){ set_tris_b(0x01); set_tris_d(0); set_tris_a(0x01); output_d(0); port_b_pullups(true); enable_interrupts(int_ext); ext_int_edge(H_to_L); enable_interrupts(global); while(TRUE){ output_high(PIN_D0); output_low(PIN_D1); delay_ms(1000); output_low(PIN_D0); output_high(PIN_D1); delay_ms(1000);} } Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
IUT Cumaná TIMER 0 TMR0: Registro de 8 bits de lectura/escritura OPTION: Configura al TMR0 para que trabaje como temporizador ó contador y asigna el valor al prescaler INTCON: Da información mediante el bit “TOIF” cuando el TMR0 se ha desbordado. TRISA (PUERTO A): Permite el ingreso de pulsos cuando el TMR0 está configurado como contador por RA4 Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
REGISTRO OPTION (Dirección 81H) IUT Cumaná bit 7, RPBU : Resistencia Pull-up, Puerto B, habilita el bit 1: Desactivadas 0: Activadas bit 6, INTEDG: Flanco activo para el control de interrupciones 1: Con flanco Ascendente 0: Con flanco Descendente bit 5, TOCS: Fuente de Reloj para TMR0 1: Pulsos introducidos a través de RA4/T0CK1 (Contador) 0: Pulsos de reloj interno Fosc/4 (Temporizador) bit 4, TOSE: Tipo de flanco en TOCK1 1: Incremento de TMR0 cada flanco descendente 0: Incremento de TMR0 cada flanco ascendente bit 3, PSA: Bit de asignación del prescaler divisor de frecuencia 1: El divisor de frecuencia se asigna al WDT 0: El divisor de frecuencia se asigna al TMR0 bit 2-0, PS2:PSO: Rango con el que actúa el divisor de frecuencia. Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
IUT Cumaná ¿QUÉ ES EL PRESCALER? Divide la frecuencia de reloj de entrada del Timer0, entre valores predefinidos, como se ve en la tabla asociada al registro OPTION, 1:32, 1: 64, 1:256, etc., genera una nueva señal de menor frecuencia a la salida, que será la señal de reloj de entrada al registro TMR0.  “Ralentiza” señales de entrada demasiado rápidas para nuestros propósitos. También existe un postescaler, asociado al perro guardián WDT (WatchDogTimer) del microcontrolador, pero en este caso recibe el nombre de postcaler ya que se usa a la salida del WDT, no pudiendo estar asignado a la vez al Timer0 o al WDT. El preescaler es transparente para el programador, no se puede leer ni escribir sobre él, pero se puede seleccionar por software, como ya se ha dicho, mediante el registro OPTION. Nota: Para evitar un RESET no deseado del sistema, es necesario ejecutar una secuencia de instrucciones específicas cuando se cambia la asignación del prescaler del TMR0 al WDT. Esta secuencia debe ser seguida, aún cuando el WDT esté inactivo.
IUT Cumaná ¿CÓMO CUENTA EL TMR0? 00H FFH 	El TMR0 cuenta exclusivamente de forma ascendente, nunca descendente. 00H (28 – N10) 00H 	Si el TMR0 se carga con un valor, éste comenzará a contar desde el valor cargado hasta que se desborda (cuando pasa a 00H) FFH Valor cargado En el TMR0 00H Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
IUT Cumaná CÁLCULOS CON EL TMR0 Cuando se carga en el registro TMR0 un valor XXH, él mismo contará: (FFH – XXH) impulsos y el tiempo que tarda en hacerlo viene dado por la expresión:  ,[object Object]
Valor Real TMR0 = (28 – N10) = (256 – N10)
N10= Valor a cargar en el TMR0Ejemplo: Sea un valor a cargar en el TMR0 de 100, un prescaler seleccionado de 1:32 y un oscilador XT. Determine el tiempo en que tardará el TMR0 en desbordarse. Solución: Sea XT =  Frecuencia = 4 MHz, T = 0.25 μs. Temporización= 4*0.25 μs* (256 – 100) * 32 = 4.992 ms. Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
IUT Cumaná OTROS EJEMPLOS Se desea saber: ¿Qué valor debemos cargar en el TMR0, si deseamos obtener una temporización de 10,24 ms, utilizando un preescaler de 128 y un cristal XT? 	Solución: 	(256 – N10) =				 = 			= 80 	(256 – N10) = 80, despejando N10 = (256 – 80) = 176, el valor que debemos cargar en el TMR0 es 176, para que éste cuente desde 176 hasta 256. Elegir el TMR0, para generar un retraso de 1.5 ms utilizando un oscilador de 10 MHz. 	Solución: Sea Fosc= 10 MHz, T =  100 ns 	(256 – N10) = 			      =  	N10 = 256 - (3750/RgoDivisor) Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
IUT Cumaná CONTINUACIÓN EJEMPLO ANTERIOR 	Démosle valores al Rango del divisor, hasta obtener un valor que se acerque lo más posible al retardo propuesto: 	Si Prescaler= 256, Valor a cargar en el TMR0= 241 (redondeado) 	Si Prescaler= 128, Valor a cargar en el TMR0= 227 (redondeado) 	Si Prescaler= 64, Valor a cargar en el TMR0= 197 (redondeado) 	Si Prescaler= 32, Valor a cargar en el TMR0= 139 (redondeado) Etc… 	A manera de práctica, realice usted, el cálculo de la Temporización, para cada uno de los valores que se consiguieron en los cálculos anteriores. Escoja uno y justifique. Particularmente parece que el que tiene el rango de divisor de 64, es el mejor. Nota: En este ejercicio resuelto, usted puede darse cuenta de que no hay un solo resultado para los ejercicios, pero lo que si debe cumplirse es que sea cualquiera que sean los valores que se tomen para los cálculos, estos deben de estar cercanos a la respuesta que se espera del temporizador que esté diseñando. Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
IUT Cumaná TIMER0 EN LENGUAJE C 	La función para configurar el TIMER0 es: setup_timer_0 (modo); 		Donde modo está definido en el fichero de cabecera y afecta a los bits 5:0 del OPTION_REG:
IUT Cumaná TIMER0 EN LENGUAJE C 	Los distintos modos se pueden agrupar mediante el empleo del símbolo |. Ejemplo: setup_timer_0 (RTCC_DIV_2 | RTCC_EXT_L_TO_H); 	El compilador C suministre una serie de funciones para leer o escribir en el TIMER0. Para escribir un valor en el registro: set_timer0(valor); 	valor : es un entero de 8 bits. Para leer el valor actual del registro: valor= get_timer0 ( ); 	valor: entero de 8 bits. 	 Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
Ejemplo 3. Generar una señal cuadrada de 1 kHz utilizando la interrupción del TIMER0 IUT Cumaná Para generar una señal cuadrada de 1 kHz con un dutycycle del 50 %, se necesita un período de 0,5 ms en nivel alto y 0,5 ms en nivel bajo. Paso 1. Cálculos: Aplicando las fórmulas del TIMER0: Solución: 	(256 – N10) =			 = 		        = 62,5 	(256 – N10) = 62,5 y despejando N10 = (256 – 62,5) = 193,5 ≈194, por lo tanto el valor que debemos cargar en el TMR0 es 194, para que éste cuente desde 194 hasta 256, generándonos la temporización de 0,5 ms. Estos cálculos se cumplen fielmente en lenguaje ensamblador, sin embargo en lenguaje C, al generarse códigos adicionales, se realiza un ajuste de los valores hasta en 4 unidades por encima de lo que se calculó, por lo tanto el valor a cargar definitivo en el TIMER0 es 198. Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
Ejemplo 3. Generar una señal cuadrada de 1 kHz utilizando la interrupción del TIMER0 IUT Cumaná #INCLUDE	<16F877.h> #FUSES		XT,NOWDT,NOPROTECT,NOLVP #USE		DELAY(CLOCK=4000000) #USE		fast_io(B) #INT_RTCC RTCC_isr(){ output_toggle(PIN_B7); 	set_timer0(198);} voidmain(){ set_tris_B(0x00); output_low(PIN_B7); 	setup_timer_0(RTCC_DIV_8); 	set_timer0(198); enable_interrupts(INT_RTCC); enable_interrupts(GLOBAL); while (TRUE){ 	} } NOTA: El compilador se encarga al entrar en la interrupción de inhabilitar las interrupciones y al salir de borrar los flags, por lo que no es necesario hacerlo por programa Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
TIMER 1 Características básicas: 1. Es de 16 bits. 2. Puede actuar como temporizador o como contador bit (TMR1CS). 3. Se puede leer y escribir en los registros TMR1H, TMR1L. 4. Puede pararse o habilitarse mediante el bit TMR1ON. 5. Tiene un pre-divisor programable por software. 6. El oscilador de bajo consumo está situado entre los pines T1OSI (entrada) y T1OSO (salida).  IUT Cumaná Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
TIMER 1 IUT Cumaná 7. Al desbordase (FFFFh -> 0000h) produce la interrupción TMR1: El bit de interrupción del timer1 es TMR1IF  	[Registro PIR1(0)]. Puede deshabilitarse mediante TMR1IE  	[Registro PIE1(0)]. 8. La frecuencia de oscilación máx. es 200kHz. No se apaga durante SLEEP. 9. Monitorea tiempo entre transiciones de una señal en pin de entrada. 10. Controla con precisión el tiempo de transición de pin de salida. 11. Sirve para contar eventos externos y generar interrupciones cuando ha ocurrido un número deseado. Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
DIAGRAMA DE BLOQUE TIMER 1 IUT Cumaná Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
REGISTROS ASOCIADOS AL TIMER 1 IUT Cumaná TMR1H = Parte alta del TIMER 1 (L/E) TMR1L = Parte baja del TIMER 1 (L/E) T1CON = Registro de control del TIMER 1 INTCON = Control de Interrupciones PIE1 = Control de Interrupciones de Periféricos PIR1 = Señalizadores de Interrupciones TRISC = Registro de configuración PortC PORTC= Registro de 8 bits. Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
IUT Cumaná T1CON Bit 7-6: No implementados: Se lee como “0” Bit 5-4: TlCKPS1:T1CKPS0: bit de selección del preescaler de la señal de reloj delTIMER1: 11 = valor del preescaler 1:8 10 = valor del preescaler 1:4 01 = valor del preescaler 1:2 00 = valor del preescaler 1: 1 Bit 3: T1OSCEN: bit de habilitación del oscilador del TIMER1. Cuando se emplea un oscilador externo, hay que poner este bit a 1. El TMR1 puede trabajar a una frecuencia totalmente independiente de la del sistema. 1 = Habilita el oscilador 0 = Deshabilita el oscilador 	Nota: El oscilador y la resistencia se desconectan para reducir el consumo Bit 2: #TlSYNC: bit de control de sincronización de la señal de entrada. Con TMR1CS = 1 1= No sincroniza la entrada de reloj externa 0 = Sincroniza la entrada de reloj externa Con TMR1CS = 0 En esta condición se ignora. El TIMER1 utiliza el reloj interno cuando TMRICS=0 Bit 1 TMR1CS: bit de selección de la fuente de reloj del TIMER1 1 = Reloj externo por el pin RC0/T1OSO/T1CK1 (flanco ascendente) 0 = Relojinterno (FOSC/4) Bit 0: TMR1ON: TIMER1 activo. Hace entrar o no en funcionamiento el TIMER1. 1 = Habilita el TIMER1 0 = Deshabilita el TIMER1 Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
CÁLCULOS PARA EL TIMER 1 ,[object Object]
Valor Real TMR1= (65536 – (TMR1H:TMR1L))
(TMR1H:TMR1L)= Valor a cargar en el TIMER1Ejercicio:  ¿Cuál es el máximo valor de temporización que se puede alcanzar con el TIMER 1? IUT Cumaná Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
RSI INICIO Deshabilitar GIE Configurar TIMER 1 Limpiar señalizador Cargar TIMER 1 Habilitar GIE IUT Cumaná Habilitar TIMER 1 RETFIE SLEEP FIN Realice un programa para que se genere una interrupción cada 0,5 segundos, utilizando un XT. Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
IUT Cumaná TIMER1 EN LENGUAJE C 	La función para configurar el TIMER0 es: setup_timer_1 (modo); 		Donde modo está definido en el fichero de cabecera y afecta a los bits 5:0 del T1CON: Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
IUT Cumaná TIMER1 EN LENGUAJE C 	Los distintos modos se pueden agrupar mediante el empleo del símbolo |. Ejemplo: setup_timer_1 (T1_INTERNAL| T1_DIV_BY_2); 	El compilador C suministre una serie de funciones para leer o escribir en el TIMER1. Para escribir un valor en el registro: set_timer1(valor); 	valor : es un entero de 16 bits. Para leer el valor actual del registro: valor= get_timer1 ( ); 	valor: entero de 16 bits. 	 Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
Ejemplo 4. Generar una interrupción cada un segundo utilizando el TIMER1 IUT Cumaná Para generar un retardo de 1 segundo, se deben generar dos veces 0,5 segundos, motivado a que directamente el TIMER1 no puede alcanzarlo. Paso 1. Cálculos: Aplicando las fórmulas del TIMER1: Solución: 	(65536 – N16) =			 = 		        = 62500 	(65536 – N16) =  y despejando N16 = (65536 – 62500) = 3036, por lo tanto el valor que debemos cargar en el TMR1 es 3036, para que éste cuente desde 3036 hasta 65536, generándonos la temporización de 0,5 s.  Nota: este término debe ser menor o igual a 65536. Es por ello que se utilizó el predivisor de 8. Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
EJEMPLO 4. Generar una interrupción cada un segundo utilizando el TIMER1 IUT Cumaná #INCLUDE	<16F877.h> #FUSES		XT,NOWDT,NOPROTECT,NOLVP #USE		DELAY(CLOCK=4000000) #USE		fast_io(B) int1		cont=0; #INT_TIMER1 temp1_isr(void){ if (cont==1) output_toggle(PIN_B0); 	set_timer1(3036); cont++;} voidmain(){ set_tris_B(0x00); output_low(PIN_B0); 	setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); 	set_timer1(3036); enable_interrupts(INT_TIMER1); enable_interrupts(GLOBAL); while (TRUE){ 	} } Prof. Luis Zurita                                                                                                                                                                       Microcontroladores II
Otra forma de realizar el ejemplo 4: IUT Cumaná Mediante la espera de desborde del TIMER1: #INCLUDE	<16F877.h> #FUSES		XT,NOWDT,NOPROTECT,NOLVP #USE		DELAY(CLOCK=4000000) #USE		fast_io(B) temp1s( ){ intcont=0; output_toggle(PIN_B0); while (cont<2) 	{    //para contar dos tiempos de 0,5 s. 	set_timer1 (3036); while (get_timer1()>=3036);	 cont++;} } voidmain(){ set_tris_B(0x00); 	setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); while (1){ 		temp1s();}	//llama a función de temporización } Prof. Luis Zurita                                                                                                                                                                 Microcontroladores II
TIMER 2 IUT Cumaná Características básicas: 1. Es de 8 bits. 2. Se puede leer y escribir en los registros TMR2. 3. Puede pararse o habilitarse mediante el bit TMR2ON. 4. Tiene un pre-divisor y un post-divisor programable por software 5. Sólo tiene modo temporizador. 6. Posee un registro (PR2) que ajusta el momento de desborde. 7. PR2(Registro de 8 bits) que puede leerse y escribirse PR2 con el cual compara su valor: Si los valores de TMR2 y PR2 se igualan, TMR2 pasa a cero. 8. Maneja el período de una señal PWM Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
TIMER 2 IUT Cumaná 9. Al igualarse TMR2 y PR2 se produce la interrupción TMR2: 1. El bit de interrupción del timer2 es TMR2IF (Registro PIR1(1)). 2. Hay un post-divisor a la salida del comparador. 10. Los registros de pre-divisor y post-divisor se limpian al: 1. Escribir en TMR2. 2. Escribir en el registro T2CON. 3. Cualquier tipo de RESET. 11. TMR2 no se limpia al escribir en T2CON. Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
REGISTROS ASOCIADOS AL TIMER2 TMR2 = Registro de 8 bits. (L/E) T2CON = Registro de control del TIMER 2 PR2 = Registro de ajuste del desborde INTCON = Control de Interrupciones PIE1 = Control de Interrupciones de Periféricos PIR1 = Señalizadores de Interrupciones IUT Cumaná Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
DIAGRAMA DE BLOQUE DEL TIMER 2 IUT Cumaná Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
IUT Cumaná T2CON Bit 7: No implementado: Se lee como 0 Bit 6-3:TOUTPS3:TOUTPS0: bit de selección del rango del divisor del  Postescaler para el TIMER2: 0 0 0 0	Divisor del postescaler 1:1 0 0 0 1  	Divisor del postescaler 1:2 0 0 1 0  	Divisor del postescaler 1:3 0 0 1 1  	Divisor del postescaler 1:4 0 1 0 0 	Divisor del postescaler 1:5 0 1 0 1  	Divisor del postescaler 1:6 0 1 1 0  	Divisor del postescaler 1:7 0 1 1 1  	Divisor del postescaler 1:8 1 0 0 0 	Divisor del postescaler 1:9 1 0 0 1  	Divisor del postescaler 1:10 1 0 1 0  	Divisor del postescaler 1:11 1 0 1 1  	Divisor del postescaler 1:12 1 1 0 0 	Divisor del postescaler 1:13 1 1 0 1  	Divisor del postescaler 1:14 1 1 1 0  	Divisor del postescaler 1:15 1 1 1 1 	Divisor del postescaler 1:16 Bit 2: TMR2ON: bit de activación del TIMER2 1 = habilita el funcionamiento del TIMER2 0 = Inhibe el funcionamiento del TIMER2 Bit 1-0:T2CKPS1:T2CKPS0 Selección del rango de divisor del Preescaler del TIMER 2 0 0  Divisor del Preescaler 1:1 0 1  Divisor del Preescaler 1:4 1 X  Divisor del Preescaler 1:16 Prof. Luis Zurita                                                                                                                                                                                            Microcontroladores II
CÁLCULOS TIMER2 ,[object Object]

Más contenido relacionado

La actualidad más candente

Lecture 5 formateo de señales analógicas
Lecture 5 formateo de señales analógicasLecture 5 formateo de señales analógicas
Lecture 5 formateo de señales analógicasnica2009
 
Problema resuelto de Maquinas de estado
Problema resuelto de Maquinas de estadoProblema resuelto de Maquinas de estado
Problema resuelto de Maquinas de estadoHugoDanteGarciaMunoz
 
Lecture 15 probabilidad de error y ber en señales bandabase binaria
Lecture 15 probabilidad de error y ber en señales bandabase binariaLecture 15 probabilidad de error y ber en señales bandabase binaria
Lecture 15 probabilidad de error y ber en señales bandabase binarianica2009
 
Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesLuis Zurita
 
GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4Luis Zurita
 
Principio de funcionamiento driver de disparo tca785
Principio de funcionamiento driver de disparo tca785Principio de funcionamiento driver de disparo tca785
Principio de funcionamiento driver de disparo tca785mario gonzalez
 
Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,
Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,
Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,Miguel Brunings
 
Configuración de polarización fija y la auto polarización en el JFET
Configuración de polarización fija y la auto polarización en el JFETConfiguración de polarización fija y la auto polarización en el JFET
Configuración de polarización fija y la auto polarización en el JFETVidalia Montserrat Colunga Ramirez
 
Transformadores (Conexiones y Pruebas)
Transformadores  (Conexiones y Pruebas)Transformadores  (Conexiones y Pruebas)
Transformadores (Conexiones y Pruebas)isidro vera coa
 
Redesde 2 puertos parámetros Z y parámetros Y
Redesde 2 puertos parámetros Z y parámetros YRedesde 2 puertos parámetros Z y parámetros Y
Redesde 2 puertos parámetros Z y parámetros YIsrael Magaña
 
Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2Luis Zurita
 
500 proyectos de electronica
500 proyectos de electronica500 proyectos de electronica
500 proyectos de electronicafedericoblanco
 
Ejercicios de Multiplexores y decodificadores
Ejercicios de Multiplexores y decodificadoresEjercicios de Multiplexores y decodificadores
Ejercicios de Multiplexores y decodificadoresBertha Vega
 
Trabajo familias logicas
Trabajo familias logicasTrabajo familias logicas
Trabajo familias logicaswm_black
 

La actualidad más candente (20)

Lecture 5 formateo de señales analógicas
Lecture 5 formateo de señales analógicasLecture 5 formateo de señales analógicas
Lecture 5 formateo de señales analógicas
 
Problema resuelto de Maquinas de estado
Problema resuelto de Maquinas de estadoProblema resuelto de Maquinas de estado
Problema resuelto de Maquinas de estado
 
Programación PIC16F84A
Programación PIC16F84AProgramación PIC16F84A
Programación PIC16F84A
 
Lecture 15 probabilidad de error y ber en señales bandabase binaria
Lecture 15 probabilidad de error y ber en señales bandabase binariaLecture 15 probabilidad de error y ber en señales bandabase binaria
Lecture 15 probabilidad de error y ber en señales bandabase binaria
 
Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupciones
 
El PIC16F84
El PIC16F84El PIC16F84
El PIC16F84
 
GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4
 
Principio de funcionamiento driver de disparo tca785
Principio de funcionamiento driver de disparo tca785Principio de funcionamiento driver de disparo tca785
Principio de funcionamiento driver de disparo tca785
 
Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,
Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,
Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,
 
BANDA LATERAL UNICA
BANDA LATERAL UNICABANDA LATERAL UNICA
BANDA LATERAL UNICA
 
Configuración de polarización fija y la auto polarización en el JFET
Configuración de polarización fija y la auto polarización en el JFETConfiguración de polarización fija y la auto polarización en el JFET
Configuración de polarización fija y la auto polarización en el JFET
 
Transformadores (Conexiones y Pruebas)
Transformadores  (Conexiones y Pruebas)Transformadores  (Conexiones y Pruebas)
Transformadores (Conexiones y Pruebas)
 
Redesde 2 puertos parámetros Z y parámetros Y
Redesde 2 puertos parámetros Z y parámetros YRedesde 2 puertos parámetros Z y parámetros Y
Redesde 2 puertos parámetros Z y parámetros Y
 
Cavidades Resonantes
Cavidades ResonantesCavidades Resonantes
Cavidades Resonantes
 
Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2
 
500 proyectos de electronica
500 proyectos de electronica500 proyectos de electronica
500 proyectos de electronica
 
Subrutinas de retardo
Subrutinas de retardoSubrutinas de retardo
Subrutinas de retardo
 
Restador completo
Restador completoRestador completo
Restador completo
 
Ejercicios de Multiplexores y decodificadores
Ejercicios de Multiplexores y decodificadoresEjercicios de Multiplexores y decodificadores
Ejercicios de Multiplexores y decodificadores
 
Trabajo familias logicas
Trabajo familias logicasTrabajo familias logicas
Trabajo familias logicas
 

Destacado

MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3Luis Zurita
 
Microcontroladores ii en c. tema 4
Microcontroladores ii en c. tema 4Microcontroladores ii en c. tema 4
Microcontroladores ii en c. tema 4Luis Zurita
 
MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5Luis Zurita
 
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN CMANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN CLuis Zurita
 
Curso Micro Tema 3 2
Curso Micro Tema 3 2Curso Micro Tema 3 2
Curso Micro Tema 3 2Luis Zurita
 
PWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros InvolucradosPWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros InvolucradosEduardo Henriquez
 
Manejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreManejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreLuis Zurita
 
Curso Micro Tema 3
Curso Micro Tema 3Curso Micro Tema 3
Curso Micro Tema 3Luis Zurita
 
Fundamentos de robotica barrientos, peñin, balaguer y aracil
Fundamentos de robotica   barrientos, peñin, balaguer y aracilFundamentos de robotica   barrientos, peñin, balaguer y aracil
Fundamentos de robotica barrientos, peñin, balaguer y aracilUniversidad Tecnológica
 
Interrupciones
InterrupcionesInterrupciones
Interrupcioneshandresrm
 
Microcontroladores 6 – interrupciones
Microcontroladores 6 – interrupcionesMicrocontroladores 6 – interrupciones
Microcontroladores 6 – interrupcionesPablo Gindel
 
4. interrupciones y temporizadores
4. interrupciones y temporizadores4. interrupciones y temporizadores
4. interrupciones y temporizadoresDavid Narváez
 

Destacado (20)

MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3
 
Microcontroladores ii en c. tema 4
Microcontroladores ii en c. tema 4Microcontroladores ii en c. tema 4
Microcontroladores ii en c. tema 4
 
MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5
 
Ccp2009170309
Ccp2009170309Ccp2009170309
Ccp2009170309
 
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN CMANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
 
Curso Micro Tema 3 2
Curso Micro Tema 3 2Curso Micro Tema 3 2
Curso Micro Tema 3 2
 
PWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros InvolucradosPWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros Involucrados
 
Micro2 tema 3
Micro2 tema 3Micro2 tema 3
Micro2 tema 3
 
Manejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreManejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladore
 
Micro2 tema 4
Micro2 tema 4Micro2 tema 4
Micro2 tema 4
 
Micro2 tema 5
Micro2 tema 5Micro2 tema 5
Micro2 tema 5
 
Curso Micro Tema 3
Curso Micro Tema 3Curso Micro Tema 3
Curso Micro Tema 3
 
Temporizador timer0
Temporizador timer0Temporizador timer0
Temporizador timer0
 
Ejemplos pic c
Ejemplos pic cEjemplos pic c
Ejemplos pic c
 
Fundamentos de robotica barrientos, peñin, balaguer y aracil
Fundamentos de robotica   barrientos, peñin, balaguer y aracilFundamentos de robotica   barrientos, peñin, balaguer y aracil
Fundamentos de robotica barrientos, peñin, balaguer y aracil
 
Microcontrolador 16f84 X
Microcontrolador 16f84 XMicrocontrolador 16f84 X
Microcontrolador 16f84 X
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Microcontroladores 6 – interrupciones
Microcontroladores 6 – interrupcionesMicrocontroladores 6 – interrupciones
Microcontroladores 6 – interrupciones
 
4. interrupciones y temporizadores
4. interrupciones y temporizadores4. interrupciones y temporizadores
4. interrupciones y temporizadores
 
FAMILIA MICROCONTROLADORES
FAMILIA MICROCONTROLADORESFAMILIA MICROCONTROLADORES
FAMILIA MICROCONTROLADORES
 

Similar a MICROCONTROLADORES II EN C. TEMA 2

TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"Diego Rojas Ruiz
 
Curso Micro Tema 5
Curso Micro Tema 5Curso Micro Tema 5
Curso Micro Tema 5Luis Zurita
 
PLUS UNIDAD I, REGISTROS Y FUNETES DE INTERRUPCIONES 2021-1.pdf
PLUS UNIDAD I, REGISTROS Y FUNETES DE INTERRUPCIONES 2021-1.pdfPLUS UNIDAD I, REGISTROS Y FUNETES DE INTERRUPCIONES 2021-1.pdf
PLUS UNIDAD I, REGISTROS Y FUNETES DE INTERRUPCIONES 2021-1.pdfSistemadeEstudiosMed
 
G UÍ A R E G I S T R O S P I C16 F873
G UÍ A  R E G I S T R O S  P I C16 F873G UÍ A  R E G I S T R O S  P I C16 F873
G UÍ A R E G I S T R O S P I C16 F873Luis Zurita
 
Microcontroladores: Módulos del micro PIC16F877 con temporizadores e interrup...
Microcontroladores: Módulos del micro PIC16F877 con temporizadores e interrup...Microcontroladores: Módulos del micro PIC16F877 con temporizadores e interrup...
Microcontroladores: Módulos del micro PIC16F877 con temporizadores e interrup...SANTIAGO PABLO ALBERTO
 
Guía de ejercicios resueltos y propuestos tema 4
Guía de ejercicios resueltos y propuestos tema 4Guía de ejercicios resueltos y propuestos tema 4
Guía de ejercicios resueltos y propuestos tema 4Luis Zurita
 
arquitectura de un microcontrolador
arquitectura de un microcontroladorarquitectura de un microcontrolador
arquitectura de un microcontroladorPablo Ramos Garcia
 
Interrupciones y Temporizadores pucesi
Interrupciones y Temporizadores   pucesiInterrupciones y Temporizadores   pucesi
Interrupciones y Temporizadores pucesiDavid Narváez
 
Curso de microcontroladores capitulo 05
Curso de microcontroladores capitulo 05Curso de microcontroladores capitulo 05
Curso de microcontroladores capitulo 05Hamiltonn Casallas
 
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
 
Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06Hamiltonn Casallas
 
Ejercicio 07 adicionales de Interrupciones
Ejercicio 07 adicionales de InterrupcionesEjercicio 07 adicionales de Interrupciones
Ejercicio 07 adicionales de InterrupcionesJaime E. Velarde
 

Similar a MICROCONTROLADORES II EN C. TEMA 2 (20)

TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"
 
Curso Micro Tema 5
Curso Micro Tema 5Curso Micro Tema 5
Curso Micro Tema 5
 
PLUS UNIDAD I, REGISTROS Y FUNETES DE INTERRUPCIONES 2021-1.pdf
PLUS UNIDAD I, REGISTROS Y FUNETES DE INTERRUPCIONES 2021-1.pdfPLUS UNIDAD I, REGISTROS Y FUNETES DE INTERRUPCIONES 2021-1.pdf
PLUS UNIDAD I, REGISTROS Y FUNETES DE INTERRUPCIONES 2021-1.pdf
 
G UÍ A R E G I S T R O S P I C16 F873
G UÍ A  R E G I S T R O S  P I C16 F873G UÍ A  R E G I S T R O S  P I C16 F873
G UÍ A R E G I S T R O S P I C16 F873
 
Microcontroladores: Módulos del micro PIC16F877 con temporizadores e interrup...
Microcontroladores: Módulos del micro PIC16F877 con temporizadores e interrup...Microcontroladores: Módulos del micro PIC16F877 con temporizadores e interrup...
Microcontroladores: Módulos del micro PIC16F877 con temporizadores e interrup...
 
Guía de ejercicios resueltos y propuestos tema 4
Guía de ejercicios resueltos y propuestos tema 4Guía de ejercicios resueltos y propuestos tema 4
Guía de ejercicios resueltos y propuestos tema 4
 
arquitectura de un microcontrolador
arquitectura de un microcontroladorarquitectura de un microcontrolador
arquitectura de un microcontrolador
 
Lab 01 micro
Lab 01 microLab 01 micro
Lab 01 micro
 
Interrupciones y Temporizadores pucesi
Interrupciones y Temporizadores   pucesiInterrupciones y Temporizadores   pucesi
Interrupciones y Temporizadores pucesi
 
Cartilla pic16f877
Cartilla pic16f877Cartilla pic16f877
Cartilla pic16f877
 
Curso de microcontroladores capitulo 05
Curso de microcontroladores capitulo 05Curso de microcontroladores capitulo 05
Curso de microcontroladores capitulo 05
 
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
 
In terrupciones pic
In terrupciones picIn terrupciones pic
In terrupciones pic
 
Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06
 
Uso del tmr0
Uso del tmr0Uso del tmr0
Uso del tmr0
 
Arquitectura interna micro
Arquitectura interna microArquitectura interna micro
Arquitectura interna micro
 
Enunciación
EnunciaciónEnunciación
Enunciación
 
Ejercicio 07 Timers
Ejercicio 07 TimersEjercicio 07 Timers
Ejercicio 07 Timers
 
Ejercicio 07 adicionales de Interrupciones
Ejercicio 07 adicionales de InterrupcionesEjercicio 07 adicionales de Interrupciones
Ejercicio 07 adicionales de Interrupciones
 
Unidad I
Unidad IUnidad I
Unidad I
 

Más de Luis Zurita

TALLER NORMAS APA
TALLER NORMAS APATALLER NORMAS APA
TALLER NORMAS APALuis Zurita
 
PROTOCOLO MODBUS
PROTOCOLO MODBUSPROTOCOLO MODBUS
PROTOCOLO MODBUSLuis Zurita
 
Guía rápidalcd y teclado
Guía rápidalcd y tecladoGuía rápidalcd y teclado
Guía rápidalcd y tecladoLuis Zurita
 
Grupos micro2 13
Grupos micro2 13Grupos micro2 13
Grupos micro2 13Luis Zurita
 
Notas def electronica
Notas def electronicaNotas def electronica
Notas def electronicaLuis Zurita
 
Notas proyecto3 iyc
Notas proyecto3 iycNotas proyecto3 iyc
Notas proyecto3 iycLuis Zurita
 
Notas definitivas iyc2013
Notas definitivas iyc2013Notas definitivas iyc2013
Notas definitivas iyc2013Luis Zurita
 
Proyecto 2 electronica
Proyecto 2 electronicaProyecto 2 electronica
Proyecto 2 electronicaLuis Zurita
 
Acumuladas electronica
Acumuladas electronicaAcumuladas electronica
Acumuladas electronicaLuis Zurita
 
Proyecto2 notas iyc2013
Proyecto2 notas iyc2013Proyecto2 notas iyc2013
Proyecto2 notas iyc2013Luis Zurita
 
Acumuladas iyc2013
Acumuladas iyc2013Acumuladas iyc2013
Acumuladas iyc2013Luis Zurita
 

Más de Luis Zurita (20)

TALLER NORMAS APA
TALLER NORMAS APATALLER NORMAS APA
TALLER NORMAS APA
 
PROTOCOLO MODBUS
PROTOCOLO MODBUSPROTOCOLO MODBUS
PROTOCOLO MODBUS
 
Guía rápidalcd y teclado
Guía rápidalcd y tecladoGuía rápidalcd y teclado
Guía rápidalcd y teclado
 
Pevmicroi ieo
Pevmicroi ieoPevmicroi ieo
Pevmicroi ieo
 
Pevmicroii13 2
Pevmicroii13 2Pevmicroii13 2
Pevmicroii13 2
 
Pevmicro1 t2 13
Pevmicro1 t2 13Pevmicro1 t2 13
Pevmicro1 t2 13
 
Pev electronica
Pev electronicaPev electronica
Pev electronica
 
Grupos micro2 13
Grupos micro2 13Grupos micro2 13
Grupos micro2 13
 
Pevmicro1 t2 13
Pevmicro1 t2 13Pevmicro1 t2 13
Pevmicro1 t2 13
 
Micro2 tema 1
Micro2 tema 1Micro2 tema 1
Micro2 tema 1
 
Pevmicroii13 2
Pevmicroii13 2Pevmicroii13 2
Pevmicroii13 2
 
Notas def electronica
Notas def electronicaNotas def electronica
Notas def electronica
 
Notas proyecto3 iyc
Notas proyecto3 iycNotas proyecto3 iyc
Notas proyecto3 iyc
 
Notas definitivas iyc2013
Notas definitivas iyc2013Notas definitivas iyc2013
Notas definitivas iyc2013
 
Proyecto 2 electronica
Proyecto 2 electronicaProyecto 2 electronica
Proyecto 2 electronica
 
Acumuladas electronica
Acumuladas electronicaAcumuladas electronica
Acumuladas electronica
 
Pevmicro2013
Pevmicro2013Pevmicro2013
Pevmicro2013
 
Proyecto2 notas iyc2013
Proyecto2 notas iyc2013Proyecto2 notas iyc2013
Proyecto2 notas iyc2013
 
Acumuladas iyc2013
Acumuladas iyc2013Acumuladas iyc2013
Acumuladas iyc2013
 
TMR0 Y RB0_INT
TMR0 Y RB0_INTTMR0 Y RB0_INT
TMR0 Y RB0_INT
 

Último

TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIAAbelardoVelaAlbrecht1
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfNataliaMalky1
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)veganet
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdfÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdfluisantoniocruzcorte1
 
PPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfPPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfEDILIAGAMBOA
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfCarol Andrea Eraso Guerrero
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadJonathanCovena1
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptAlberto Rubio
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfDaniel Ángel Corral de la Mata, Ph.D.
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 

Último (20)

TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdfÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
 
PPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfPPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdf
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la Sostenibilidad
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 

MICROCONTROLADORES II EN C. TEMA 2

  • 1. IUT Cumaná MICROCONTROLADORES IIINTERRUPCIONES Y TEMPORIZADORESTEMA 2 PROF. LUIS ZURITA
  • 2. IUT Cumaná (PIC16F84) CAUSAS DE INTERRUPCIÓN Activación del pin RB0/INT Desbordamiento del TMR0 Cambio de estado de una de los 4 pines de más peso (RB7:RB4) del puerto B Finalización de la escritura en la EEPROM de datos REGISTRO INTCON Prof. Luis Zurita Microcontroladores II
  • 3. IUT Cumaná INTERRUCCIONES PIC16F87X CLÁSICAS PIC16F84 NUEVAS GIE PEIE TOIE INTE RBIE TOIF INTF RBIF PIE1 PIR1 PIE2 PIR2 Prof. Luis Zurita Microcontroladores II
  • 4. IUT Cumaná REGISTRO PIE1 bit 7: PSPIE: bit de habilitación de interrupción por lectura / escritura en el Puerto Paralelo Esclavo. Para los modelos de 40 pines. 1 = Habilita la interrupción por lectura/escritura en el PSP 0= inhabilita la interrupción por lectura/escritura en el PSP bit 6: ADIF: bit de habilitación de interrupción por finalización de la conversión A/D. 1 = Habilita la interrupción del convertidor A/D 0 = Inhabilita la interrupción del convertidor A/D bit 5: RCIE: bit de habilitación de interrupción en recepción por el USART, cuando se llena el buffer. 1 = Habilita interrupción por recepción en el USART 0 = Inhabilita interrupción por recepción en el USART Prof. Luis Zurita Microcontroladores II
  • 5. IUT Cumaná REGISTRO PIE1 bit 4: TXIE: bit de interrupción al transmitir por el USART, cuando se vacía el buffer. 1 = Habilita la interrupción de transmisión por el USART 0 = Inhabilita la interrupción de transmisión por el USART bit 3: SSPIE: bit de habilitación de interrupción por el Puerto Serie Síncrono (SSP) 1= Habilita la interrupción del SSP 0= Inhabilita la interrupción del SSP bit 2: CCP1IE: bit de habilitación de interrupción del módulo CCPI cuando seproduce una captura o una comparación. 1= Habilita la interrupción del CCPI 0= Inhabilita la interrupción del CCPI bit 1: TMR2IE: bit de habilitación de interrupción por desbordamiento de TMR2 que está emparejado con el registro PR2 (92h) 1= Habilita la interrupción por desbordamiento de TMR2 emparejado a PR2 0= Inhabilita la interrupción de TMR2 emparejado a PR2 bit 0: TMR1IE: bit de habilitación de interrupción por desbordamiento del TMRI 1= Habilita la interrupción por desbordamiento de TMR1 0= Inhabilita la interrupción por desbordamiento de TMR1 Prof. Luis Zurita Microcontroladores II
  • 6. IUT Cumaná REGISTRO PIE2 bit 7: No implementado: se lee como “0’ bit 6 Reservado, Mantiene este bits a cero bit 5: No implementado: se lee como “0” bit 4: EEIE: Habilita la interrupción por escritura en la EEPROM de datos 1= Habilita la interrupción por escritura de la EEPROM de datos 0 =Deshabilita la interrupción por escritura en la EEPROM de datos bit 3: BCLIE: Habilita la interrupción por colisión en el bus SSP cuando dos o más maestros tratan de transferir al mismo tiempo. 1 = Habilita la interrupción por colisión de bus SSP 0 = Deshabilita la interrupción por colisión en el bus SSP. bit 2-1 No implementados, se leen como “0” bit 0: CCP2IE: Habilita la interrupción del modulo CCP2 1 = habilita la interrupción de CCP2 0 = inhabilita la interrupción de CCP2 Prof. Luis Zurita Microcontroladores II
  • 7. IUT Cumaná PC<12:0> CALL, RETURN RETFIE, RETLW Nivel 1 de la Pila 13 Nivel 2 de la Pila ……………… Nivel 8 de la Pila Vector de Reset 0000h ……………… Vector de Interrupción 0004h 0005h Página 0 07FFh 0800h Página 1 0FFFh 1000h Página 2 17FFh 1FFh Página 3
  • 8. IUT Cumaná INTERRUPCIONES EN LENGUAJE C Ventajas de usar las directivas de interrupciones 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. También genera el código para salvar al principio y restituir al final el contexto (salvar y restaurar el entorno), y borrará el flag que se activó con la interrupción. El programador debe seguir encargándose únicamente de habilitar las interrupciones y establecer las sentencias que se ejecutarán en cada función de las interrupciones deseadas a ejecutarse. Las directivas #INT_xxxx Indican que la función que aparece a continuación corresponde al tratamiento de una interrupción (no tiene ni necesita parámetros): Para los PICs 16F877 hay 14 posibles directivas: Prof. Luis Zurita Microcontroladores II
  • 9.
  • 10. IUT Cumaná INTERRUPCIONES EN LENGUAJE C La directiva #INT_DEFAULT Indica que la función que viene a continuación será llamada si se dispara una interrupción y ninguno de los flags está activo. 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. GLOBAL equivale a GIE=PEIE=1 y debe activarse de forma independiente. El resto activarán la máscara correspondiente. Prof. Luis Zurita Microcontroladores II
  • 11. FUNCIONES PARA GESTIÓN DE INTERRUPCIONES IUT Cumaná enable_interrupts (nivel); nivel es una constante definida en el 16F877.h y genera el código necesario para activar las máscaras necesarias. Etiquetas de nivel definidas para el 16F877: GLOBAL INT_RTCC INT_RB INT_EXT INT_AD INT_TBE INT_RDA INT_TIMER1 INT_TIMER2 INT_CCP1 INT_CCP2 INT_SSP INT_PSP INT_BUSCOL INT_EEPROM La máscara global (hace a GIE=1) debe activarse de manera independiente. Las otras activan la máscara particular y el PEIE si es necesario. disable_interrupts(nivel); Hace la acción contraria a la función anterior, poniendo a 0 las máscaras relacionadas con la interrupción indicada. Prof. Luis Zurita Microcontroladores II
  • 12. IUT Cumaná INTERRUPCIÓN EXTERIOR POR RB0 Es una interrupción clásica en la mayoría de los PICs. Permite generar una interrupción por cambio de nivel en la entrada RB0. La directiva que se utiliza es #INT_EXT y se debe acompañar de las siguientes funciones: ext_int_edge(H_TO_L); La interrupción es activada por flanco de bajada (antiva el flag INTF). ext_int_edge(L_TO_H); La interrupción es activada por flanco de subida (activa el flag INTF). Prof. Luis Zurita Microcontroladores II
  • 13. EJEMPLO 1. INTERRUPCIÓN POR RB0/INT IUT Cumaná #INT_EXT ext_isr( ){ …..//aquí se colocan las sentencias que se …..//desean ejecutar durante esta interrupción. } voidmain ( ){ enable_interrupts(INT_EXT); //Activa INTE ext_int_edge(H_TO_L); //Flanco de bajada enable_interrupts(GLOBAL); //Habilita GIE while (TRUE){ } } Prof. Luis Zurita Microcontroladores II
  • 14. IUT Cumaná EJEMPLO 2. Active dos leds de forma intermitente cada 1 segundo. Si presiona RB0/INT, los leds se activan a razón de 250 ms de manera intermitente hasta que se presione RA1 para volver a su estado normal. #include <16f877a.h> #fuses XT,NOWDT,NOPROTECT,NOLVP #use delay(clock=4000000) #use fast_IO(B) #use fast_IO(D) #use fast_IO(A) #INT_EXT voidext_interm( ){ //función de interrupción por RB0/INT: while (TRUE){ if (input(PIN_A0)==0) {break;} delay_ms(250); output_toggle(PIN_D0); output_toggle(PIN_D1); } } Prof. Luis Zurita Microcontroladores II
  • 15. IUT Cumaná Continuación Ejemplo 2. voidmain(){ set_tris_b(0x01); set_tris_d(0); set_tris_a(0x01); output_d(0); port_b_pullups(true); enable_interrupts(int_ext); ext_int_edge(H_to_L); enable_interrupts(global); while(TRUE){ output_high(PIN_D0); output_low(PIN_D1); delay_ms(1000); output_low(PIN_D0); output_high(PIN_D1); delay_ms(1000);} } Prof. Luis Zurita Microcontroladores II
  • 16.
  • 17. IUT Cumaná TIMER 0 TMR0: Registro de 8 bits de lectura/escritura OPTION: Configura al TMR0 para que trabaje como temporizador ó contador y asigna el valor al prescaler INTCON: Da información mediante el bit “TOIF” cuando el TMR0 se ha desbordado. TRISA (PUERTO A): Permite el ingreso de pulsos cuando el TMR0 está configurado como contador por RA4 Prof. Luis Zurita Microcontroladores II
  • 18. REGISTRO OPTION (Dirección 81H) IUT Cumaná bit 7, RPBU : Resistencia Pull-up, Puerto B, habilita el bit 1: Desactivadas 0: Activadas bit 6, INTEDG: Flanco activo para el control de interrupciones 1: Con flanco Ascendente 0: Con flanco Descendente bit 5, TOCS: Fuente de Reloj para TMR0 1: Pulsos introducidos a través de RA4/T0CK1 (Contador) 0: Pulsos de reloj interno Fosc/4 (Temporizador) bit 4, TOSE: Tipo de flanco en TOCK1 1: Incremento de TMR0 cada flanco descendente 0: Incremento de TMR0 cada flanco ascendente bit 3, PSA: Bit de asignación del prescaler divisor de frecuencia 1: El divisor de frecuencia se asigna al WDT 0: El divisor de frecuencia se asigna al TMR0 bit 2-0, PS2:PSO: Rango con el que actúa el divisor de frecuencia. Prof. Luis Zurita Microcontroladores II
  • 19. IUT Cumaná ¿QUÉ ES EL PRESCALER? Divide la frecuencia de reloj de entrada del Timer0, entre valores predefinidos, como se ve en la tabla asociada al registro OPTION, 1:32, 1: 64, 1:256, etc., genera una nueva señal de menor frecuencia a la salida, que será la señal de reloj de entrada al registro TMR0. “Ralentiza” señales de entrada demasiado rápidas para nuestros propósitos. También existe un postescaler, asociado al perro guardián WDT (WatchDogTimer) del microcontrolador, pero en este caso recibe el nombre de postcaler ya que se usa a la salida del WDT, no pudiendo estar asignado a la vez al Timer0 o al WDT. El preescaler es transparente para el programador, no se puede leer ni escribir sobre él, pero se puede seleccionar por software, como ya se ha dicho, mediante el registro OPTION. Nota: Para evitar un RESET no deseado del sistema, es necesario ejecutar una secuencia de instrucciones específicas cuando se cambia la asignación del prescaler del TMR0 al WDT. Esta secuencia debe ser seguida, aún cuando el WDT esté inactivo.
  • 20. IUT Cumaná ¿CÓMO CUENTA EL TMR0? 00H FFH El TMR0 cuenta exclusivamente de forma ascendente, nunca descendente. 00H (28 – N10) 00H Si el TMR0 se carga con un valor, éste comenzará a contar desde el valor cargado hasta que se desborda (cuando pasa a 00H) FFH Valor cargado En el TMR0 00H Prof. Luis Zurita Microcontroladores II
  • 21.
  • 22. Valor Real TMR0 = (28 – N10) = (256 – N10)
  • 23. N10= Valor a cargar en el TMR0Ejemplo: Sea un valor a cargar en el TMR0 de 100, un prescaler seleccionado de 1:32 y un oscilador XT. Determine el tiempo en que tardará el TMR0 en desbordarse. Solución: Sea XT = Frecuencia = 4 MHz, T = 0.25 μs. Temporización= 4*0.25 μs* (256 – 100) * 32 = 4.992 ms. Prof. Luis Zurita Microcontroladores II
  • 24. IUT Cumaná OTROS EJEMPLOS Se desea saber: ¿Qué valor debemos cargar en el TMR0, si deseamos obtener una temporización de 10,24 ms, utilizando un preescaler de 128 y un cristal XT? Solución: (256 – N10) = = = 80 (256 – N10) = 80, despejando N10 = (256 – 80) = 176, el valor que debemos cargar en el TMR0 es 176, para que éste cuente desde 176 hasta 256. Elegir el TMR0, para generar un retraso de 1.5 ms utilizando un oscilador de 10 MHz. Solución: Sea Fosc= 10 MHz, T = 100 ns (256 – N10) = = N10 = 256 - (3750/RgoDivisor) Prof. Luis Zurita Microcontroladores II
  • 25. IUT Cumaná CONTINUACIÓN EJEMPLO ANTERIOR Démosle valores al Rango del divisor, hasta obtener un valor que se acerque lo más posible al retardo propuesto: Si Prescaler= 256, Valor a cargar en el TMR0= 241 (redondeado) Si Prescaler= 128, Valor a cargar en el TMR0= 227 (redondeado) Si Prescaler= 64, Valor a cargar en el TMR0= 197 (redondeado) Si Prescaler= 32, Valor a cargar en el TMR0= 139 (redondeado) Etc… A manera de práctica, realice usted, el cálculo de la Temporización, para cada uno de los valores que se consiguieron en los cálculos anteriores. Escoja uno y justifique. Particularmente parece que el que tiene el rango de divisor de 64, es el mejor. Nota: En este ejercicio resuelto, usted puede darse cuenta de que no hay un solo resultado para los ejercicios, pero lo que si debe cumplirse es que sea cualquiera que sean los valores que se tomen para los cálculos, estos deben de estar cercanos a la respuesta que se espera del temporizador que esté diseñando. Prof. Luis Zurita Microcontroladores II
  • 26. IUT Cumaná TIMER0 EN LENGUAJE C La función para configurar el TIMER0 es: setup_timer_0 (modo); Donde modo está definido en el fichero de cabecera y afecta a los bits 5:0 del OPTION_REG:
  • 27. IUT Cumaná TIMER0 EN LENGUAJE C Los distintos modos se pueden agrupar mediante el empleo del símbolo |. Ejemplo: setup_timer_0 (RTCC_DIV_2 | RTCC_EXT_L_TO_H); El compilador C suministre una serie de funciones para leer o escribir en el TIMER0. Para escribir un valor en el registro: set_timer0(valor); valor : es un entero de 8 bits. Para leer el valor actual del registro: valor= get_timer0 ( ); valor: entero de 8 bits. Prof. Luis Zurita Microcontroladores II
  • 28. Ejemplo 3. Generar una señal cuadrada de 1 kHz utilizando la interrupción del TIMER0 IUT Cumaná Para generar una señal cuadrada de 1 kHz con un dutycycle del 50 %, se necesita un período de 0,5 ms en nivel alto y 0,5 ms en nivel bajo. Paso 1. Cálculos: Aplicando las fórmulas del TIMER0: Solución: (256 – N10) = = = 62,5 (256 – N10) = 62,5 y despejando N10 = (256 – 62,5) = 193,5 ≈194, por lo tanto el valor que debemos cargar en el TMR0 es 194, para que éste cuente desde 194 hasta 256, generándonos la temporización de 0,5 ms. Estos cálculos se cumplen fielmente en lenguaje ensamblador, sin embargo en lenguaje C, al generarse códigos adicionales, se realiza un ajuste de los valores hasta en 4 unidades por encima de lo que se calculó, por lo tanto el valor a cargar definitivo en el TIMER0 es 198. Prof. Luis Zurita Microcontroladores II
  • 29. Ejemplo 3. Generar una señal cuadrada de 1 kHz utilizando la interrupción del TIMER0 IUT Cumaná #INCLUDE <16F877.h> #FUSES XT,NOWDT,NOPROTECT,NOLVP #USE DELAY(CLOCK=4000000) #USE fast_io(B) #INT_RTCC RTCC_isr(){ output_toggle(PIN_B7); set_timer0(198);} voidmain(){ set_tris_B(0x00); output_low(PIN_B7); setup_timer_0(RTCC_DIV_8); set_timer0(198); enable_interrupts(INT_RTCC); enable_interrupts(GLOBAL); while (TRUE){ } } NOTA: El compilador se encarga al entrar en la interrupción de inhabilitar las interrupciones y al salir de borrar los flags, por lo que no es necesario hacerlo por programa Prof. Luis Zurita Microcontroladores II
  • 30.
  • 31. TIMER 1 Características básicas: 1. Es de 16 bits. 2. Puede actuar como temporizador o como contador bit (TMR1CS). 3. Se puede leer y escribir en los registros TMR1H, TMR1L. 4. Puede pararse o habilitarse mediante el bit TMR1ON. 5. Tiene un pre-divisor programable por software. 6. El oscilador de bajo consumo está situado entre los pines T1OSI (entrada) y T1OSO (salida). IUT Cumaná Prof. Luis Zurita Microcontroladores II
  • 32. TIMER 1 IUT Cumaná 7. Al desbordase (FFFFh -> 0000h) produce la interrupción TMR1: El bit de interrupción del timer1 es TMR1IF [Registro PIR1(0)]. Puede deshabilitarse mediante TMR1IE [Registro PIE1(0)]. 8. La frecuencia de oscilación máx. es 200kHz. No se apaga durante SLEEP. 9. Monitorea tiempo entre transiciones de una señal en pin de entrada. 10. Controla con precisión el tiempo de transición de pin de salida. 11. Sirve para contar eventos externos y generar interrupciones cuando ha ocurrido un número deseado. Prof. Luis Zurita Microcontroladores II
  • 33. DIAGRAMA DE BLOQUE TIMER 1 IUT Cumaná Prof. Luis Zurita Microcontroladores II
  • 34. REGISTROS ASOCIADOS AL TIMER 1 IUT Cumaná TMR1H = Parte alta del TIMER 1 (L/E) TMR1L = Parte baja del TIMER 1 (L/E) T1CON = Registro de control del TIMER 1 INTCON = Control de Interrupciones PIE1 = Control de Interrupciones de Periféricos PIR1 = Señalizadores de Interrupciones TRISC = Registro de configuración PortC PORTC= Registro de 8 bits. Prof. Luis Zurita Microcontroladores II
  • 35. IUT Cumaná T1CON Bit 7-6: No implementados: Se lee como “0” Bit 5-4: TlCKPS1:T1CKPS0: bit de selección del preescaler de la señal de reloj delTIMER1: 11 = valor del preescaler 1:8 10 = valor del preescaler 1:4 01 = valor del preescaler 1:2 00 = valor del preescaler 1: 1 Bit 3: T1OSCEN: bit de habilitación del oscilador del TIMER1. Cuando se emplea un oscilador externo, hay que poner este bit a 1. El TMR1 puede trabajar a una frecuencia totalmente independiente de la del sistema. 1 = Habilita el oscilador 0 = Deshabilita el oscilador Nota: El oscilador y la resistencia se desconectan para reducir el consumo Bit 2: #TlSYNC: bit de control de sincronización de la señal de entrada. Con TMR1CS = 1 1= No sincroniza la entrada de reloj externa 0 = Sincroniza la entrada de reloj externa Con TMR1CS = 0 En esta condición se ignora. El TIMER1 utiliza el reloj interno cuando TMRICS=0 Bit 1 TMR1CS: bit de selección de la fuente de reloj del TIMER1 1 = Reloj externo por el pin RC0/T1OSO/T1CK1 (flanco ascendente) 0 = Relojinterno (FOSC/4) Bit 0: TMR1ON: TIMER1 activo. Hace entrar o no en funcionamiento el TIMER1. 1 = Habilita el TIMER1 0 = Deshabilita el TIMER1 Prof. Luis Zurita Microcontroladores II
  • 36.
  • 37. Valor Real TMR1= (65536 – (TMR1H:TMR1L))
  • 38. (TMR1H:TMR1L)= Valor a cargar en el TIMER1Ejercicio: ¿Cuál es el máximo valor de temporización que se puede alcanzar con el TIMER 1? IUT Cumaná Prof. Luis Zurita Microcontroladores II
  • 39. RSI INICIO Deshabilitar GIE Configurar TIMER 1 Limpiar señalizador Cargar TIMER 1 Habilitar GIE IUT Cumaná Habilitar TIMER 1 RETFIE SLEEP FIN Realice un programa para que se genere una interrupción cada 0,5 segundos, utilizando un XT. Prof. Luis Zurita Microcontroladores II
  • 40. IUT Cumaná TIMER1 EN LENGUAJE C La función para configurar el TIMER0 es: setup_timer_1 (modo); Donde modo está definido en el fichero de cabecera y afecta a los bits 5:0 del T1CON: Prof. Luis Zurita Microcontroladores II
  • 41. IUT Cumaná TIMER1 EN LENGUAJE C Los distintos modos se pueden agrupar mediante el empleo del símbolo |. Ejemplo: setup_timer_1 (T1_INTERNAL| T1_DIV_BY_2); El compilador C suministre una serie de funciones para leer o escribir en el TIMER1. Para escribir un valor en el registro: set_timer1(valor); valor : es un entero de 16 bits. Para leer el valor actual del registro: valor= get_timer1 ( ); valor: entero de 16 bits. Prof. Luis Zurita Microcontroladores II
  • 42. Ejemplo 4. Generar una interrupción cada un segundo utilizando el TIMER1 IUT Cumaná Para generar un retardo de 1 segundo, se deben generar dos veces 0,5 segundos, motivado a que directamente el TIMER1 no puede alcanzarlo. Paso 1. Cálculos: Aplicando las fórmulas del TIMER1: Solución: (65536 – N16) = = = 62500 (65536 – N16) = y despejando N16 = (65536 – 62500) = 3036, por lo tanto el valor que debemos cargar en el TMR1 es 3036, para que éste cuente desde 3036 hasta 65536, generándonos la temporización de 0,5 s. Nota: este término debe ser menor o igual a 65536. Es por ello que se utilizó el predivisor de 8. Prof. Luis Zurita Microcontroladores II
  • 43. EJEMPLO 4. Generar una interrupción cada un segundo utilizando el TIMER1 IUT Cumaná #INCLUDE <16F877.h> #FUSES XT,NOWDT,NOPROTECT,NOLVP #USE DELAY(CLOCK=4000000) #USE fast_io(B) int1 cont=0; #INT_TIMER1 temp1_isr(void){ if (cont==1) output_toggle(PIN_B0); set_timer1(3036); cont++;} voidmain(){ set_tris_B(0x00); output_low(PIN_B0); setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); set_timer1(3036); enable_interrupts(INT_TIMER1); enable_interrupts(GLOBAL); while (TRUE){ } } Prof. Luis Zurita Microcontroladores II
  • 44.
  • 45. Otra forma de realizar el ejemplo 4: IUT Cumaná Mediante la espera de desborde del TIMER1: #INCLUDE <16F877.h> #FUSES XT,NOWDT,NOPROTECT,NOLVP #USE DELAY(CLOCK=4000000) #USE fast_io(B) temp1s( ){ intcont=0; output_toggle(PIN_B0); while (cont<2) { //para contar dos tiempos de 0,5 s. set_timer1 (3036); while (get_timer1()>=3036); cont++;} } voidmain(){ set_tris_B(0x00); setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); while (1){ temp1s();} //llama a función de temporización } Prof. Luis Zurita Microcontroladores II
  • 46. TIMER 2 IUT Cumaná Características básicas: 1. Es de 8 bits. 2. Se puede leer y escribir en los registros TMR2. 3. Puede pararse o habilitarse mediante el bit TMR2ON. 4. Tiene un pre-divisor y un post-divisor programable por software 5. Sólo tiene modo temporizador. 6. Posee un registro (PR2) que ajusta el momento de desborde. 7. PR2(Registro de 8 bits) que puede leerse y escribirse PR2 con el cual compara su valor: Si los valores de TMR2 y PR2 se igualan, TMR2 pasa a cero. 8. Maneja el período de una señal PWM Prof. Luis Zurita Microcontroladores II
  • 47. TIMER 2 IUT Cumaná 9. Al igualarse TMR2 y PR2 se produce la interrupción TMR2: 1. El bit de interrupción del timer2 es TMR2IF (Registro PIR1(1)). 2. Hay un post-divisor a la salida del comparador. 10. Los registros de pre-divisor y post-divisor se limpian al: 1. Escribir en TMR2. 2. Escribir en el registro T2CON. 3. Cualquier tipo de RESET. 11. TMR2 no se limpia al escribir en T2CON. Prof. Luis Zurita Microcontroladores II
  • 48. REGISTROS ASOCIADOS AL TIMER2 TMR2 = Registro de 8 bits. (L/E) T2CON = Registro de control del TIMER 2 PR2 = Registro de ajuste del desborde INTCON = Control de Interrupciones PIE1 = Control de Interrupciones de Periféricos PIR1 = Señalizadores de Interrupciones IUT Cumaná Prof. Luis Zurita Microcontroladores II
  • 49. DIAGRAMA DE BLOQUE DEL TIMER 2 IUT Cumaná Prof. Luis Zurita Microcontroladores II
  • 50. IUT Cumaná T2CON Bit 7: No implementado: Se lee como 0 Bit 6-3:TOUTPS3:TOUTPS0: bit de selección del rango del divisor del Postescaler para el TIMER2: 0 0 0 0 Divisor del postescaler 1:1 0 0 0 1 Divisor del postescaler 1:2 0 0 1 0 Divisor del postescaler 1:3 0 0 1 1 Divisor del postescaler 1:4 0 1 0 0 Divisor del postescaler 1:5 0 1 0 1 Divisor del postescaler 1:6 0 1 1 0 Divisor del postescaler 1:7 0 1 1 1 Divisor del postescaler 1:8 1 0 0 0 Divisor del postescaler 1:9 1 0 0 1 Divisor del postescaler 1:10 1 0 1 0 Divisor del postescaler 1:11 1 0 1 1 Divisor del postescaler 1:12 1 1 0 0 Divisor del postescaler 1:13 1 1 0 1 Divisor del postescaler 1:14 1 1 1 0 Divisor del postescaler 1:15 1 1 1 1 Divisor del postescaler 1:16 Bit 2: TMR2ON: bit de activación del TIMER2 1 = habilita el funcionamiento del TIMER2 0 = Inhibe el funcionamiento del TIMER2 Bit 1-0:T2CKPS1:T2CKPS0 Selección del rango de divisor del Preescaler del TIMER 2 0 0 Divisor del Preescaler 1:1 0 1 Divisor del Preescaler 1:4 1 X Divisor del Preescaler 1:16 Prof. Luis Zurita Microcontroladores II
  • 51.
  • 52. EjercicioDetermine, cuanto tarda en desbordarse el TMR2, si se utiliza un XT, con un prescaler = 4 y un postcaler = 10, considerando que PR2 = D’200’. Cargue el TMR2 con 00H IUT Cumaná Prof. Luis Zurita Microcontroladores II
  • 53. TIMER2 EN LENGUAJE C La configuración del TIMER2 en el compilador de C se realiza con la función: setup_timer_2(modo , periodo , postcaler); donde: período es un valor entero de 8 bits (0-255) que se carga en el registro PR2. postcaleres el valor del postcaler (1 a 16). Afecta a los bits 6:3 del registro T2CON modo afecta a los bits 2:0 del registro T2CON. IUT Cumaná Prof. Luis Zurita Microcontroladores II
  • 54. TIMER2 EN LENGUAJE C IUT Cumaná Para escribir un valor en el registro: set_timer2(valor); valor : es un entero de 16 bits. Para leer el valor actual del registro: valor= get_timer2( ); valor: entero de 16 bits. Prof. Luis Zurita Microcontroladores II
  • 55. IUT Cumaná Ejemplo 5. Generar una señal de 1 kHz utilizando interrupción con el TIMER2 Para una señal de 1 kHz se necesitan dos semiperíodos de 0,5 ms, se utilizará un XT, un predivisor de 4 y un postcaler de 1: Temporización= 4 * TOSC * Valor PR2 * Rango del prescaler Timer2 * Rango del postcaler Timer2 0,5 ms=(4/4000000)(4*1)*Valor PR2 Valor PR2=125 Sin embargo este valor se cumple en lenguaje ensamblador, por lo que debe ajustarse para lenguaje C reduciendo su valor hasta 11, o por tanteo. Prof. Luis Zurita Microcontroladores II
  • 56. IUT Cumaná #INCLUDE <16F877.h> #FUSES XT,NOWDT,NOPROTECT,NOLVP #USE DELAY(CLOCK=4000000) #USE fast_io(B) int1 cont=0; #INT_TIMER2 void temp2_isr(void){ output_toggle(PIN_B0); set_timer2(11);} voidmain(){ set_tris_B(0x00); output_low(PIN_B0); setup_timer_2(T2_DIV_BY_4 , 124 , 1); enable_interrupts(INT_TIMER2); enable_interrupts(GLOBAL); while (TRUE){ } } Prof. Luis Zurita Microcontroladores II