I don't want any one to think that iam trying to get something from this forum without doing any kind of hard work.... my only question is:- Just like we can use assembly coding for microcontroller to detect Pulse Dialing from a telephone set. Can we use controller to detect Tone Dialing that is DTMF dialing.. considering the factors of low band & high band and their electrical sum of frequency. do we have to do some PWM or any other technqiue... i know that we can write codes to generate Tone Dialing from the controller but is it possible to use controller to detect Tone Dialing... without using MT8870 or any DTMF decorder.
Hey, that's a second question! :-)) Besides, I don't know. - mike
I am not a DSP guru. There are eight tones (frequencies) involved in DTMF encoding. You need a way to digitize the audio, and a digital filter running on the processor to detect those eight frequencies. The pair of frequencies that is present will give you the digit dialed. A quick Google on "DTMF software decoding" turned up a link to some source intended for a five-year-old PC machine with floating point. It could be done in integer math, according to the author. The filter doesn't look that hairy, but I haven't done more than glance at it. http://www.geocrawler.com/mail/msg.php3?msg_id=795028&list=161 Perhaps even better would be this page, which seems to talk about doing the A/D with a single bit from a comparator, and has PIC source code. (If a PIC can manage, I imagine an 8051 can as well.) http://www.interstice.com/~sdattalo/technical/theory/dtmf.html
Ok,,, thanks a lot for DTMF stuff its really helpful... Now please can any one guide me how to make the controller count pulses coming from a SLIC connected to a pulse dialing telephone set and compare the dialed number already stored in the memory and if the number matches then do some desired function.... i know timer can be used as pulse counter if any thing is connected at p3.2 in case of 89c52 but what if i have more than 1 telephone set... example code needed