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

📄 410rt.lst

📁 GSM通信系统的软件设计
💻 LST
📖 第 1 页 / 共 2 页
字号:
 221   5                                                                loca[10]='\0';
 222   5                                                        } 
 223   4                                                        num++;
 224   4                                                        break;
 225   4                                         case 9:
 226   4                                               if(temp==0x0a)
 227   4                                                   SMS_EN=1;          //标识有信息,通知接收
 228   4                                                       break;
 229   4                                               
 230   4                       }  // the end of inner switch
 231   3                                  break; 
 232   3                       case 1:  break;        
 233   3               case 2:
 234   3                              addbuffer();
 235   3                                      if( (*(rec_buf+(put_pt - rec_buf + buf_len)%buf_len)=='\x0a')&& 
 236   3                                          (*(rec_buf+(put_pt - 1 - rec_buf + buf_len)%buf_len)=='\x0d')&&
 237   3                                              (*(rec_buf+(put_pt - 2 - rec_buf + buf_len)%buf_len)=='K')&&
 238   3                                              (*(rec_buf+(put_pt - 3 - rec_buf + buf_len)%buf_len)=='O'))
 239   3                                       {
 240   4                                           //SMS_EN=0;           //不再调用 Read_sms();
 241   4                                           SMS_OK=1;
C51 COMPILER V7.06   410RT                                                                 04/05/2008 12:08:22 PAGE 5   

 242   4                                               Recving_SMS=0;
 243   4                                               Rec_status=0;
 244   4                       }
 245   3                              break;
 246   3                   case 3:
 247   3                              break;  
 248   3                   case 4:
 249   3                              addbuffer();
 250   3            
 251   3                                  if( (*(rec_buf+(put_pt - rec_buf + buf_len)%buf_len)=='\x0a')&& 
 252   3                                          (*(rec_buf+(put_pt - 1 - rec_buf + buf_len)%buf_len)=='\x0d')&&
 253   3                                              (*(rec_buf+(put_pt - 2 - rec_buf + buf_len)%buf_len)=='K')&&
 254   3                                              (*(rec_buf+(put_pt - 3 - rec_buf + buf_len)%buf_len)=='O'))
 255   3                                       {
 256   4                                           Rec_status=0; 
 257   4                       }
 258   3                              break;  
 259   3                      case 5:
 260   3                              addbuffer();
 261   3                                      if((*(&rec_buf+(put_pt - &rec_buf + buf_len)%buf_len)=='\x20')&&(*(rec_buf+(put_pt - 1 - rec_buf + buf
             -_len)%buf_len)=='>'))
 262   3                                      {
 263   4                                          ALARM=1;
 264   4                                          CSD=1;
 265   4                          Rec_status=0;
 266   4                                      }
 267   3                              break;
 268   3                  case 6:
 269   3                              addbuffer();
 270   3                                  if( (*(rec_buf+(put_pt - rec_buf + buf_len)%buf_len)=='\x0a')&& 
 271   3                                          (*(rec_buf+(put_pt - 1 - rec_buf + buf_len)%buf_len)=='\x0d')&&
 272   3                                              (*(rec_buf+(put_pt - 2 - rec_buf + buf_len)%buf_len)=='K')&&
 273   3                                              (*(rec_buf+(put_pt - 3 - rec_buf + buf_len)%buf_len)=='O'))
 274   3                                       {
 275   4                                           Rec_status=0; 
 276   4                       }
 277   3                              break;                                                                        
 278   3                 }          //  the end of outer switch
 279   2              }
 280   1              if (TI0)
 281   1              {
 282   2                      TI0 = 0;
 283   2                      TRANS_NEXT_BYTE_OK = 1;
 284   2              }
 285   1      }
 286          //read a message to buffer;
 287          void Read_sms()
 288          {  
 289   1         if(!IS_sending)
 290   1        {
 291   2         SMS_EN=0; 
 292   2         ini_buf();                //初始化buffer
 293   2        // SMS_EN=0;               // 在读完数据再 清零
 294   2         Rec_status=2;
 295   2         //loca[6]='R';
 296   2         tr_point=loca;
 297   2         TRANS_NEXT_BYTE_OK = 1;
 298   2        }     
 299   1      }
 300          
 301          void Process_sms()
 302          {
C51 COMPILER V7.06   410RT                                                                 04/05/2008 12:08:22 PAGE 6   

 303   1         unsigned char rr;
 304   1         unsigned int i=0;
 305   1         SMS_OK=0;
 306   1         getbuffer();
 307   1         getbuffer();
 308   1         do
 309   1         {
 310   2            rr=getbuffer();
 311   2         }while(getbuffer()!='\x0a' || rr!='\x0d');                               
 312   1        
 313   1         for(i=0;i<6;i++)
 314   1         {
 315   2            if(getbuffer()!=privacy[i])
 316   2                   break;
 317   2         }
 318   1         if(i==6)
 319   1         {
 320   2            strcpy(content,"");          //清空
 321   2            i=0;
 322   2                rr=getbuffer();
 323   2                while(rr!=0x0d)
 324   2                {
 325   3                   content[i++]=rr;
 326   3                       rr=getbuffer();
 327   3                }
 328   2                CM_CMD=1;
 329   2         }
 330   1         DEL_MS=1;
 331   1      }
 332          //delete a message 
 333          
 334          void Del_sms(void)
 335          {
 336   1         
 337   1         /*
 338   1         loca[8]='2';
 339   1         loca[9]='5';
 340   1         loca[10]='\r';
 341   1         loca[11]='\0';
 342   1         */
 343   1        if(!IS_sending)
 344   1        {
 345   2         DEL_MS=0;
 346   2         ini_buf();                //clear  buffer;
 347   2         Rec_status=4;
 348   2         loca[6]='D';
 349   2         tr_point=loca;
 350   2         TRANS_NEXT_BYTE_OK = 1;
 351   2        }     
 352   1      }
 353          
 354          void Send_sms()
 355          {  
 356   1        
 357   1         if(!IS_sending)
 358   1         { 
 359   2             ini_buf();
 360   2             if(!CSD)
 361   2                 {
 362   3                  ALARM=0;
 363   3                  Rec_status=5;
 364   3             // tr_point="AT+CMGS=\"13488716723\"\r";
C51 COMPILER V7.06   410RT                                                                 04/05/2008 12:08:22 PAGE 7   

 365   3                  strcat(send_buff,pho);
 366   3                      strcat(send_buff,"\"\r");
 367   3                  tr_point=send_buff;
 368   3                  TRANS_NEXT_BYTE_OK = 1;
 369   3                      }else
 370   2                      {
 371   3                        CSD=0;
 372   3                        ALARM=0; //清零
 373   3                    Rec_status=6;
 374   3                        ini_buf();
 375   3                        //tr_point="abcdefg\x1a";
 376   3                        strcat(alarms,"\x1a");
 377   3                tr_point=alarms;
 378   3                        TRANS_NEXT_BYTE_OK = 1;
 379   3                      }
 380   2         }
 381   1         /*
 382   1         ALARM=0;
 383   1         tr_point="AT+CMGS=\"13488716723\"\rabcdefghijk\x1a\0";
 384   1         TRANS_NEXT_BYTE_OK = 1;
 385   1         */
 386   1      }
 387          //发送信息
 388          void transmitte (void)
 389          {   
 390   1          IS_sending=1;
 391   1              TRANS_NEXT_BYTE_OK = 0; 
 392   1              if (*tr_point != '\0')
 393   1              {
 394   2                      SBUF0 = *tr_point;
 395   2                      tr_point++;             
 396   2          }
 397   1          else
 398   1            IS_sending=0;
 399   1      }
 400          
 401          void ini_buf()
 402          {
 403   1       get_pt=rec_buf;
 404   1       put_pt=rec_buf;
 405   1      }
 406          
 407          void addbuffer()
 408          {
 409   1         put_pt++;
 410   1         put_pt=rec_buf+(put_pt-rec_buf)%buf_len;
 411   1         if(put_pt!=get_pt)
 412   1             *put_pt=SBUF0; 
 413   1         else
 414   1         {
 415   2           put_pt--;
 416   2               put_pt=rec_buf + (put_pt + buf_len - rec_buf) % buf_len;
 417   2         }
 418   1      }
 419          
 420          uchar getbuffer()
 421          {
 422   1        if(get_pt!=put_pt)
 423   1        {
 424   2           get_pt++;
 425   2               get_pt=rec_buf + (get_pt - rec_buf) % buf_len;
 426   2               return *get_pt;
C51 COMPILER V7.06   410RT                                                                 04/05/2008 12:08:22 PAGE 8   

 427   2        }
 428   1        else
 429   1        return '@';
 430   1      } 


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1767    ----
   CONSTANT SIZE    =     46    ----
   XDATA SIZE       =    159    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     81       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      9    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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