0% found this document useful (0 votes)
65 views23 pages

Dual-Tone Multi-Frequency (DTMF) : DAS Project Report

The document provides details about a DTMF (Dual-tone multi-frequency) project. It describes DTMF signaling which uses specific frequencies to transmit signals over analog telephone lines. It then provides details about the CM8870/70C integrated circuit which provides full DTMF receiver functionality with features like low power consumption and decoding of 16 DTMF tone pairs. The coding section includes code for an AT89S8252 microcontroller to implement a DTMF lock/unlock system using a keypad and LCD display.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views23 pages

Dual-Tone Multi-Frequency (DTMF) : DAS Project Report

The document provides details about a DTMF (Dual-tone multi-frequency) project. It describes DTMF signaling which uses specific frequencies to transmit signals over analog telephone lines. It then provides details about the CM8870/70C integrated circuit which provides full DTMF receiver functionality with features like low power consumption and decoding of 16 DTMF tone pairs. The coding section includes code for an AT89S8252 microcontroller to implement a DTMF lock/unlock system using a keypad and LCD display.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 23

DAS Project Report

Dual-tone multi-frequency
(DTMF)

Submitted by-:

MOHIT SINGLA-5041

MANHAR SINGH WALIA-5038

PRANSHUL SHEORAN-5051

ADITYA PURI-5006
PROJECT DETAILS
Project Name: DTMF
Description and Working: Dual-tone multi-frequency signaling (DTMF) is used
for telecommunication signaling over analog telephone lines in the voice-frequency band between
telephone handsets and other communications devices and the switching center. The version of DTMF that is used
in push-button telephones for tone dialing is known as Touch-Tone. It was first used by AT&T in commerce as a
registered trademark, and is standardized by ITU-T Recommendation Q.23. It is also known in the UK as MF4.

Other multi-frequency systems are used for internal signaling within the telephone network.

