内容发布更新时间 : 2025/11/4 22:32:22星期一 下面是文章的全部内容请认真阅读。
**********************************************/ 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