domingo, 17 de noviembre de 2019

LABORATORIO NRO. 12

MICROCONTROLADORES

Laboratorio N°12:
Manejo del Timer y las interrupciones

1. COMPETENCIA TERMINAL:
  • Utilizar al microcontrolador en aplicaciones de control electrónico.
  • Desarrollar y ejecutar programas en un microcontrolador PIC.
  • Programar y configurar interfaces básicas del microcontrolador.
2. 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
3. CONTENIDOS A TRATAR
  • Interrupciones
  • Timer cero.
4. MARCO TEÓRICO:

4.1. PIC 16F877A:

Este microcontrolador es fabricado por MicroChip familia a la cual se le denomina PIC. El modelo 16F877A posee varias características que hacen a este microcontrolador un dispositivo muy versátil, eficiente y práctico para ser dar uso en diferentes aplicaciones.
Algunas de estas características se muestran a continuación:
  • Soporta modo de comunicación serial, posee dos pines para ello.
  • Amplia memoria para datos y programa.
  • Memoria reprogramable: La memoria en este PIC es la que se denomina FLASH; este tipo de memoria se puede borrar electrónicamente (esto corresponde a la "F" en el modelo).
  • Set de instrucciones reducido (tipo RISC), pero con las instrucciones necesarias para facilitar su manejo.
4.2. INTERRUPCIONES:


Las interrupciones PIC son desviaciones de flujo de control del programa originadas asincrónicamente por diversos sucesos que no dependen del programador, es decir, ocurren en cualquier momento.

Las interrupciones PIC ocurren por sucesos externos como la generación de una interrupción por flanco PIC, una interrupción externa PIC cambiando el nivel en un PIN del microcontrolador o eventos internos tales como el desbordamiento de un contador, terminación del conversor análogo a digital, entre otras.


El comportamiento del microcontrolador ante la interrupción es similar al procedimiento que se sigue al llamar una función desde el programa principal. En ambos casos se detiene la ejecución del programa en curso, se guarda la dirección a donde debe retornar cuando termine de ejecutar la interrupción, atiende o ejecuta el programa correspondiente a la interrupción y luego continua ejecutando el programa principal, desde donde lo dejo cuando fue interrumpido.

Tipos de Interrupciones PIC:

Aqui nombramos 10 diferentes causas que producen una interrupción PIC, por lo tanto el primer paso de la rutina de interrupción será identificar la causa de la interrupción.
  • Interrupción externa PIC RB0/INT
  • Interrupción por cambio lógico en el puerto B (pines RB7 a RB4)
  • Interrupción por desborde del timer 0 (TMR0)
  • Interrupción por desborde del timer 1 (TMR1)
  • Interrupción por comparación exitosa exitosa en TMR2
  • Interrupción del comparador
  • Interrupción del transmisor del USART
  • Interrupción del receptor del USART
  • Interrupción del módulo CCP
  • Interrupción del EEPROM 
4.3. TEMPORIZADORES:


El temporizador Timer0 tiene una amplia gama de aplicaciones en la práctica. Sólo unos pocos programas no lo utilizan de alguna forma. Es muy conveniente y fácil de utilizar en programas o subrutinas para generar pulsos de duración arbitraria, en medir tiempo o en contar los pulsos externos (eventos) casi sin limitaciones. El módulo del temporizador Timer0 es un temporizador/contador de 8 bits con las siguientes características:
  • Temporizador/contador de 8 bits
  • Pre-escalador de 8 bits (lo comparte con el temporizador perro guardián);
  • Fuente de reloj interna o externa programable;
  • Generación de interrupción por desbordamiento; y
  • Selección del flanco de reloj externo programable.





5. EVIDENCIA DE TAREAS EN LABORATORIO:

En este video se explicará cada actividad desarrollada en el laboratorio.





6. OBSERVACIONES:
  • Como se colocó décimas a la hora de simular se nota un poco de lag esto es propio del Simular, pero se logro observar su cambio.
  • Para calcular el tiempo se tiene que tener en cuente el cristal que se esta utilizando.
  • Al generara una interrupción no es recomendable poner en dalay en la función a la que se llame ya que producirá Warnings.
  • Como el cronómetro solo es hasta 59 minutos si se supera este valor minutos rse reiniciara tomando el valor de 0 de nuevo.
7. CONCLUSIONES:
  • Logramos comprender el funcionamiento de los Timers, como preescalarlos y hacer interrupciones cada vez que se desborde.
  • En este laboratorio, aprendimos como realizar cálculos y utilizar instrucciones para poder generar las interrupciones dependiendo de las condiciones que se pongan para el programa.
  • Se logro hacer un cronómetro descendente utilizando TIMER0 y las interrupciones, a si mismo aplicando conocimiento de la sesión anterior para poder mostrar el cronómetro en el LCD.
  • Conocimos como poder aplicar las interrupciones para diferentes aplicaciones, a su vez que vimos la diferencia en TIMER0, TIMER1 y TIMER2.







No hay comentarios:

Publicar un comentario