⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tc35i.lst

📁 TC35_GSM
💻 LST
📖 第 1 页 / 共 2 页
字号:
 160   3                              else
 161   3                              {
 162   4                                  send_hex((htd(j)>>4)+0x30);
 163   4                                      send_hex((htd(j)&0x0f)+0x30);
 164   4                              }                                   
 165   3                      send_hex(0x0d); 
 166   3                      while(!hand("OK"));     
 167   3                              clr_buf();              
 168   3                      }
 169   2              } 
 170   1      }
 171           /*****************判断缓存中是否含有指定的字符串函数******************/
 172          /*函数原型:bit hand(unsigned char *a)
 173          /*函数功能:判断缓存中是否含有指定的字符串
 174          /*输入参数:unsigned char *a 指定的字符串
 175          /*输出参数:bit 1---含有    0---不含有
 176          /*调用模块:无
 177          /**********************************************************************/
 178          bit hand(unsigned char *a)
 179          { 
C51 COMPILER V7.06   TC35I                                                                 10/01/2009 22:01:36 PAGE 4   

 180   1          if(strstr(rec_buf,a)!=NULL)
 181   1                  return 1;
 182   1              else
 183   1                      return 0;
 184   1      }
 185          
 186          /**************************十六进制转十进制函数**************************/
 187          /*函数原型:uint htd(uint a)
 188          /*函数功能:十六进制转十进制
 189          /*输入参数:要转换的数据
 190          /*输出参数:转换后的数据
 191          /*调用模块:无
 192          /******************************************************************/ 
 193          unsigned int htd(unsigned int a)
 194          {
 195   1                  unsigned int b,c;
 196   1                      b=a%10;
 197   1                      c=b;
 198   1                      a=a/10;
 199   1                      b=a%10;
 200   1                      c=c+(b<<4);
 201   1                      a=a/10;
 202   1                      b=a%10;
 203   1                      c=c+(b<<8);
 204   1                      a=a/10;
 205   1                      b=a%10;
 206   1                      c=c+(b<<12);
 207   1                  return c;
 208   1      }
 209          /*******************************延时函数*********************************/
 210          /*函数原型:delay(unsigned int delay_time)
 211          /*函数功能:延时函数
 212          /*输入参数:delay_time (输入要延时的时间)
 213          /*输出参数:无
 214          /*调用模块:无
 215          /**********************************************************************/
 216          void delay(unsigned int delay_time)   //延时子程序
 217          {
 218   1        for(;delay_time>0;delay_time--);
 219   1      }
 220          /*******************************串口中断处理函数*********************************/
 221          /*函数原型:void Serial(void)
 222          /*函数功能:串口中断处理
 223          /*输入参数:无
 224          /*输出参数:无
 225          /*调用模块:无
 226          /**********************************************************************/
 227          void Serial() interrupt 4  //串口中断处理
 228          {       
 229   1          unsigned char k=0;
 230   1              ES=0;    //关串口中断
 231   1              if(TI)   //发送
 232   1              {
 233   2                      TI=0;
 234   2              }
 235   1              else     //接收,处理
 236   1              {       
 237   2                      RI=0;   //关接收中断
 238   2                      rec_buf[i]=SBUF;
 239   2                      if(i<buf_max)
 240   2                          i++;
 241   2                      else
C51 COMPILER V7.06   TC35I                                                                 10/01/2009 22:01:36 PAGE 5   

 242   2                          i=0;
 243   2                      RI=0;  //关接收中断
 244   2                      TI=0;
 245   2              }
 246   1              ES=1;    //开串口中断
 247   1      }
 248          
 249          /*******************************读短信短信转接电话函数*************************/
 250          /*函数原型:void  Mes_To_Call(void)
 251          /*函数功能:串口中断处理
 252          /*输入参数:无
 253          /*输出参数:无
 254          /*调用模块:无
 255          /**********************************************************************/
 256          void  Mes_To_Call(void)
 257           {  
 258   1          unsigned char a,b,c,j=0;
 259   1              unsigned char k;
 260   1                  if(strstr(rec_buf,"+CMTI")!=NULL)//若字符串中含有"+CMTI"就表示有新的短信
 261   1                      {
 262   2                          j++;
 263   2                          a=*(strstr(rec_buf,"+CMTI")+12);
 264   2                              b=*(strstr(rec_buf,"+CMTI")+13); 
 265   2                          c=*(strstr(rec_buf,"+CMTI")+14); 
 266   2                              if((b==0x0d)||(c==0x0d))
 267   2                              {  
 268   3      
 269   3                              clr_buf();
 270   3                              send_ascii("AT+CMGR=");//发送读指令
 271   3                                  send_hex(a);
 272   3                                      if(c==0x0d)
 273   3                                      send_hex(b); 
 274   3                                      send_hex(0x0d);  
 275   3                          while(!hand("OK")); 
 276   3                              if(strstr(rec_buf,"yao")!=NULL)        //读短信内容
 277   3                        {
 278   4                                          send_ascii("ATD13895767929;");     //拨打电话
 279   4                              send_hex(0x0d);
 280   4                                          for(k=0;k<50;k++)
 281   4                          delay(65535);
 282   4                            }
 283   3                          else if(strstr(rec_buf,"liang")!=NULL) //读短信内容   
 284   3                            {
 285   4                                          send_ascii("ATD13895709137;");      //拨打电话
 286   4                              send_hex(0x0d); 
 287   4                          for(k=0;k<80;k++)
 288   4                              delay(65535);
 289   4                            }
 290   3                      else if(hand("13895767929"))
 291   3                                     {
 292   4                                           for(k=0;k<100;k++)
 293   4                               delay(65535);
 294   4                                           send_ascii("ATD13895709137;");//所有操作都在MT(模块终端)中进行
 295   4                               send_hex(0x0d); 
 296   4                           for(k=0;k<80;k++)
 297   4                               delay(65535);
 298   4                         }
 299   3                               
 300   3                          clr_buf(); 
 301   3                              clr_ms();//删除短信
 302   3      
 303   3                    
C51 COMPILER V7.06   TC35I                                                                 10/01/2009 22:01:36 PAGE 6   

 304   3                  }
 305   2                      }
 306   1       
 307   1       }
 308          
 309          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1017    ----
   CONSTANT SIZE    =    121    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     76      13
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -