Logo Studenta

Practica 3 Laboratorio de Microcontroladores

¡Este material tiene más páginas!

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

Continuar navegando