Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

DTMF Remote Telephone Switch

Status
Not open for further replies.

john2020

Full Member level 5
Joined
Nov 13, 2005
Messages
292
Helped
12
Reputation
24
Reaction score
8
Trophy points
1,298
Activity points
4,911
dtmf switch

hi all,

i've an application wherein i have to control remote home appliances using a DTMF remote telephone switch.Once a telephone connection is in place,a transmitted tone can be used in order to trigger a desired action.This technique,well known from its use in remotely accessing answering machines or conversing with service providers,here allows us to use keypad to control three circuits once a call has been set up.The remote control switch is connected in parallel with the telephone apparatus:this doesnot restrict the use of the telephone in anyway.After a selectable number of rings the circuit lifts the receiver and sends an acknowledgement tone to signal to caller that a four-digit code number is to be entered.Ten seconds are allowed for entry of each digit,and each digit acknowledgement by a tone.if time limits is exceeded,an error sound is produced and receiver replaced on hook.Once all four digits are received they are compared with store code numbers.If digits are not in agreement with any of stored numbers,error sound is again produced and call is terminated.The circuit is then immediately ready for a new call.Each of three switching outputs is assigned two sequences of digits,one to switch output stage on and other to switch off.if same four digit number is received a second time,the circuit doesnot change state.


I am using PIC16F84,with DTMF decoder MT8870.can any one help me with this?i need C code for this project.anyone has some links pls do send me soon,i have to compelete this project soon.

regards
john
 

dtmf remote control

hi

its also published in Nov'03 edition of elektor electronics magazine,about DTMF remote telephone switch.but when i try to download it,it says its paid subscription.can anyone help me get the C code for this?here's the link



**broken link removed**


regards
john
 

remote telephone switch

Oh yes... I also saw it in Elektor....you can download the codes for free **broken link removed** but sad to say they are written in assembly.
 

telephone activated switch schematic

hi

i told you,i have the link with me,even i have the assembly code too,but i want C code.is there any translator for this?i am planning to use HT soft PIC C compiler,help me get C code for this project.

regards
john

Added after 2 minutes:

hi

also the link which you had specified has only sample code in assembly,it doesnot have the entire code needed for project.

regards
john
 

remote and control using dtmf

Well.....sorry to say there is no such translator which can convert assembly codes into C.
 

dtmf remote

hi

i think you need the cross check the statement you made here in your previous message about that there are no translators available.check this links.


www.mpsinc.com/asm3702c.html
www.idiom.com/free-compilers/ECATEGORY/Cvariant
en.wikipedia.org/wiki/BASIC_programming_language
http://o.webring.com/hub?ring=picmicro
http://www.piclist.com/techref/microchip/languages.htm



regards
john

Added after 6 minutes:




C2ASM is a cross compiler, it converts "C" code into "ASSEMBLY" code. ... The GCC UPC compiler is implemented as aC Language dialect translator, ...
 

020294-11.zip

Hi,

Thanks....I was not really aware of one. BTW, I would like to hear from other guys how efficient these translators are!!

Regards
 

dtmf send digit to switch

hi all,


here am sending you the code for phone software.i hope it works,any suggestions?

Code:


#define TIMEOUTS 98 // no. of timeouts to occur for waiting (1 timeout = 200x256us), 98 timeouts=5sec

#include<pic.h>
#include<pic1684.h>

__CONFIG(0x3ff1);

void ringcounter(void);
void dowakeon(void);
void dowakeoff(void);
void delay(void);
void wait5sec(void);
void getdipswitch(void);

char WAKEON = 4;
char WAKEOFF = 5;
char WAITDELAY = 2;
char ringcount=0;
unsigned int x=0;

