Discussion in "Embedded GSM Development" started by    cllunlu    Apr 23, 2008.
Wed Apr 23 2008, 08:40 am
#1
hi friends.
I am trying to send sms with 8051(89c51rc2)and siemens C55.But I failed.I dont know why.When I try to send sms,cellphone turns off.
My schematic and C code here.where is my mistake.I dont know.
Also I can send sms by hyperterminal with data cable.And I simulated it by proteus succesfully.And it is project to pass the class.Plz help me firends.

/////////////////////////////////////////////////////////////////////////

that is C code:

///////////////////////////////////////////////////////////////////////////

#include <t89c51Rx2.h>
 //
unsigned char rcvd[2]; 
unsigned char j; 
unsigned char k; 
bit ok=0; 
bit ok1=0; 

void init() /// u put int() here 
{ 
TMOD=0x20; 
TH1=0xFD; 
SCON=0x50; 
TR1=1; 
} 

void sendString(unsigned char *a) 
{ 
while(*a!='\0') 
{ 
SBUF=*a; 
while(TI==0); 
TI=0; 
a++; 
} 
} 
void sendChar(unsigned char b) 
{ 
SBUF=b; 
while(TI==0); 
TI=0; 
} 
unsigned char rcv() 
{ 
while(RI==0); 
RI=0; 
return SBUF; 
} 
void checkOK() 
{ 
for(j=0;j<2;j++) 
rcvd[j]=rcv(); 
if(rcvd[0]=='o'&&rcvd[1]=='k') 
ok=1; 
else 
ok=0; 
} 
void checkOKe() 
{ 
k=rcv(); 
if(k=='>
') 
ok1=1; 
else 
ok1=0; 
} 

void main() 
{ 
P2_0=0; 
P2_1=0; 
while(1) 
{ 
if(P1_0==0) 
{ 
init(); 
sendString("AT"); 
sendChar(0x0D); 
checkOK(); 
if(ok==1) 
{ 
P2_0=1; 
sendString("AT+CMGS=19"); 
sendChar(0x0D); 
checkOKe(); 
if(ok1==1) 
{ 
P2_1=1; 
sendString("079109459208003311000C910945664173350000AA05E8329BFD06"); 
//sms center no:+905429800033, destination number:+905466143753, message:"HELLO" 
sendChar(0x1A); 
} 
else P2_1=0; 
} 
else 
P2_0=0; 
} 
} 
} 


Attachment




[ Edited Wed Apr 23 2008, 02:18 pm ]
Wed Apr 23 2008, 08:55 am
#2

sendString("079109459208003311000C910945664173350000AA05E8329BFD06");
//sms center no:+905429800033, destination number:+905466143753, message:"HELLO"



what is this??
PDU??


doesnot the modem support text mesaging???
Wed Apr 23 2008, 09:40 am
#3
yes it is pdu mode.Because my cellphone is siemens C55 and it supports only pdu mode.
I can send sms by hyperterminal with pdu mode.And I simulated it by proteus.Serial communication looks success.But it doesnt work when I do that schematic.Cellphone close itself.I dont know why?
Wed Apr 23 2008, 02:23 pm
#4
problem seems here..
void checkOK()
{
for(j=0;j<2;j++)
rcvd[j]=rcv();
if(rcvd[0]=='o'&&rcvd[1]=='k')
ok=1;
else
ok=0;
}


you are checking for small 'o' and small 'k' whereas phone sends capital 'O' and capital 'K'. so you variable ok is never 1. I hope you got my point.

So make the change in program as..
if(rcvd[0]=='O'&&rcvd[1]=='K')
 cllunlu like this.
Wed Apr 23 2008, 02:43 pm
#5
also you dont need to send all those commands...just try to send at+cmgs.and dont check OK.
Wed Apr 23 2008, 02:49 pm
#6
I know.But I wanna check my pdu mode.So I have to know right communication.And my schematic is right?
Wed Apr 23 2008, 02:57 pm
#7
in schematic......try with DTR pin of mobile = high
Wed Apr 23 2008, 03:09 pm
#8
But I dont understand DTR pin of mobile=high

how it will be.It necessary.And how?
Wed Apr 23 2008, 03:13 pm
#9
this schematic is right too?

Wed Apr 23 2008, 03:13 pm
#10
do you know pin configuration of your mobile connector??you are not using datacable right?

Get Social

Information

Powered by e107 Forum System

Downloads

Comments

ktaletrryp
Fri Apr 26 2024, 10:55 pm
Robertrip
Fri Apr 26 2024, 11:20 am
ArnoldDiant
Fri Apr 26 2024, 03:53 am
RodneyKnorb
Thu Apr 25 2024, 07:08 pm
Williamjef
Thu Apr 25 2024, 02:08 pm
SamuelSmise
Thu Apr 25 2024, 09:56 am
DustinErele
Thu Apr 25 2024, 08:44 am
ztaletpzca
Wed Apr 24 2024, 11:19 pm