3 Simple Ways to
Share What You Make

With Instructables you can share what you make with the world — and tap into an ever-growing community of creative experts.

PhotosPhotos

Share one or more photos of a project, recipe, or whatever you've made, quickly and easily.

Step by StepStep-By-Step

Share your step-by-step photos with text instructions of what you made so others can do it too!

VideoVideo

Share your how-to video. You'll need your embed code from a video site such as YouTube.

DTMF Touch Tone Decoder Using Microchip PIC Microprocessor

DTMF Touch Tone Decoder Using Microchip PIC Microprocessor

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 adsRemove these ads by Signing Up
 

Step 1Quick DTMF Overview

Quick DTMF Overview
There are a total of 8 tones used to represent DTMF or "touch tone" numbers. The tones are in two groups of four, often referred to as the low and high tones. A number is represented by an audio waveform consisting of the sum of one of the low tones and one of the high tones. This can easily be visualized in a matrix format, as shown in the figure. Note that the DTMF system actually allows a total of 16 different tone pairs. The A, B, C, and D tones shown on the right hand column of the keypad in the figure are not included on a normal telephone, but they are often included on two way radios that have a DTMF keypad. They are sometimes used by two way radios for business or ham radio. The software for the project will also detect these additional 4 tone pairs.







« Previous StepDownload PDFView All StepsNext Step »
10 comments
Nov 8, 2011. 3:31 PMfbcullom says:
(removed by author or community request)
Nov 26, 2010. 2:32 PMelektrant says:
Can you program a CTCSS decoder 12F683?
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
Dec 10, 2010. 11:53 AMelektrant says:
Would this idea (subtone decoder) work with the 12F683:

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

Nov 17, 2010. 10:22 AMPyromaniacDaniel says:
Thanks for the code. I had issues downloading it because it saved as a weird .tmp file. But I searched it and found that if you rename the file that it will work then. again thanks for the code.
Nov 1, 2010. 9:34 AMPyromaniacDaniel says:
Would you be willing to post your assembly code? I am working on a senior design project and am trying to learn how to write the code for the dtmf detection part of our project. Any help would be much appreciated. I know I can use a chip like the MT8870 but want to encode it on our microprocessor.

Pro

Get More Out of Instructables

Already have an Account?

close

All Steps Viewing
View all steps of an Instructable on the same page when you're a Pro Member.

Upgrade to Pro today!
28
Followers
14
Author:LargeMouthBass
No Homework? Then you will have to fight the bear!