void main(void)
{

GIE=0; //disable interrupts
TRISA=0b00011111; //PORTA=in
TRISB=0b00000000; //B0 to B7 output
OPTION=0b11010111; // tmr0/prescaler 256/tmr0 --> internal
PORTB =0; //turn all relays off


// getdipswitch function sets the intial on/off rings and also the delay for rings to turn device on through A4,A3,A2,A1
// A4 A3 wakeon wakeoff
// 0 0 2 3
// 0 1 3 4
// 1 0 4 5
// 1 1 5 6
//
// A2 A1 waitdelay
// 0 0 5
// 0 1 10
// 1 0 15
// 1 1 20

getdipswitch(); //configure rings and delay


while(1)
{
ringcounter();
if(ringcount==WAKEON)
dowakeon();

else if(ringcount==WAKEOFF)
dowakeoff();

}

}

void ringcounter(void)
{
ringcount=0;
while(1)
{


x=0;
TMR0=0;
while(RA0==0)
{
if(TMR0>=200) // to keep some margin in case TMR0 rolls back to 00, keep it to C8(200dec)!!
{
TMR0=0;
x++;
if(x>=TIMEOUTS) //if timeout 5s return. Total timeout = 200us*TIMEOUTS*256(prescaler)
return;
}
}
while(RA0==1); //while A0=1 wait
ringcount++;
}
}


void dowakeon(void)
{
char i;
for(i=0;i<WAITDELAY;i++)
{
ringcounter();
if(ringcount==0)
continue;
else
switch(ringcount)
{

case 1: RB0=1;
break;
case 2: RB1=1;
break;
case 3: RB2=1;
break;
case 4: RB3=1;
break;

case 5: RB4=1;
break;

case 6: RB5=1;
break;

case 7: RB6=1;
break;

case 8: RB7=1;
break;
default: break;
}
}
ringcount=0;
}


void dowakeoff(void)
{
char i;
for(i=0;i<WAITDELAY;i++)
{
ringcounter();
if(ringcount==0)
continue;
else
switch(ringcount)
{

case 1: RB0=0;
break;
case 2: RB1=0;
break;
case 3: RB2=0;
break;
case 4: RB3=0;
break;
case 5: RB4=0;
break;

case 6: RB5=0;
break;

case 7: RB6=0;
break;

case 8: RB7=0;
break;
default: break;
}
}
ringcount=0;
}



void wait5sec(void)
{
x=0;
TMR0=0;
while(x<TIMEOUTS)
if(TMR0>=200) // to keep some margin in case TMR0 rolls back to 00, keep it to C8(200dec)!!
{
TMR0=0;
x++;
}
return;


}


void getdipswitch(void)
{
char temp1,temp2;
temp1 = (PORTA&0b00011000)>>3; //get the A4,A3 bits into temp1
temp2 = (PORTA&0b00000110)>>1; //get the A2,A1 bits into temp2
switch(temp1)
{
case 0: WAKEON=2;WAKEOFF=3;
break;
case 1: WAKEON=3;WAKEOFF=4;
break;
case 2: WAKEON=4;WAKEOFF=5;
break;
case 3: WAKEON=5;WAKEOFF=6;
break;
default:break;
}

switch(temp2)
{
case 0: WAITDELAY=1;
break;
case 1: WAITDELAY=2;
break;
case 2: WAITDELAY=3;
break;
case 3: WAITDELAY=4;
break;
default:break;
}

}


regards
john
 

dtmf activated switch

hello sir
i need the schematic and the code for this project(as it is assigned to me a semester project) so please send me.but we are using atmel 89c51(8051) with assembly language.

BR
 

telephone switch codes

Hey...john2020 have you tested your above code, I'm quite curious!!
 

send dtmf to telephone

her is full documented project with code and PCB
 

can any one make proteos file of this project DTMF telephone control.rar
i neeeed it
 

Hi, I am very interested in this project, but slightly more complex such as the code that may be included in this project **broken link removed**

Does anyone know of any source code apart from that that has been listed here?

Thanks.
 

hi
i m working on the project similar to this but with different setup.
is it possible that mobile phone can pick automatically when it is called by some predefined number? if yes then how?
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top