當前位置:名人名言大全網 - 端午節短信 - Gsm模塊接收短消息。

Gsm模塊接收短消息。

這個程序已經調好了,它的功能是定義壹個按鈕1,按下後會自動發送短信。短消息的內容是倪好,GSM_ATCMGS()函數中有壹個數組。存儲說明加手機號加0d。用妳的手機替換好的asc,它就可以工作了。如果妳不會用,就打電話給我:

# include & ltreg52.h & gt

#定義uchar無符號字符

#定義uint無符號整數

void GSM _ UART();

無符號整數uart_delay(無符號整數z);

void GSM _ init();

void GSM _ CMGF();

void GSM _ ATC MGS();

void TELNUM();

void GSM _ TEXT();

void GSM _ test();

void BUTTON();

無符號整數d;

無符號字符代碼at enter【】= { 0x 41,0x54,0x0d };

無符號字符代碼ATCMGFEnter【】= { 0x41,0x54,0x2b,0x43,0x4d,0x47,0x 46,0x3d,0x31,0x0d };

無符號字符代碼at cmgs【】= { 0x 41,0x54,0x2b,0x43,0x4d,0x47,0x53,0x3d };

無符號字符代碼TEL _ NUM【】= { 0x 30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x 39 };

無符號字符代碼文本【】={0x4b,0x4f };

無符號字符代碼Enter【】= { 0x0d };

無符號字符代碼oneA【】= { 0x 31,0x 41 };

無符號字符idata buf【20】;

int標誌;

int buf num = 0;

uchar str 1【】= {“AT“};

uchar str 2【】= {“ATD“};

uchar str 3【】= {“ATH“};

uchar str 5【】= {“AT+CMGS =“};

sbit bell=p1^6;

sbit betton1_1=p3^3;

sbit betton1=p3^4;

void gsm_uart()

{ EA = 1;

ES = 1;

SCON = 0x 50;//UART模式1:8位UART;REN=1:允許接收。

PCON = 0x 00;//SMOD=0:波特率不加倍。

TMOD = 0x 20;//t 1模式2,用於UART波特率。

th 1 = 0x FD;

TL 1 = 0x FD;//UART波特率設置:9600

TI = 0;

RI = 0;

EA = 1;

tr 1 = 1;

}

無符號整數uart_delay(無符號整數z)

{無符號整數a,b;

for(a = z;a & gt0;答-)

{ for(b = 1000;b & gt0;B-);}

返回z;

}

使用3使ddd()中斷4無效

{

if(RI)//處理接收中斷。

{ buf【buf num】= SBUF;//接收串行數據

RI = 0;

buf num++;//清除中斷標誌位

}

}

void GSM_init()

{

uint I;

uchar代碼測試【】= {0x41,0x54,0x0d };

ES = 0;

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

{

SBUF = test【I】;

while(TI = = 0);

TI = 0;

}

ES = 1;

}

void GSM_CMGF()

{

uchar code sel【10】= { 0x41,0x54,0x2B,0x43,0x4D,0x47,0x 46,0x3D,0x31,0x0d };//AT+CMGF=1回車

uint I;

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

{

SBUF = sel【I】;

while(TI = = 0);

TI = 0;

}

}

void GSM_ATCMGS()

{ uint I;

uchar代碼tel【20】= { 0x 41,0x54,0x2B,0x43,0x4D,0x47,0x53,0x3D,0x31,0x33,0x38,0x33,

0x36,0x30,0x32,0x33,0x33,0x37,0x39,0x0d };

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

{

SBUF = tel【I】;

while(TI = = 0);

TI = 0;

}

}

void GSM_TEXT()

{

uchar code ne irong【10】= { 0x 48,0x69,0x21,0x6E,0x69,0x68,0x61,0x6F,0x2E,0x 1a };//嗨!倪好。

uint I;

ES = 0;

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

{

SBUF = nei Rong【I】;

while(TI = = 0);

TI = 0;

}

ES = 1;

}

void發送()

{

SBUF = oneA【0】;while(TI = = 0);TI = 0;

SBUF = oneA【1】;while(TI = = 0);TI = 0;

}

void GSM_test()

{

GSM _ UART();

UART _ delay(400);

GSM _ init();

UART _ delay(1000);

ES = 0;

buf num = 0;

if(buf【5】= =‘O‘& amp;& ampbuf【6】= =‘K‘。

{

P0 = 0xfeUART _ delay(1000);P0 = 0xff

}

其他

{

P0 = 0x00UART _ delay(4000);P0 = 0xff

}

}

void按鈕()

{ betton 1 = 1;

betton 1 _ 1 = 0;

if(betton 1 = = 0)

{

GSM _ test();

UART _ delay(1200);

GSM _ CMGF();

UART _ delay(1200);

GSM _ ATC MGS();

UART _ delay(1200);

GSM _ TEXT();

UART _ delay(800);

UART _ delay(500);

betton 1 = 1;

}

}

主()

{

BUTTON();

UART _ delay(10);

}