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

📄 dvs-comprotoc.lst

📁 电话报警主机AT89S52单片机并带有网络模块通信协议
💻 LST
📖 第 1 页 / 共 3 页
字号:
 310   1              luc_temp = RsBuf[5];
 311   1              if((0<luc_temp)&&(luc_temp<=180))
 312   1              {
 313   2                      WrEEPROM(Alar_TI_Addr,luc_temp);
 314   2                      luc_temp = 0x00;
 315   2                      RxTCPSame(SET_COM_WAR_TIME,1,&luc_temp);                                                        //返回网络模块,成功
 316   2              }
 317   1              else
 318   1              {
 319   2                      luc_temp = 0x01;
 320   2                      RxTCPSame(SET_COM_WAR_TIME,1,&luc_temp);                                                        //返回网络模块,所带的参数非法
 321   2              }
 322   1      }
 323          
 324          //===============================================================================================
 325          //语法格式:     SetTelKeepAlive()       
 326          //实现功能: 心跳
 327          //输入参数:     无
 328          //输出返回:     无
 329          //创建时间:2009-02-20          修改时间:
 330          //创建人员:                    修改人员:
 331          //===============================================================================================
 332          unsigned char code TELKEEP_TAB[4]={0x00,0x01,0x00,0x79};
 333          void SetTelKeepAlive()
 334          {
 335   1              unsigned char idata luc_i ; 
 336   1              bit lucbitok;
 337   1              for(luc_i = 0 ; luc_i < 4 ;luc_i ++ )
 338   1              {
 339   2                      if(RsBuf[luc_i+2] == TELKEEP_TAB[luc_i])        lucbitok = 1;                                   //如果协议相等则赋1
 340   2                      else 
 341   2                      {
 342   3                              lucbitok = 0 ;                                                                                                                  //否则赋0,并退出
 343   3                              break;  
 344   3                      }
 345   2              }
 346   1              luc_i = 0 ;
 347   1              if(lucbitok) RxTCPSame(TEL_ALARM_KEEP_ALIVE,1,&luc_i);                                                  //如果协议相等返回心跳                                                                  
 348   1      }
 349          
 350          
 351          
 352          
 353          //===============================================================================================
 354          //语法格式:     QueriesComAlarTimee()   
 355          //实现功能: 查询警号时间
 356          //参数:         无
 357          //返回:         无
 358          //创建时间:2009-02-14          修改时间:
 359          //创建人员:                    修改人员:
 360          //===============================================================================================
 361          void QueriesComAlarTimee()                                                                      //查询串口警号声时间
 362          {
 363   1              unsigned char idata luc_temp ; 
 364   1      
 365   1              luc_temp = RdEEPROM(Alar_TI_Addr) ;
C51 COMPILER V7.06   DVS_COMPROTOC                                                         02/27/2009 15:46:10 PAGE 7   

 366   1              if((luc_temp>=100)||(luc_temp==0))                                              //如果数据没在1-99之间,重新获取,默认30                                        
 367   1              {
 368   2                      luc_temp = ALARSOURTIME ;
 369   2                      WrEEPROM(Alar_TI_Addr,luc_temp);                                        //保存警号时间
 370   2              }
 371   1              RxTCPSame(SET_COM_WAR_TIME,1,&luc_temp) ;                               //返回警号声时间
 372   1      }
 373          
 374          
 375          
 376          //===============================================================================================
 377          //语法格式:     ProbeAlar()     
 378          //实现功能: 探测器报警,又名有线报警
 379          //参数:         无
 380          //返回:         无
 381          //创建时间:2009-02-14          修改时间:
 382          //创建人员:                    修改人员:
 383          //===============================================================================================
 384          void ProbeAlar()                        // 探测器报警,有线报警
 385          {
 386   1              unsigned char idata luc_temp  ;
 387   1              guc_AlarCnt = 0;                                                                                                // 电话号码清0,表示每次报警都从第一组电话号码开始拔
 388   1              guc_bit_SenAlar = 1;                                                                                    // 传感器报警
 389   1              guc_BitTel = 1 ;                                                                                                // 拔打电话标致位
 390   1              ONAlarSoun() ;                                                                                                  // 打开警号
 391   1              luc_temp = 0;                                                                                                   // 返回数据区为0
 392   1              RxTCPSame(MPROBE_ALAR,1,&luc_temp);                                                             // 返回网络模块
 393   1      }
 394          
 395          
 396          
 397          
 398          //===============================================================================================
 399          //语法格式:     RsDisProtoc()   
 400          //实现功能: 处理串口协议
 401          //参数:         无
 402          //返回:         无
 403          //创建时间:2008-12-26          修改时间:
 404          //创建人员:                    修改人员:
 405          //===============================================================================================
 406          void RsDisProtoc()
 407          {
 408   1              unsigned char data luc_type;
 409   1              luc_type = RsBuf[1];                                                                                                                    // 获取命令字
 410   1              switch(luc_type)
 411   1              {
 412   2                      case SET_COM_PHONE                      :       SetComPhone();                          break;                  // 设置串口电话号码
 413   2                      case QUERIES_COM_PHONE          :       QueriesComPhone();                      break;                  // 查询串口电话号码
 414   2      //              case DEL_COM_PHONE                      :       DelComPhone();                          break;                  // 删除串口电话号码
 415   2                      case SET_COM_ARMED                      :       SetComArmed();                          break;                  // 设置串口布/撤防
 416   2                      case QUERIES_COM_ARMED          :       QueriesComArmed();                      break;                  // 查询串口布/撤防
 417   2                      case SET_COM_WAR_TIME           :       SetComWarTime();                        break;                  // 设置串口警号声时间
 418   2                      case QUERIES_COM_WAR_TIME       :       QueriesComAlarTimee();          break;                  // 查询串口警号声时间
 419   2                      case TEL_ALARM_KEEP_ALIVE       :       SetTelKeepAlive();                      break;                  // 心跳 
 420   2                      case MPROBE_ALAR                        :       ProbeAlar() ;                           break;                  // 探测器报警,有线报警
 421   2                      default:break;
 422   2              }
 423   1      }
 424          
 425          
 426          //===============================================================================================
 427          //语法格式:     ScanComProtoc() 
C51 COMPILER V7.06   DVS_COMPROTOC                                                         02/27/2009 15:46:10 PAGE 8   

 428          //实现功能: 扫描串口协议
 429          //参数:         无
 430          //返回:         无
 431          //创建时间:2008-12-24          修改时间:
 432          //创建人员:                    修改人员:
 433          //===============================================================================================
 434          void ScanComProtoc()
 435          {
 436   1      //      unsigned char data luc_i ; 
 437   1              //if(guc_bitRsCom)
 438   1              //{
 439   1                      ES = 0 ;                                                                                                                                //关闭接收中断,防止再接收产生的干扰             
 440   1                      TR2 =  0;                                                                                                                               //关闭定时器2
 441   1              //      if(RsBuf[1]==TEL_ALARM_KEEP_ALIVE)SetTelKeepAlive();                                    //心跳
 442   1              //      else if(judgeTCPSame()) 
 443   1                      RsDisProtoc();                                                                                                                  //判断协议是否相同
 444   1                      RsBuf[0] = 0x00;
 445   1              //      for(luc_i = 0 ; luc_i < 30 ; luc_i ++)
 446   1              //      {
 447   1              //              RsBuf[luc_i] = 0x00;
 448   1              //      }
 449   1                      ES = 1 ;                                                                                                                                //恢复接收      
 450   1                      TR2 =  1;                                                                                                                               //开启定时器2
 451   1                      guc_bitRsCom = 0;
 452   1      //      }
 453   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    746    ----
   CONSTANT SIZE    =      9    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      11
   IDATA SIZE       =   ----      27
   BIT SIZE         =   ----       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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