Autor Tema: DTMF con proton  (Leído 6008 veces)

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

Desconectado Lager.

  • Moderadores
  • PIC18
  • *****
  • Mensajes: 477
DTMF con proton
« en: 14 de Diciembre de 2004, 13:21:00 »
Para la recepcion de datos que nos avienta el dtmf(hc9270d,ct8870,cm8870,etc.. todos se configuran igual), solo bastan 4 pines del micro a usar y el de interrupcion.
Este ejemplo es BASE para llevar a cabo los proyectos de candado electronico,idetificador de envio de llamada,mando adistancia via telefono,etc..)
Este mismo codigo no guarda informacion, solo la representa en el display, para que cada persona pueda elaborar el proyecto que quiera,.
Como podran apreciar recive TODOS los tonos de llamada, esto lo dejo abierto para aquellos que aun no entienden como recive o envia informacion el telefono.. asi notaran que cuando se recive una llamada se reciven otros datos antes de recivir el NUMERO del que llamaron y despues otros codigos.. estos nos indicaran(con un sencillo codigo) el inicio y el fin de la recepcion del numero que nos llama, bastara solo con una pequeña codicionante de aceptar solo la informacion que nos interese de toda la informacion.
Normalmente(dependiendo de la central telefonica de donde vos este) inicia con un 0 o con un 11 y termina con un 15, tambien notaran que para simbolos como * seria el numero 11 y asi sucesivamente... es importante que hagan sus propias pruebas para que lleguen a comprender completamente lo que trato de decirles.. asi como esta el codigo es usable para hacer sus pruebas y posteriormente modificarlo para el uso especifico. Por ahi vi un codigo para identificacion de llamadas en proton pero esta muy pobre y consume EXESO de recursos( esto es mejorable optimizando y revizando sintaxis del codigo) asi mismo no emplea una rutina de interrupcion  para empezar a lanzar la informacion al lcd, lo cual veo VITAL para mantener al micro ocupado cuando no haya llamada entrante o saliente(como termometro,reloj,imagenes en movimiento,etc..) por lo que veo mas OPTIMA la rutina con interrupcion que a continuacion muestro.
En la red hay BASTANTE informacion teorica y practica de la cual se pueden ayudar y el circuito a montar es el MISMO(con diferencias de pines y conexionado de lcd) al que muestra el pana TODOPIC en el foro  TECNICO (DTMF con salida a LCD)aqui:
http://miarroba.com/foros/ver.php?foroid=15353&temaid=26691
CONEXIONADO:
EL CI DTMF va conectado con los mismos componentes que en el circuito del foro, lo unico que cambia es el conectado entre el pic y el DTMF y el codigo .
-Pic16f628A
-Sin cristal externo
-RB0(pin 6) a  StD del DTMF(pin15)
-RB4-7(pin 10,11,12,13 del pic) al DFMT Q1-Q4(pin 11,121,3,14 del Dtmf) respectivamente
-E del lcd al  RB3(pin 9 del pic)
-RS del lcd al RA4(pin 3 del pic)
-Data del lcd(D4-D7) al RA0- 3(pin 17,18,1,2 del pic)

Codigo Receptor de TODOS los tonos:
----------------------------------------------------------------------------------------------------------
DEVICE 16F628A
CONFIG INTRC_OSC_NOCLKOUT,WDT_OFF,PWRTE_ON,CP_OFF,BODEN_OFF,LVP_OFF,MCLRE_OFF
XTAL 4
ALL_DIGITAL ON
ON_INTERRUPT DTMF
DECLARE LCD_DTPIN PORTA.0
DECLARE LCD_ENPIN PORTB.3
DECLARE LCD_RSPIN PORTA.4
DIM DATO AS BYTE
DIM XX AS BIT
DIM XXX AS BIT
TRISB=%11110001                  "PORTB.1-4 PARA DATOS BCD DEL DTMF
PRINT 254,64,1,5,21,21,21,5,1,0     "cgram posicion 0
PRINT 254,72,5,10,20,8,16,0,0,0     "cgram posicion 1
GOTO INICIO

