Anda di halaman 1dari 33
REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA DEFENSA UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE

REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA DEFENSA UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA NACIONAL U.N.E.F.A. NÚCLEO ARAGUA SEDE MARACAY COORDINACIÓN DE TELECOMUNICACIONES LABORATORIO DE MICROPROCESADORES

Material teórico de la Práctica N° 4: MANEJO DE TIMERS E INTERRUPCIONES. DTMFOUT Y DTMFIN

Objetivo: Diseñar una aplicación con el uso del PIC 18F4550 para controlar procesos con el uso de timers e interrupciones. Envío y recepción de llamadas con el modulador de pulsos telefónicos DTMF.

Temporizadores “Timers” del PIC 16F876.

Introducción. Los microcontroladores PIC16F876 disponen de un potente conjunto de temporizadores para manejar eficientemente todas las operaciones que involucran al tiempo y al conteo de eventos. Dichos temporizadores son tres y se denominan técnicamente: TMR0, TMR1 y TMR2.

TMR0, tiene las siguientes características:

• 8 bit’s puede ser utilizado como “timer” y como “counter”. • Se puede leer y escribir. • Tiene un pre-escalador de 8 bits por software. • La señal de reloj puede ser interna o externa. • Interrupción por desbordamiento programable. • Selección del flanco del reloj externo. • Pre-escalador compartido con el periférico WDT.

COMO “TIMER”

• OPTION_REG<5> = 0 • Se incrementa en cada ciclo de instrucción. • La sincronización en la escritura toma dos ciclos de reloj.

COMO “COUNTER”

• OPTION_REG<5> = 1

• Se incrementa en cada flanco de subida o bajada sobre el pin RA4/T0CKI

OPTION_REG<4>.

REGISTROS PARA EL TMR 0, “ OPTION_REG ”

REGISTROS PARA EL TMR0, “ OPTION_REG ”

REGISTROS PARA EL TMR 0, “ OPTION_REG ”
INTERRUPCIÓN POR TMR0 Una interrupción por TMR0 ocurrirá cuando el registro de 8 bits asociado a

INTERRUPCIÓN POR TMR0

Una interrupción por TMR0 ocurrirá cuando el registro de 8 bits asociado a éste timer llegue al desbordamiento “overflow” FF -> 00, cuando ocurre el overflow el bit del registro INTCON<2> denominado T0IF pasará a valer 1. Si el bit INTCON<5> TOIE es uno (permiso de interrupción), entonces la interrupción ocurrirá y se ejecutará la rutina de servicio de interrupción por TMR0. La interrupción por TMR0 no puede despertar al microcontrolador si este se encuentra en estado dormido “sleep”, ya que, el TMR0 es deshabilitado cuando se entra en modo de reposo o dormido.

OTROS REGISTROS ASOC. AL TMR0:

INTERRUPCIÓN POR TMR0 Una interrupción por TMR0 ocurrirá cuando el registro de 8 bits asociado a

DTMFOUT

La instrucción DTMFout genera tonos DTMF en secuencia y a través de un puerto cualquiera del microcontrolador.

Sintaxis:

DTMFout pin, {On-ms, Off-ms}, [tono, tono,

...

tono]

Pin: especifica el pin del puerto en el cual se emitirán los tonos DTMF.

On-ms: es una variable, constante o expresión (0-65535) que especifica la duración de cada tono en milisegundos. En caso de no utilizar este parámetro, el tiempo por defecto de cada tono es de 200 ms.

Off-ms: es una variable, constante o expresión (0-65535) que especifica el tiempo en milisegundos del silencio que hay entre cada tono. En caso de no utilizar este parámetro, el tiempo por defecto será de 50 ms.

Tono: puede ser una variable o constante (entre 0 15), que especifica el tono que debe ser generado.

DTMFOUT La instrucción DTMFout genera tonos DTMF en secuencia y a través de un puerto cualquiera

Ejemplo 1:

DTMFout PortC.0, [0,1,2,3,4,5,6,7,8,9]

Conectando el pin de salida (RC0) adecuadamente a una línea telefónica, estaremos marcando sin problemas un número telefónico. En algunos casos es recomendable utilizar los tiempos On-ms y Off-ms para realizar un marcado más exacto.

Ejemplo 2:

DTMFout PortC.0,400,150, [6,4,3,8,7,1,0]

Los tonos tendrán una duración de 400 milisegundos cada uno y un tiempo en silencio entre ellos de 150 milisegundos.

En cuanto al oscilador se recomienda usar del tipo HS (desde 10 Mhz o superior) para obtener mejores resultados en la generación de tonos DTMF, así como también se recomienda utilizar un circuito de acople entre el microcontrolador y el dispositivo externo al cual enviaremos los tonos.

Ejemplo 1: DTMFout PortC.0, [0,1,2,3,4,5,6,7,8,9] Conectando el pin de salida (RC0) adecuadamente a una línea telefónica,

Recepción de tonos telefónicos con el PIC (Decodificación DTMF)

El circuito que a continuación se muestra, el cual cuenta con un circuito integrado (MT88L70) y componentes externos discretos, permite entregar el código binario de la tecla pulsada en un teléfono por tonos multifrecuentes. Este circuito, además de decodificar las clásicas teclas del cero al nueve, asterisco y numeral, puede identificar las teclas A, B, C y D que usualmente no están presentes en la mayoría de los teléfonos comerciales, pero que la especificación DTMF las incluye

Recepción de tonos telefónicos con el PIC (Decodificación DTMF) El circuito que a continuación se muestra,

El circuito está preparado para ser alimentado con 5v, presentes en cualquier circuito TTL o microcontrolado. La resistencia de 100 ohms limita la corriente y el diodo zener hace las veces de limitador de tensión, bajándola a 3.6v que es lo que el chip requiere para funcionar correctamente. Los capacitores aledaños a esos componentes cumplen con la función de filtrar la tensión de alimentación. La señal proveniente de la línea telefónica es aislada por medio de dos resistencias de 100K y un capacitor de 100nf. Este último impide el paso de corriente, pero deja circular señal de audio. Para su funcionamiento el circuito integrado requiere una base de tiempos, generada en este caso por el cristal de cuarzo de 3.579545MHz. Nótese que este cristal es muy común en el mercado dado que es el empleado para los sistemas de color de los equipos de TV. Una vez que un tono es recibido, decodificado y validado como correcto su valor binario es colocado en los terminales Q1, Q2 Q3 y Q4. A su vez, el terminal SID sube indicando la presencia del dato en la salida. Este terminal permanece alto durante el tiempo que el tono DTMF siga presente en el sistema, o sea que refleja el tiempo que el teléfono remoto permanece pulsado.

Datos presentes en la salida

   

Tecla

Q1

Q2

Q3

Q4

 

1

 
  • 0 0

  • 0 1

 
 

2

 
  • 0 0

 
  • 1 0

 

3

 
  • 0 0

 
  • 1 1

 

4

 
  • 0 1

 
  • 0 0

 

5

 
  • 0 1

  • 0 1

 
 

6

 
  • 0 1

 
  • 1 0

 

7

 
  • 0 1

 
  • 1 1

 

8

 
  • 1 0

 
  • 0 0

 

9

 
  • 1 0

  • 0 1

 
 

0

 
  • 1 0

 
  • 1 0

 

*

 
  • 1 0

 
  • 1 1

 

#

 
  • 1 1

 
  • 0 0

 

A

 
  • 1 1

  • 0 1

 
 

B

 
  • 1 1

 
  • 1 0

 

C

 
  • 1 1

 
  • 1 1

 

D

 
  • 0 0

 
  • 0 0