當前位置:名人名言大全網 - 祝福短信 - 有AT89C51單片機控制的GSM模塊tc35i的編程和連接圖嗎,包括TC35i的外部電路?我的電子郵件地址是254486521@qq.com,謝謝。

有AT89C51單片機控制的GSM模塊tc35i的編程和連接圖嗎,包括TC35i的外部電路?我的電子郵件地址是254486521@qq.com,謝謝。

# include & ltreg52.h & gt

# include & ltintrins.h & gt

# include & ltstdio.h & gt

# include & ltmath.h & gt

# include & ltstdlib.h & gt

# include & ltstring.h & gt

#定義uint無符號整數

#定義uchar無符號字符

#定義uint無符號整數

//void init(void);

//char j = ' \ 0 ';

char RS buf[40];

char code AT_SK[]= " >;

char Code AT _ Code[]= " OK ";

位標誌= 0;

uchar RS point = 0;

sbit led1=p2^3;

sbit led2=p2^2;

sbit led3=p2^1;

sbit led4=p2^0;

無效延遲(單位z)

{

uint x,y;

for(x = z;x & gt0;x -)

for(y = 125;y & gt0;y-);

}

/***************************************8

***************************************/

void ClrRsBuf(char *p,int tt)

{

int I;

而(tt -)

{

* p = ' \ 0

p++;

}

}

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

void Send_AT(void)

{ uchar代碼模式[]= " AT ";

烏恰爾壹世;

無符號char * p;

while(1)

{

ClrRsBuf(RsBuf,sizeof(RS buf));

for(I = 0;我& lt2;i++)

{

SBUF =模式[I];//將表[i]發送到發送緩沖區。

而(!TI);//等待傳輸完成

TI = 0;

}

SBUF = ' \ r

而(!TI);//等待傳輸完成

TI = 0;

ES = 1;//

延遲(500);

p=strstr(RsBuf,AT _ Code);

如果(p!= NULL)break;

}

}

/***********************************************************

:CMGF

:TXET?:?:?

***********************************************************/

void Send_CMGF

{ uchar I;

uchar代碼模式[]= " AT+CMGF = 1 ";

無符號char * p;

while(1)

{

ClrRsBuf(RsBuf,sizeof(RS buf));

for(I = 0;我& lt9;i++)

{

SBUF =模式[I];//將表[i]發送到發送緩沖區。

而(!TI);//等待傳輸完成

TI = 0;

}

SBUF = ' \ r

而(!TI);//等待傳輸完成

TI = 0;

ES = 1;//

延遲(500);

p=strstr(RsBuf,AT _ Code);

如果(p!= NULL)break;

}

}

/* * * * * * * * * * * * CSCS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 8

********************************************/

無效CSCS(無效)

{

烏恰爾壹世;

uchar碼模式[]= " AT+CSCS = \ " GSM \ " ";

for(I = 0;我& lt14;i++)

//while()

{

SBUF =模式[I];//將表[i]發送到發送緩沖區。

而(!TI);//等待傳輸完成

TI = 0;

}

SBUF = ' \ r

而(!TI);

TI = 0;

SBUF = ' \ n

而(!TI);//等待傳輸完成

TI = 0;

}

/***********************************************************

:CMGS

:SIM:?:?

***********************************************************/

void Send_CMGS

{

烏恰爾壹世;

uchar碼電話[]= " AT+CMGS = \ " 13474305153 \ " ";

無符號char * p;

while(1)

{

ClrRsBuf(RsBuf,sizeof(RS buf));

for(I = 0;我& lt21;i++){

SBUF = phone[I];//將表[i]發送到發送緩沖區。

而(!TI);//等待傳輸完成

TI = 0;

}

SBUF = ' \ r

而(!TI);//等待傳輸完成

TI = 0;

ES = 1;//

延遲(500);

p=strstr(RsBuf,AT _ SK);

如果(p!= NULL)break;

}

}

void發送(void)

{

uchar I = 0;

uchar碼sms[]= "高帥8553069 \ x 1a ";//短信?,\x01a?Ctrl+Z

while(短信[i]!='\0')

{

SBUF = SMS[I];//將表[i]發送到發送緩沖區。

而(!TI);//等待傳輸完成

TI = 0;

i++;

}

//SBUF = ' \ n ';

// while(!TI);//等待傳輸完成

//TI = 0;

}

void init(){

TMOD = 0x 20;

th 1 = 0x FD;//bit=9600

TL 1 = 0x FD;

tr 1 = 1;

任= 1;//允許接受

SM0 = 0;

sm 1 = 1;

EA = 1;

ES = 1;//打開串行端口中斷

}

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

/*void SendMsgStart(void)

{

無符號char *p,I = 10;

ES = 1;

當(我-)

{

延時(100);//Get " >

p=strstr(RsBuf,SK);//" >

如果(p!=空)

{

ClrRsBuf(RsBuf,sizeof(RS buf));

延時(150);//Get " >

led 4 = 1;

打破;

}

}

}

*/

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

void main(){

init();

flag = 0;

led 1 = 0;

led 2 = 0;

led 3 = 0;

led 4 = 0;

延遲(50);

ES = 0;

延遲(2000年);

send _ AT();

led 1 = 1;

延時(1000);

發送_ CMGF();

led 2 = 1;

//Delay(1000);

//CSCS();

延時(1000);

發送_ CMGS();//

led 3 = 1;

延時(1000);

SEND();

led 4 = 1;

//SendMsgStart();

while(1);

}

無效ser()中斷4

{

if(RI==1)

{

RI = 0;

RS buf[RS point++]= SBUF;

if(RS point & gt;=sizeof(RsBuf))

{

RS point = 0;//flag RS485 = 0;

} //

}

}

我親自試過,沒有任何問題。