The Touch-Tone system, using the telephone keypad, gradually replaced the use of rotary dial starting in 1963[,and
since then DTMF or Touch-Tone became the industry standard for both cell phones and landline service.

Features
• Full DTMF receiver
• Less than 35mW power consumption
• Industrial temperature range
• Uses quartz crystal or ceramic resonators
• Adjustable acquisition and release times
• 18-pin DIP, 18-pin DIP EIAJ, 18-pin SOIC, 20-pin
PLCC

• CM8870C
— Power down mode
— Inhibit mode
— Buffered OSC3 output (PLCC package only)
• CM8870C is fully compatible with CM8870 for 18-pin devices by grounding pins 5 and 6

The CM8870/70C provides full DTMF receiver capability by integrating both the bandsplit filter and digital
decoder functions into a single 18-pin DIP, SOIC, or 20-pin PLCC package. The CM8870/70C is manufactured
using state-of-the-art CMOS process technology for low power consumption (35mW, max.) and precise data
handling. The filter section uses a switched capacitor technique for both high and low group filters and dial tone
rejection. The CM8870/70C decoder uses digital counting techniques for the detection and decoding of all 16 DTMF
tone pairs into a 4-bit code. This DTMF receiver minimizes external component count by providing an on-chip
differential input amplifier, clock generator, and a latched three-state interface bus. The on-chip clock generator
requires only a low cost TV crystal or ceramic resonator as an external component.
CODING:
#include<at89s8252.h>

#define r1 P0_0

#define r2 P0_1

#define r3 P0_2

#define r4 P0_3

#define c1 P0_4

#define c2 P0_5

#define c3 P0_6

#define c4 P0_7

#define rs P3_3

#define en P3_4

unsigned char sd[]={'0','1','2','3','4','5','6','7','8','9'};

void delay(unsigned int b);

void lcd_init();

void init_serial();

void transmit(unsigned char c);

void lcd_display(unsigned char b);

void lcd_cmd(unsigned char a);

void abc(unsigned int x);

void master(void);

unsigned long int m=5041;

unsigned int w=0;

void main()

unsigned int p;

unsigned int i=1;


unsigned check;

unsigned long int no=0;

unsigned int arr[10];

unsigned int k=1;

init_serial();

lcd_init();

P0_0=0;

lcd_cmd(0x85);

lcd_display('W');

lcd_display('E');

lcd_display('L');

lcd_display('C');

lcd_display('O');

lcd_display('M');

lcd_display('E');

lcd_cmd(0xc0);

lcd_display(' ');

lcd_display('*');

lcd_display('-');

lcd_display('S');

lcd_display('T');

lcd_display('A');

lcd_display('R');

lcd_display('T');

lcd_display(' ');

lcd_display(' ');

lcd_display('#');

lcd_display('-');

lcd_display('E');
lcd_display('N');

lcd_display('D');

delay(0xffff);

delay(0xffff);

delay(0xffff);

delay(0xffff);

delay(0xffff);

delay(0xffff);

lcd_cmd(0x80);

lcd_display(' ');

lcd_display('E');

lcd_display('N');

lcd_display('T');

lcd_display('E');

lcd_display('R');

lcd_display(' ');

lcd_display(' ');

lcd_display('P');

lcd_display('A');

lcd_display('S');

lcd_display('S');

lcd_display('W');

lcd_display('O');

lcd_display('R');

lcd_display('D');

p=1;

P2=31;

while(1)

{
if(P2==11)

lcd_cmd(0x01);

lcd_cmd(0xc0);

lcd_display(' ');

lcd_display('*');

lcd_display('-');

lcd_display('S');

lcd_display('T');

lcd_display('A');

lcd_display('R');

lcd_display('T');

lcd_display(' ');

lcd_display(' ');

lcd_display('#');

lcd_display('-');

lcd_display('E');

lcd_display('N');

lcd_display('D');

lcd_cmd(0x80);

lcd_display('S');

lcd_display(' ');

delay(0xffff);

i=0;

while(P2!=12)

if(P2_4==0)

{
p=0;

if(P2_4!=0 && p==0)

delay(0xbbbb);

if(P2!=12)

if(P2==1)

arr[i]=1;

if(P2==2)

arr[i]=2;

if(P2==3)

arr[i]=3;

if(P2==4)

arr[i]=4;

if(P2==5)

arr[i]=5;

if(P2==6)

arr[i]=6;

if(P2==7)

arr[i]=7;

if(P2==8)

arr[i]=8;

if(P2==9)

arr[i]=9;

if(P2==10)

arr[i]=0;

lcd_display(48+arr[i]);

transmit(48+arr[i]);
i++;

p=1;

delay(0xdddd);

check=0;

no=0;

for(check=0;check<i;check++)

no=(no*10)+arr[check];

if(no==1111)

lcd_init();

lcd_cmd(0x80);

lcd_display('E');

lcd_display('N');

lcd_display('T');

lcd_display('E');

lcd_display('R');

lcd_display(' ');

lcd_display('N');

lcd_display('E');

lcd_display('W');

lcd_display(' ');

lcd_display('P');

lcd_display('A');

lcd_display('S');

lcd_display('S');
lcd_display('W');

lcd_display('D');

lcd_cmd(0xc0);

lcd_display(' ');

lcd_display('*');

lcd_display('-');

lcd_display('S');

lcd_display('T');

lcd_display('A');

lcd_display('R');

lcd_display('T');

lcd_display(' ');

lcd_display(' ');

lcd_display('#');

lcd_display('-');

lcd_display('E');

lcd_display('N');

lcd_display('D');

P2=31;

p=1;

while(1)

if(P2==11)

lcd_cmd(0x01);

lcd_cmd(0xc0);

lcd_display(' ');

lcd_display('*');

lcd_display('-');

lcd_display('S');
lcd_display('T');

lcd_display('A');

lcd_display('R');

lcd_display('T');

lcd_display(' ');

lcd_display(' ');

lcd_display('#');

lcd_display('-');

lcd_display('E');

lcd_display('N');

lcd_display('D');

lcd_cmd(0x80);

lcd_display('S');

lcd_display(' ');

delay(0xffff);

i=0;

while(P2!=12)

if(P2_4==0)

p=0;

if(P2_4!=0 && p==0)

delay(0xbbbb);

if(P2!=12)

if(P2==1)

arr[i]=1;
if(P2==2)

arr[i]=2;

if(P2==3)

arr[i]=3;

if(P2==4)

arr[i]=4;

if(P2==5)

arr[i]=5;

if(P2==6)

arr[i]=6;

if(P2==7)

arr[i]=7;

if(P2==8)

arr[i]=8;

if(P2==9)

arr[i]=9;

if(P2==10)

arr[i]=0;

lcd_display(48+arr[i]);

transmit(48+arr[i]);

i++;

p=1;

delay(0xdddd);

lcd_display(48+i);

check=0;

no=0;

for(check=0;check<i;check++)
{

no=(no*10)+arr[check];

m=no;

main();

if(no!=1111)

if(no==m)

lcd_cmd(0x80);

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_cmd(0x80);

lcd_display(' ');
lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display('A');

lcd_display('C');

lcd_display('C');

lcd_display('E');

lcd_display('P');

lcd_display('T');

lcd_display('E');

lcd_display('D');

P0_0=1;

delay(0xffff);

delay(0xffff);

lcd_cmd(0x80);

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display('L');

lcd_display('I');

lcd_display('G');

lcd_display('H');

lcd_display('T');

lcd_display('S');

lcd_display(' ');

lcd_display('O');

lcd_display('N');

k=0;

delay (0xffff);

delay (0xffff);
}

else

lcd_cmd(0x80);

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_cmd(0x80);

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display('D');

lcd_display('E');

lcd_display('N');

lcd_display('I');

lcd_display('E');

lcd_display('D');
P0_0=0;

k++;

delay (0xffff);

delay (0xffff);

if(k==4)

master();

void delay(unsigned int b)

while(b!=0)

b--;

void lcd_cmd(unsigned char a)

delay(300);

P1=a;

rs=0;

en=1;

en=0;

void lcd_display(unsigned char b)


{

delay(300);

P1=b;

rs=1;

en=1;

en=0;

void lcd_init()

lcd_cmd(0x38);

lcd_cmd(0x01);

lcd_cmd(0x0c);

void abc(unsigned int x)

unsigned int t1;

unsigned int s;

unsigned int d;

unsigned int l;

s=x;

l=0;

while(s!=0)

l++;

s=s/10;

d=1;

while(l!=1)

d=d*10;
l--;

t1=x;

while(d!=0)

t1=t1/d;

lcd_display(sd[t1]);

t1=x%d;

d=d/10;

void master(void)

unsigned int p;

unsigned int i=1;

unsigned check;

unsigned long int no1=0;

unsigned int arr[10];

lcd_init();

P2=31;

delay(1000);

p=1;

while(1)

lcd_cmd(0x82);

lcd_display('M');
lcd_display('A');

lcd_display('S');

lcd_display('T');

lcd_display('E');

lcd_display('R');

lcd_display(' ');

lcd_display('L');

lcd_display('O');

lcd_display('C');

lcd_display('K');

lcd_cmd(0xc0);

lcd_display(' ');

lcd_display('*');

lcd_display('-');

lcd_display('S');

lcd_display('T');

lcd_display('A');

lcd_display('R');

lcd_display('T');

lcd_display(' ');

lcd_display(' ');

lcd_display('#');

lcd_display('-');

lcd_display('E');

lcd_display('N');

lcd_display('D');

if(P2==11)

lcd_cmd(0x01);
lcd_cmd(0xc0);

lcd_display(' ');

lcd_display('*');

lcd_display('-');

lcd_display('S');

lcd_display('T');

lcd_display('A');

lcd_display('R');

lcd_display('T');

lcd_display(' ');

lcd_display(' ');

lcd_display('#');

lcd_display('-');

lcd_display('E');

lcd_display('N');

lcd_display('D');

lcd_cmd(0x80);

lcd_display('S');

lcd_display(' ');

delay(0xffff);

i=0;

while(P2!=12)

if(P2_4==0)

p=0;

if(P2_4!=0 && p==0)


{delay(0xbbbb);

if(P2!=12)

if(P2==1)

arr[i]=1;

if(P2==2)

arr[i]=2;

if(P2==3)

arr[i]=3;

if(P2==4)

arr[i]=4;

if(P2==5)

arr[i]=5;

if(P2==6)

arr[i]=6;

if(P2==7)

arr[i]=7;

if(P2==8)

arr[i]=8;

if(P2==9)

arr[i]=9;

if(P2==10)

arr[i]=0;

lcd_display(48+arr[i]);

transmit(48+arr[i]);

i++;

p=1;

delay(0xdddd);

}
}

check=0;

no1=0;

for(check=0;check<i;check++)

no1=(no1*10)+arr[check];

if(no1==123)

main();

w=1;

else

lcd_cmd(0x80);

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_cmd(0x80);

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');

lcd_display(' ');
lcd_display(' ');

lcd_display('L');

lcd_display('O');

lcd_display('C');

lcd_display('K');

lcd_display('E');

lcd_display('D');

delay(0xffff);

delay(0xffff);

delay(0xffff);

delay(0xffff);

void init_serial()

SCON=0x40;

TR1=1;

TMOD=0x20;

TH1=253;

void transmit(unsigned char c)

SBUF=c;

delay(200);

TI=0;

You might also like