Autor Tema: Interfaz con Tip-Ring telefonico usando HT9200A  (Leído 9117 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: Interfaz con Tip-Ring telefonico usando HT9200A
« Respuesta #15 en: 31 de Enero de 2008, 20:10:58 »
defrente a la linea telefonica, pones un puente diodo conectando la linea entre sus  terminales analogos del puente diodo, preferible si lo haces con 4 1n4007, luego el ( - ) del puente lo mandas a tierra DC, y el positivo al colector de un 2n3904, cuyo emisor lo conectas a una resistencia de 180 ohmios conectada a tierra. y la base del transistor lo conectas a una ressitencia de 5k1 y esta a la salida DTMF del ht9200.
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado bikertron

  • PIC10
  • *
  • Mensajes: 27
Re: Interfaz con Tip-Ring telefonico usando HT9200A
« Respuesta #16 en: 01 de Febrero de 2008, 17:08:40 »
EQUIPO FUNCIONANDO PERFECTAMENTE..................PROYECTO FINALIZADO :-/ :-/ :-/ :-/

.............AHORA VAMOS POR EL DESAFÍO DE INTEGRAR UN GATEWAY VOIP
Apaga la tele!!!!!!!  y movilizate en bicicleta...

Desconectado marcopolo_Arg

  • PIC10
  • *
  • Mensajes: 1
Re: Interfaz con Tip-Ring telefonico usando HT9200A
« Respuesta #17 en: 16 de Mayo de 2017, 19:02:40 »
hola aca te mando el programa para el ht9200 en C del compilador CSS

#include <16f628a.h>
#fuses HS,NOWDT,PUT,NOPROTECT,BROWNOUT,MCLR,NOLVP,NOCPD
#use delay(clock=20000000)
#use fast_io(b)

#byte porta = 0x05
#byte portb = 0x06

#bit  dtmf_ce     = portb.0
#bit  dtmf_datos  = portb.1
#bit  dtmf_reloj  = portb.2

int contador,numero;

void envia_dtmf(numero);
//---------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------
//
//
//    Funcion Principal
//
//
//---------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------

void main()
{
   set_tris_b(0);
   output_b(0);
   dtmf_ce = 0;

   delay_ms(100);

   envia_dtmf(2);//digito 2
   envia_dtmf(31);//off dtmf

   envia_dtmf(7);//digito 7
   envia_dtmf(31);//off dtmf

   envia_dtmf(6);//digito 6
   envia_dtmf(31);//off dtmf

   envia_dtmf(9);//digito 9
   envia_dtmf(31);//off dtmf

   envia_dtmf(10);//digito 0
   envia_dtmf(31);//off dtmf

   envia_dtmf(3);//digito 3
   envia_dtmf(31);//off dtmf

   envia_dtmf(3);//digito 3
   envia_dtmf(31);//off dtmf

   while(1);

}
//---------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------
//
//    Funcion que envia codigo dtmf por el ht9200
//
//---------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------
void envia_dtmf(numero)
{
   int a;
   dtmf_reloj=1;

   for(a=0;a<5;a++)
   {
      dtmf_datos=0;
      if( bit_test(numero,0) )
         dtmf_datos=1;

      dtmf_reloj=0;
      delay_us(5);
      dtmf_reloj=1;
      numero >>= 1;
   }

   delay_ms(60);
}

saludos!  :-/


pd: habia cometido un error que si quieres el codigo de la tecla 0 en dtmf tienes que ver la tabla que esta en el datahseet del ht9200 donde verás que dice que tienes que mandar el numero 10.

Es necesario utilizar el CE? o lo puedo dejar a tierra y dejar el chip siempre habilitado?