DTMF:
IF INTCON.1=1 THEN               "INTERRUPCION POR PORTB.0????
DATO=PORTB.4 +(PORTB.5*2) + (PORTB.6*4) + (PORTB.7*8) "DATOS 1-4 DEL DTMF
SET XX
ESPERAR:IF PORTB.0=1 THEN ESPERAR  "ESPERAMOS ..
INTCON.1=0
ENDIF
CONTEXT RESTORE  

INICIO:
CLS
CLEAR
SET OPTION_REG.6  
CLEAR INTCON.1
SET   INTCON.4
SET   INTCON.7
PRINT " Identificador  ",254,192,"    de Tonos    "
BUCLE:IF XX=0 THEN GOTO BUCLE
      IF XXX=0 THEN                 "SI SUCEDIO LLAMADA LIMPIAMOS
       CLS
      PRINT 0,1
      SET XXX
      ENDIF
     IF DATO > 0 AND DATO < 11 THEN
         IF DATO=10 THEN PRINT "0"
         IF DATO >0 AND DATO < 10 THEN PRINT DEC DATO
     ELSE
          PRINT DEC DATO
     ENDIF
     CLEAR XX
GOTO BUCLE

----------------------------------------------------------------------------------------------------------

Salu2 panas

Desconectado ekud

  • PIC16
  • ***
  • Mensajes: 120
    • mi pag... bueno no es mia pero ahi estoy
Re: DTMF con proton
« Respuesta #1 en: 04 de Febrero de 2009, 05:30:06 »
Amigo ke buena info, es justo lo que estaba buscando  :mrgreen:

Por cierto el lenguaje que usas si no me equivoco es basic???

podrias decirme si es PBP o mikrobasic o que compilador usas??
No cometas el crimen varon si no vas a cumplir la condena

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: DTMF con proton
« Respuesta #2 en: 04 de Febrero de 2009, 06:29:21 »
Eso parece Proton. Si no recuerdo mal PBP también cuenta con una instrucción DTMF
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2062
Re: DTMF con proton
« Respuesta #3 en: 04 de Febrero de 2009, 11:59:42 »
Que tal amigos!
El programa que coloco lager esta hecho con el compilador Proton

El proton posee una instruccion para el manejo de dtmf pero es de salida, es decir que envia tonos dtmf pero no los recibe  :shock
Lo que coloco lager es para ser utilizado con un receptor de tonos dtmf  :mrgreen:

Saludos

Desconectado ekud

  • PIC16
  • ***
  • Mensajes: 120
    • mi pag... bueno no es mia pero ahi estoy
Re: DTMF con proton
« Respuesta #4 en: 04 de Febrero de 2009, 15:03:40 »
No se que tan equivocado pueda estar.... pero me imagino que estas instrucciones para generar tonos dtmf lo que hacen es mandar pulsos por un pin del micro a determinada frecuencia...

Si en eso se basaran... me pregunto si con mikrobasic pudiera hacer lo mismo con la instruccion play sound... a esta nistruccion como parametro hay k darle la frecuencia que se quiere generar y la duracion en ms del tono... en cuanto al valor de las frecuencias me imagino que se podrian sacar de la tablas de frecuencias altas y bajas para el dtmf... no?


No cometas el crimen varon si no vas a cumplir la condena

Desconectado hard8507

  • PIC10
  • *
  • Mensajes: 44
Re: DTMF con proton
« Respuesta #5 en: 06 de Abril de 2009, 14:50:58 »


amigo me encuentro realizando un programita en proton de un data logger gps pero al compilarlo me pide un codigo de activacion sabes alguno para que me puedas ayudar gracias

Desconectado ASTROCAR

  • PIC24F
  • *****
  • Mensajes: 666
Re: DTMF con proton
« Respuesta #6 en: 06 de Abril de 2009, 17:27:28 »


amigo me encuentro realizando un programita en proton de un data logger gps pero al compilarlo me pide un codigo de activacion sabes alguno para que me puedas ayudar gracias

Hola buenas tardes; oye no veo la relacion de tu problema con este post se mas claro estimado colega y vemos tu problema en si pero recuerda que este tema es sobre recepcion de tonos usando eL IC mc8870.

Saludos y espero que aclaremos el asunto.
Atten.
Alexander Santana.
EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE