Citation preview

Laboratorio de Microprocesadores I

Docente: Ing. Roger Guachalla Narváez [email protected]

PRACTICA 12: Timers PIC18F4550 – Modo Temporizador 1. Objetivos:   

Entender el funcionamiento de los Timers en el microcontrolador PIC18F4550 Conocer el funcionamiento de la interrupción por el Timer 0 del microcontrolador PIC Usar el Timer0 en los modos Contador y Temporizador

2. Fundamento Teórico: Cuando se diseñan aplicaciones de control electrónico, es común encontrarse con la necesidad de incorporar tiempos de espera para los dispositivos “lentos” que se controlan ya que el microcontrolador es demasiado rápido. Por otra parte, los timers son ideales para proveer bases de tiempo de alta precisión para la implementación de relojes de tiempo real. El PIC18F4550 posee cuatro timers: TIMER0 al TIMER3, al igual que los demás módulos especiales, cada uno de los timers es controlado por un registro de configuración. Temporizador TIMER0 TIMER1 TIMER2 TIMER3

Registro de control T0CON T1CON T2CON T3CON

Características del Módulo Timer0      

Modo de operación como Contador o Temporizador Modo de operación de 8 bit (0 a 255) y 16 bits (0 a 65535) Registros de control, de lectura y escritura Pre-escalador dedicado de 8 bits: el timer incrementa el valor del conteo cada Fosc / 4 pulsos de reloj Fuente de reloj seleccionable: interna / externa Interrupción por desbordamiento: cada vez que el valor del conteo llega a su límite se genera un desbordamiento (overflow) que genera una interrupción interna que activa el bit TMR0IF.

El modo Temporizador En el modo temporizador la señal de reloj que controla el incremento del registro TMR0 es la frecuencia Fcy = Fosc/4, la cual puede ser dividida opcionalmente por el preescalador si así se desea. Como se puede ver en la figura anterior, este modo es seleccionado al limpiar el bit T0CS. En este modo, el contenido del registro TMR0 se incrementará a la frecuencia Fcy dividida de acuerdo al preescalador, sin embargo, si se realiza una escritura al registro TMR0, su incremento es inhibido por los siguientes dos ciclos de instrucción (Tcy).

El modo Contador En el modo contador, la señal que controla los incrementos del registro TMR0 es una señal externa que proviene del pin T0CKI. En la figura anterior se puede ver que este modo se selecciona poniendo el bit T0CS en alto. Se puede seleccionar la transición que provoca los incrementos mediante el bit T0SE “Timer0 Source Edge Select“, limpiando este bit se selecciona la transición de subida, mientras que al ponerlo en alto se selecciona la de bajada.

La Bandera T0IF El registro TMR0 se incrementa continuamente en cualquiera de sus dos modos. Al llegar al valor límite de conteo del timer (255 en 8-bit y 65535 en 16-bit), en la siguiente cuenta se reinicia en 00h y así sucesivamente. Al momento del reinicio se activa la bandera T0IF poniéndose en 1. Esta activación puede usarse de dos maneras:  para solicitar una interrupción  para ser consultada por muestreo En ambos casos debe tenerse en cuenta que para poder detectar una activación (un 1) en esta bandera, previamente habrá que limpiarla por software. Esto debe realizarse en la inicialización del Timer0 y después de que un reciclo la ha activado. Lo último puede hacerse en la rutina de atención a la interrupción, o bien, en la rutina que la consulta por sondeo (según sea el caso).

El pre-escalador El preescalador es un divisor de frecuencia programable. La selección del valor de división de frecuencia del pre-escalador se puede realizar mediante los bits PS2, PS1, PS0 del registro de control.

T0CON: Registro de Control del TIMER0

3. Ejemplo: Generador de señal 1KHz A.0 Cálculos Enunciado: Usando la interrupción del Timer0 en modo temporizador, realizar un circuito que genere una señal cuadrada de 1 KHz de frecuencia a través del bit RC.0 del microcontrolador PIC18F4550. Incógnita: 𝑉𝑇𝑀𝑅0 = ?

Valor de Carga del Timer 0 para generar 1 KHz: Datos: Frecuencia de señal:

𝑓𝑆𝐼𝐺 = 1 𝐾𝐻𝑧

Periodo de Señal:

𝑇𝑆𝐼𝐺 =

Frecuencia de Cristal:

𝑓𝑋𝑇𝐴𝐿 = 4 𝑀𝐻𝑧

Frecuencia de Ciclo Máquina: 𝑓𝐶𝑀 = Periodo de Ciclo Máquina:

𝑇𝐶𝑀 =

1 𝑓𝑆𝐼𝐺

=

𝑓𝑋𝑇𝐴𝐿 4 1 𝑓𝐶𝑀

1 1 𝐾𝐻𝑧

=

= 1 𝑚𝑠𝑒𝑔 = 1000 𝜇𝑠𝑒𝑔

4 𝑀𝐻𝑧 4

= 𝐶𝑀 =

= 1 𝑀𝐻𝑧 1 1 𝑀𝐻𝑧

= 1 µ𝑠𝑒𝑔

Solución: 

El bit de salida permanece en estado lógico Bajo durante 500 µseg y en estado Alto durante otros 500 µseg



Se requiere contar 500 ciclos máquina (CM), es decir 500 µseg.



El Timer 0 solo puede contar hasta 256 CM en modo Temporizador (T0CS=0)



Se precarga el Timer 0 con un valor inicial de 6 para rebalsar el timer con 250 CM (TMR0=6)



Se asigna el Pre escalador al Timer 0 (PSA=0)



La relación del Prescaler es 2:1 para dividir los CM entre 2 (PS2=0, PS1=0, PS0=0)



Cuando pasen 500 CM, a la salida del Prescaler se tienen 250 pulsos de reloj, el Timer 0 rebalsa ya que empezó en un valor de 6 y se genera la Interrupción



En la rutina de interrupción se complementa el bit de salida para cambiar el estado de 1 a 0 o viceversa.

𝑽𝑻𝑴𝑹𝟎 = 𝟔 (con Prescaler = 2:1)

A.1 Diagrama Esquemático

A.2 Código Fuente MikroC

7. Herramienta Timer Calculator de MikroElektronica Timer Calculator de mikroElektronika es una aplicación Windows independiente generadora de código. Su propósito es generar código de alto nivel en MikroBasic, MikroC y MikroPascal con el objetivo de inicializar apropiadamente los módulos Timers internos del microcontrolador usando interrupciones.

8. Procedimiento Experimental en Laboratorio I.

1era Firma: Implementar el Ejemplo: Generador de señal 1KHz. Para ‘ver’ la señal incluir un parlante piezoeléctrico en la salida.

II.

2da Firma: Generador de Funciones Cuadradas: Conectar al PIC: display LCD, 3 switch y un Parlante (Piezo Speaker). a. Con los 3 switch elegir una frecuencia a generar: 000 001 010 011 100 101 110 111 100Hz 1kHz 2kHz 4kHz 8kHz 10kHz 16kHz 20kHz b. El valor de frecuencia elegida se muestra en el display LCD. c. Un pin de Salida, al cual está conectado el parlante, genera una señal audible con esa frecuencia. d. El paso c. se repite hasta que el usuario vuelve a elegir otro valor de frecuencia con los switch. e. Con el nuevo valor de frecuencia se regresa al paso b.

9. Informe impreso I. II. III.

Firmas en la Carátula (0, 1 o 2) que avalen los procedimientos realizados en Laboratorio Imprimir el Diagrama Esquemático y el Código Fuente MikroC usado para la obtención de la 2da Firma Trabajo de Investigación “Timer 1, Timer2 y Timer3 en el PIC18F4550”  Diagrama en Bloques Timer1, Timer2 y Timer3  Descripción del funcionamiento Timer1, Timer2 y Timer3  Registros y banderas asociadas a cada Timer  Aplicaciones y usos Cada trabajo de investigación debe incluir:  Resumen escrito a mano (de un mínimo de 4 páginas)  Fuentes de Información (direcciones web, bibliografía)  Copias impresas de la información adquirida a través de las fuentes

IV.

Conclusiones