Laboratorio N°12
PROGRAMACIÓN DE MICRO-CONTROLADORES PIC
Manejo de Timer y las interrupciones.
1. COMPETENCIA ESPECIFICA DE LA SESIÓN:
● Conocer el funcionamiento y la configuración de las Interrupciones
Conocer el funcionamiento y la configuración del Timer cero.
Aplicar estos conocimientos en la realización de un cronómetro.
2. CONTENIDOS A TRATAR
- Interrupciones
- Timer cero.
3. Teoria
Interrupciones en microcontroladores.
Es una de las caracterasticas de los microcontroladores, de las mas importantes que constituye la capacidad de sincronizar la ejecucion de programas con acontecimientos externos; es decir, cuando se produce una interrupcion, el micro automaticamente deja lo que esto haciendo, va a la direccion 04h de programa y ejecuta lo que encuentre a partir de alli hasta encontrarse con la instruccion RETFIE que le hara abandonar la interrupcion y volver al lugar donde se encontraba antes de producirse dicha interrupcion. Hemos de diferenciar entre dos tipos de interrupciones posibles en un PIC:
TIMER0 PIC 16F877A
El timer0 PIC es un temporizador contador de 8 bits, el registro TMR0 es el temporizador, es donde se guardan los valores del timer0 PIC, cuando es utilizado como temporizador sus valores aumentaran de uno en uno entre 0 y 255 con cada 4 ciclos de reloj, no olvidar que cada ciclo de instrucción del microcontrolador PIC es realizado en 4 ciclos de reloj, por ejemplo si el oscilador con el que está funcionando el microcontrolador PIC es de 4MHz, entonces el registro TMR0 aumentará una unidad en cada 1us, si el registro TMR0 se incrementa en 100 unidades habrán transcurrido 100us; cuando el timer0 PIC es utilizado como contador el registro TMR0 ya no aumenta su valor de uno en uno en cada 4 ciclos de reloj, sino que lo hará mediante el flanco de subida o el flanco de bajada de alguna señal que llegue a un pin especial del PIC conectado al timer0 PIC, este pin es identificado como T0CKI que en el PIC16F877A es el pin6 o RA4, esto puede variar de acuerdo al microcontrolador PIC utilizado, pero siempre se llamará T0CKI.
TIMER0:
Los Timer0 de un microcontrolador son registros que incrementan con cierto periodo, estos pueden ser de 8 bits o 16 bits, se les pueden añadir preescalers y postsclaers, y también cuentan concaracterísticas para comparar su registro con otros para formar canales PWM entre otros.
- Timer 0 (8 bits)
- Timer 1(16 bits)
- Timer 2(8 bits)
OBSERVACIONES:
Durante el presente laboratorio se aprendió el correcto funcionamiento del Timer0 en el PIC 16F877A, así
como los algoritmos necesarios en relación a la programación para su adecuado manejo.
Tanto en un temporizador ascendente como descendente la variable centenas debe estar siempre
incrementándose y no decrementándose, ya que esta variable realiza la operación de funcionamiento del
temporizador ya sea para aumentar tiempo o quitar tiempo.
Se utilizó una variable contador, el cual me permite saber si el temporizador ya realizó la cuenta regresiva
programada y de esa manera recién hacer sonar los bips correspondientes.
CONCLUSIONES
Como el cronómetro solo es hasta 59 minutos si se supera este valor minutos rse reiniciara tomando el valor
de 0 de nuevo.
Para el desarrollo del problema propuesto en el laboratorio, se hizo uso de 3 pulsadores D0, E0, D1. Con e
D0 y E0 podemos incrementar el cronometro en segundos y minutos respectivamente, y con el D1 podemos
iniciar la cuenta regresiva de dicho temporizador.
Se debe usar un delay después de presionar cada pulsador, esto con la finalidad de evitar falsos disparos y
hacer que nuestra configuración de segundos y minutos sea lo más precisa posible ya que de lo contrario al
presionar un pulsador, este aumentaría desproporcionalmente.
Se logro elaborar la programación que satisfaga las condiciones que se proporcionaron en este laboratorio,
logrando un temporizador descendente controlando su inicio y determinando el tiempo a descender.
No hay comentarios:
Publicar un comentario