智能家居中的安全防范系统设计毕业论文 下载本文

**********************************************/ void Start_GSM(void) {

IGT=0;

Delay_ms(1000); IGT=1;

Delay_ms(1000); }

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

////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////函数void GSM_INIT(void);实现功能:初始化TC35模块///////////////////////////////

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

/******************************************************************************************************************/ void GSM_INIT(void) { LOOP:

Delay_ms(1000); sendstring(AT); Delay_ms(1000); sendstring(ATE); Delay_ms(1000);

sendstring(AT_CNMI); Delay_ms(1000);

sendstring(AT_CSCA); Delay_ms(1000);

for(Rx=0;Rx

SystemBuf[Rx]=0x00; }

Rx=0;

sendstring(AT_CMGF); Delay_ms(1000);

if((SystemBuf[2]=='O')&&(SystemBuf[3]=='K')) //判断是否模块初始化成功,成功的话模块会回复\给单片机 { // beep=1; //如果单片机没有收到OK,就继续发送初始化指令/ for(Rx=0;Rx

SystemBuf[Rx]=0x00; }

44

Rx=0; } else

{ //beep=0; for(Rx=0;Rx

SystemBuf[Rx]=0x00; }

Rx=0;

goto LOOP; } }

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

////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////函数void receive_ready(void);实现功能:接收短信准备///////////////////////////////

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

/******************************************************************************************************************/ void receive_ready(void) {

uchar i;

if((SystemBuf[5]==0x54)&&SystemBuf[6]==0x49) //如果有新短信(TI)来,模块会通过串口向单片机发送字符串, { // 此函数的功能是判断是否有新短信来,如果来的话就置位准备接受位标志为1 receiveready=1; //如果不是新短信的指令,就舍弃,并将接收数组清零/ } else { for(i=0;i

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

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

45

///////////////////函数 void message_read(void);实现功能:判断短信,准备是否回复短信给目标号码//////////////////////////

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

/******************************************************************************************************************/ void message_read(void) {

if((sendready==1)&&(SystemBuf[5]==0x47)&&(SystemBuf[6]==0x52)) //GR send=1; }

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

////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////函数 void read_message(void);实现功能:发送读取短信指令,////////////////////////////////////////

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

/******************************************************************************************************************/ void read_message(void) {

uchar i;

Delay_ms(1000); for(i=0;i<3;i++) { numberbuf[i]=SystemBuf[14+i]; }

for(i=0;i<8;i++) { AT_Read[i]=AT_CMGR[i]; }

for(i=8;i<11;i++) { AT_Read[i]=numberbuf[i-8]; }

for(Rx=0;Rx

Rx=0;

sendstring(AT_Read); //发送AT+CMGR=?,?代表短信储存所在位置

46

}

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

////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////函数 void delete_message;实现功能:删除读短信指令,////////////////////////////////////////

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

/******************************************************************************************************************/ void delete_message(void) {

uchar i;

Delay_ms(1000); Delay_ms(1000); Delay_ms(5000); for(i=0;i<8;i++) { AT_delete[i]=AT_CMGD[i]; }

for(i=8;i<11;i++) { AT_delete[i]=numberbuf[i-8]; }

for(Rx=0;Rx

Rx=0;

sendstring(AT_delete); //发送AT+CMGR=?,?代表短信储存所在位置 }

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

////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////函数 void sendmessage(void);实现功能:发送回复短信指令,////////////////////////////////////////

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

/******************************************************************************************************************/ void sendmessage(void) {

uchar i;

47

for(i=0;i<8;i++) { AT_SendNumber[i]=AT_CMGS[i]; }

for(i=8;i<24;i++) { AT_SendNumber[i]=SystemBuf[14+i]; //将对方号码提取用来回复给对方 }

sendstring(AT_SendNumber); Delay_ms(400); if(flag==0) { //if(check==1) //{ // sendstring(state); //如果查询位置1时,发送状态信息

// } sendstring(successfully); // check=0; } else { sendstring(fail); }

Delay_ms(30); sendchar(0X1A); }

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

////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////函数 void readcommend(void);实现功能:读取短信内容,判断相应指令是否正确//////////////////////////

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

/******************************************************************************************************************/ void readcommend(void) {

uchar i;

for(i=0;i<8;i++) //将短信内容中的指令部分截取出来放到 {

48