This project contains the details of using a Microchip PIC12F683 8 bit microprocessor to detect DTMF tones. The completed program allows the processor to be programmed with a string of DTMF tones to detect. If the programmed string is detected in the audio applied the audio input, the output will turn on (go high), and can be used to control other circuitry of the users design.
UPDATE! 11/2/2010:
Due to requests for the source code, I have attached it. I have created a new step (Step 9) containing the *.asm file, along with some important notes.
UPDATE! 10/12/2010:
The HEX file for progdramming that I originally attached to this instructable had a bug that prevented successful programing of the tone sequence, unless the microprocessor was in serial output mode while in programming mode. The HEX file attached now works properly. Sorry for any inconveniene caused for those who may have tried the original code.
I have included the *.hex file needed to program the microprocessor, 12F683_DTMF_DECODE_01A.HEX. You will need a programmer for PIC microprocessors. I have seen instructions on this site for building your own, but I cannot speak for any of them. The programmer I use came from a company called Micro Engineer Labs, Inc at www.melabs.com.
The only other parts needed are the electronic components, as shown in the schematic in step 3, Circuit Details. Digikey (www.digikey.com) is an excellent source for electronic components .
A telephone or other means of generating DTMF tones is also needed for programming the microprocessor with the the sequence of tones you want to detect. This is described in more detail in step 4.
Remove these ads by
Signing UpStep 1Quick DTMF Overview
| « Previous Step | Download PDFView All Steps | Next Step » |











































The hex file attached should work as described in the instructable regardless.
Good luck on your repeater project! Let me know if it works out for you.
Included learning function of the CTCSS tone.
Frequencies: 67Hz, 71.9Hz, 77Hz, 82.5Hz, 88.5Hz, 94.8Hz, 100Hz, 103.5Hz, 110.9Hz, 118.8Hz and 74.4Hz, 79.7Hz, 85.4Hz, 91.5Hz, 97.4Hz, 123.0Hz
There are only 4 dual - frequency. These will only be changed:
697 Hz: replace = 28 Hz
Delete: 770 Hz
Delete: 852 Hz
941 Hz: replace = 38 Hz
and
1209 Hz: replace = 48 Hz
Delete: 1336 Hz
Delete: 1477 Hz
1633 Hz: replace = 58 Hz
http://www.eetindia.co.in/STATIC/PDF/200604/EEIOL_2006APR04_EMS_RFD_SIG_TA.pdf?SOURCES=DOWNLOAD
The article doesn't use a PIC processor, but it does give a good amount of detail about using this approach for CTCSS.
I can answer a few questions if you have any. I'd be interested in any cool applications that anyone come up with.
Enjoy.
You can check back with this instructable in the future, to see whether I have updated the intro section with a notice stating that the source code has been added.