Positron Compiler Documentation

DTMFout

Positron8 · Revision 4.0.6.5 · PDF page 134

DTMFout Pin, { OnTime }, { OffTime, } [ Tone {, Tone…} ]

Produce a DTMF Touch Tone sequence on Pin.

Pin is a Port.Bit constant that specifies the I/O pin to use. This pin will be set to output during generation of tones and set to input after the command is finished. OnTime is an optional variable, constant, or expression (0 - 65535) specifying the duration, in ms, of the tone. If the OnTime parameter is not used, then the default time is 200ms OffTime is an optional variable, constant, or expression (0 - 65535) specifying the length of silent delay, in ms, after a tone (or between tones, if multiple tones are specified). If the OffTime parameter is not used, then the default time is 50ms Tone may be a variable, constant, or expression (0 - 15) specifying the DTMF tone to generate. Tones 0 through 11 correspond to the standard layout of the telephone keypad, while 12 through 15 are the fourth-column tones used by phone test equipment and in some radio applications.

DTMFout PORTA.0, [ 7, 5, 7, 9, 4, 0 ]   ' Call a number.

If the PICmicro™ was connected to the phone line correctly, the above command would dial 666-709. If you wanted to slow down the dialling in order to break through a noisy phone line or radio link, you could use the optional OnTime and OffTime values: -

'Set the OnTime to 500ms and OffTime to 100ms
  DTMFout PORTA.0, 500, 100, [5, 4, 5, 9, 2, 0] ' Call Slowly.
Original diagram or table from Positron8, PDF page 134
Original figure / layout · PDF page 134
Text in this figure or table
1k1k
From PICTo Audio
C1C2
I/O pinAmplifier
0.1uF0.1uF

C1

10uF Speaker

From PIC I/O pin 10uF

Notes DTMF tones are used to dial a telephone, or

remotely control pieces of radio equipment. The R1 R2

PICmicro™ can generate these tones digitally using the DTMFout command. However, to achieve the best quality tones, a higher crystal frequency is required. A 4MHz type will work but the quality of the sound produced will suffer. The circuits illustrate how to connect a speaker or audio amplifier to hear the tones produced.

The microcontroller is a digital device, however, DTMF tones are analogue waveforms, consisting of a mixture of

two sine waves at different audio frequencies. So how can C2

a digital device generate an analogue output? The microcontroller creates and mixes two sine waves mathematically, then uses the resulting stream of numbers to control the duty cycle of an extremely fast pulse-width modulation (PWM) routine. Therefore, what is actually being produced from the I/O pin is a rapid stream of pulses. The purpose of the filtering arrangements illustrated above is to smooth out the high-frequency PWM, leaving behind only the lower frequency audio. You should keep this in mind if you wish to interface the microcontroller’s DTMF output to radios and other equipment that could be adversely affected by the presence of high-frequency noise on the input. Make sure to filter the DTMF output scrupulously. The circuits above are only a foundation; you may want to use an active low-pass filter with a cut-off frequency of approximately 2KHz.

View original PDF page 134Open page in PDFOriginal PDF page 134