Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE ESTUDIOS SUPERIORES CUAUTITLÁN LABORATORIO DE MICROCONTROLADORES PRÁCTICA #3 “TEMPORIZADORES” PROFESORA: ADDY MARTINEZ DUARTE ALUMNO: JORGE ANTONIO JIMENEZ BERNAL CARRERA: I.T.S.E GRUPO: 1809A SEMESTRE: 2018-I FECHA DE ENTREGA: 04-10-2017 Objetivos · Crear retardos haciendo uso del temporizador básico de los microcontroladores PIC, el TIMER 0 Introducción El Timer0 es un temporizador/contador ascendente de 8 bits, cuando trabaja con el reloj del PIC se le suele llama temporizador y cundo los pulsos los recibe de una fuente externa a través de la patilla RA4/TOCKI se le llama contador, pero digamos que es el mismo perro con dos collares diferentes. PS0, PS1 y PS2: Configuración del preescaler. El preescaler es un divisor de pulsos que está a la entrada del Timer-contador. El prescaler divide el número de pulsos que le entran al timer-contador o al Wachtdog. El factor de división es el siguiente (según los valores de PS2, PS1 y PS0 respectivamente PSA: Bit de asignación de prescaler. Si está a "1" el prescaler se asigna a WDT (Wachtdog), si está a "0" se asigna al TMR0. TOSE: Bit de selección del tipo de flanco para el TMR0. A "1" se incrementa TMR0 por flanco descendente de RA4, a "0" se incrementa TMR0 por flanco ascendente de RA4. TOCS: Selecciona la entrada de reloj de TMR0. A "1" la entrada de reloj de TMR0 es por flanco de la patilla RA4, a "0" la entrada de reloj de TMR0 es por ciclo de reloj interno. Pues bien vamos a ver lo que significa cada uno de los bits que están implicados en la interrupción por el TMR0: · TOIF: solo se puede leer su valor, es un Flag o bandera que se pone a “1” cuando se produce un desbordamiento del TMR0, (este o no este configurado para producir una interrupción). Cuando se trabaja en Ensamblador, este bit hay que ponerlo a "0" por programa, con CCS no tenemos que preocuparnos por ello. (je, je,.. otra cosa que nos ahorramos) · TOIE (Habilita la interrupción por desbordamiento de TMR0). Si este bit está a "1" la interrupción por desbordamiento de TMR0 es posible. · GIE (Habilita las interrupciones globalmente). Este bit permite que cualquier interrupción sea posible. Para poder usar cualquier interrupción hay que habilitarla globalmente e individualmente. Bueno como veis hay varias variables que podemos utilizar a nuestro antojo para utilizar este recurso del PIC, la fórmula que las relaciona es la siguiente: Procedimiento Experimental 1. En el software MPLAB se creó el siguiente programa: -El programa se realizó para prender y a pagar un LED cada 5 segundos, es decir mantiene encendido el LED 5 segundos y otros 5 segundos lo mantiene apagado y así sucesivamente. El procedimiento es el siguiente: Dónde: t= tiempo de retardo deseado Tosc=periodo del oscilador del µC PRE=Valor elegido del preescaler TMR0=registro e control del TIMERO Para: t= 5s PRE=4 39 216 equivale a D8 en hexadecimal y este número se colocó en el código, esto se muestra en la siguiente imagen, que forma parte del código: 2. Después se armó el siguiente circuito: 3. Se grabó el programa en el PIC con la ayuda del software SUPERPRO mediante el grabador universal y se colocó en el circuito. 4. Se procedió a probar el funcionamiento del circuito, y funcionó correctamente, pues el LED se encendía durante 5 segundos y se mantenía 5 segundos apagados y así sucesivamente, esto se muestra a continuación: · El LED se mantiene encendido 5 segundos : · El LED se mantiene apagado 5 segundos : 4.1. Mediante una modificación al programa , ahora el led encenderá un segundo y se apagara durante tres segundos únicamente cambiando algunos valores 5.Ahora se modificó el circuito de tal manera que ahora tuviera la función de un semáforo, el programa fue el siguiente: CUESTIONARIO 1) ¿Cuál es el valor máximo que puede tener el valor de la variable “tiempo” para la instrucción de retardo? El registro de control del timer 0 (TMR0) no puede ser más grande de 255(8bits). 2) Explique el funcionamiento del Prescaler del microcontrolador PIC16F887 Un prescaler es un circuito que reduce la frecuencia que ingresa a un temporizador-contador dividiéndola para un determinado valor. Por ejemplo, si la relación es 1:8, el prescaler entrega una frecuencia igual a la octava parte de la frecuencia del oscilador. 3) Determine el tiempo mínimo de retardo que se puede lograr con el microcontrolador en la práctica y explique cuáles son sus limitaciones de funcionamiento Usando el valor mínimo del prescaler 2 y un valor TMRO de 255 con la oscilación de 8MHz, el valor mínimo será de: T= 1us Las limitaciones que se tiene es que debido a que el prescaler solo puede tomar valores de 2, 4, 8, 16, 32, 64, 128, 256, no se puede tener un tiempo específico ya que el prescaler solo puede tomar esos valores por lo que habrá ocasiones que no se cumpla con el tiempo específico por lo que se tiene que hacer cálculos y variaciones en tanto a frecuencia y el valor TMR0 para llegar a un valor aproximado al deseado, de preferencia se pide que sea menor al valor deseado ya que al hacer los procesos el PIC se lleva micro segundos de tiempo por lo que eso ayudaría a tener más aproximación al valor deseado. CONCLUSIONES Esta práctica resulto de mucha ayuda ya que me permitió conocer el uso del temporizador Timer0 del PIC16F887 el cual permite controlar periodos de tiempo, que pueden ser usado en contadores o máquinas de estados, que en el caso de la práctica se realizó una pequeña máquina de estados la cual permitía tener una secuencia de 0 y 1, es decir, encendía un LED durante 5 segundos y lo mantenía apagado otros 5 segundos y así sucesivamente. Finalmente al realizar esta práctica fue de bastante consideración, ya que el uso del temporizador es de gran aplicación y de esta manera poder usarlo de manera más fácil. BIBLIOGRAFÍA · Hoja de datos del PIC16F887 RE3/MCLR/VPP 1 RA1/AN1/C12IN1- 3 RA2/AN2/VREF-/CVREF/C2IN+ 4 RA4/T0CKI/C1OUT 6 RA5/AN4/SS/C2OUT 7 RB0/AN12/INT 33 RB1/AN10/C12IN3- 34 RB2/AN8 35 RA7/OSC1/CLKIN 13 RA6/OSC2/CLKOUT 14 RD5/P1B 28 RD6/P1C 29 RD7/P1D 30 RC4/SDI/SDA 23 RC5/SDO 24 RC3/SCK/SCL 18 RC2/P1A/CCP1 17 RC1/T1OSI/CCP2 16 RC0/T1OSO/T1CKI 15 RB7/ICSPDAT 40 RB6/ICSPCLK 39 RB5/AN13/T1G 38 RB4/AN11 37 RD3 22 RD2 21 RD1 20 RD0 19 RC7/RX/DT 26 RC6/TX/CK 25 RE2/AN7 10 RE1/AN6 9 RE0/AN5 8 RA3/AN3/VREF+/C1IN+ 5 RD4 27 RB3/AN9/PGM/C12IN2- 36 RA0/AN0/ULPWU/C12IN0- 2 U1 PIC16F887 R1 10k +5v D1 LED-BLUE
Compartir