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

📄 dvs-v1.0.lst

📁 电话报警主机AT89S52单片机并带有网络模块通信协议
💻 LST
📖 第 1 页 / 共 5 页
字号:
 507   2              }
 508   1      }
 509          
 510          
 511          
 512          //===============================================================================================
 513          //语法格式:SaveRFAdd()
 514          //实现功能:保存设置解码地址
 515          //参数:        要存入的位置,和数据
 516          //返回值:      无
 517          //创建时间:2008-11-30          修改时间:
 518          //创建人员:                    修改人员:
 519          //===============================================================================================       
 520          void SaveRFAdd(unsigned char auc_sea,unsigned char *p_data,bit SD)
 521          {
 522   1              unsigned char data luc_i;
 523   1              for(luc_i = 0; luc_i < 3 ; luc_i ++)
 524   1              {
 525   2                      WrEEPROM(R315_STAR_ADDR+3*auc_sea+luc_i,*(p_data+luc_i));       
 526   2              }
 527   1              if(SD==1)       WrEEPROM(Alar_Star_Addr+auc_sea,'O');                                   //保存解码数据
 528   1              else            WrEEPROM(Alar_Star_Addr+auc_sea,'C');                                   //删除解码数据
 529   1      }
 530          
 531          
 532          
 533          //===============================================================================================
 534          //语法格式:SetRemAddr()
 535          //实现功能:设置遥控地址并保存
 536          //参数:        无
 537          //返回值:      无
 538          //创建时间:2008-11-30          修改时间:
 539          //创建人员:                    修改人员:
 540          //===============================================================================================       
 541          void SetRemAddr()                                                                                                                       //设置地址
 542          {
 543   1              unsigned char data luc_i,luc_j;
 544   1              ClearRem();                                                                                                                             //清除解码后的数据
 545   1              SuccBuzzer();                                                                                                                   //设置成功时发出的声音
 546   1              while(1)
 547   1              {
 548   2                      if(guc_Timer0 == 0) break;                                                                                      //如果按键长时间没有按,则退出函数
 549   2                      RemIn();                                                                                                                        //不断扫描是否解码
 550   2                      if(guc_bit_RemCom==1)                                                                                           //有传感器来
 551   2                      {
C51 COMPILER V7.06   DVS_V1_0                                                              03/10/2009 18:23:25 PAGE 10  

 552   3                              for(luc_j = 0; luc_j < 4 ; luc_j ++)
 553   3                              {
 554   4                                      for(luc_i = 0; luc_i < 2 ; luc_i ++)
 555   4                                      {
 556   5                                              WrEEPROM(REM_STAR_ADDR+3*luc_j+luc_i,guc_R315Buf[luc_i]);//保存地址
 557   5                                      }
 558   4                                      WrEEPROM(REM_STAR_ADDR+3*luc_j+2,RemDataTab[luc_j]);            //保存数据
 559   4                              }
 560   3                              SuccBuzzer();                                                                                                   //设置成功时发出的声音
 561   3                              ClearRem();     
 562   3                              break;
 563   3                      }
 564   2              }
 565   1      }
 566          
 567          
 568          
 569          //===============================================================================================
 570          //语法格式:StarSetFun()
 571          //实现功能:开始设置各种功能
 572          //参数:        无
 573          //返回值:      无
 574          //创建时间:2008-11-30          修改时间:
 575          //创建人员:                    修改人员:
 576          //===============================================================================================       
 577          void StarSetFun()
 578          {
 579   1              HANDUP = 1;                                                                                     //摘机
 580   1              if(guc_bitPhSet)SET = 0;                                                        //如果是远程控不用打开继电器
 581   1              else    SET = 1;                                                                        //继电器打开
 582   1              guc_Timer0 = SET_REM_TIM;                                                       //按键定时
 583   1      }
 584          
 585          
 586          
 587          //===============================================================================================
 588          //语法格式:OverSetFun()
 589          //实现功能:结束设置各种功能
 590          //参数:        无
 591          //返回值:      无
 592          //创建时间:2008-11-30          修改时间:
 593          //创建人员:                    修改人员:
 594          //===============================================================================================       
 595          void OverSetFun()
 596          {
 597   1              guc_Timer0 = 0;                                                                         //计数器清0
 598   1      //      guc_bitAlarPul2 = 0;                                                            //表示已经报过警了
 599   1              HANDUP = 0;                                                                                     //挂机
 600   1              SET = 0;                                                                                        //继电器打开
 601   1              Delay1Ms(60);                                                                           //等待继电器延时,防止干扰断线报警
 602   1      }
 603          
 604          
 605          //===============================================================================================
 606          //语法格式:SetRemotAddr()
 607          //实现功能:设置遥控地址
 608          //参数:        无
 609          //返回值:      无
 610          //创建时间:2008-11-30          修改时间:
 611          //创建人员:                    修改人员:
 612          //===============================================================================================       
 613          void SetRemotAddr()
C51 COMPILER V7.06   DVS_V1_0                                                              03/10/2009 18:23:25 PAGE 11  

 614          {
 615   1              unsigned char data luc_i;
 616   1              unsigned char data luc_data;                                                                    //DTMF解码数据  
 617   1              unsigned char data luc_DataLen = 0;                                                             //DTMF解码数据长度      
 618   1              unsigned char data luc_Buf[4];
 619   1              bit bit_ok;
 620   1              StarSetFun();                                                                                                   //开始设置各种功能
 621   1              while(1)
 622   1              {
 623   2                      if(guc_Timer0 == 0) break;
 624   2                      luc_data = DTMF();
 625   2                      if(luc_data==0x0c)
 626   2                      {
 627   3                              FailBuzzer();                                                                                   //设置失败时发出的声音
 628   3                              ALARM_LED = 1;
 629   3                              while(1)
 630   3                              {
 631   4                                      luc_data = DTMF();
 632   4                                      if(guc_Timer0 == 0) break;                                                      //如果按键长时间没有按,则退出函数
 633   4                                      if((0<luc_data)&&(luc_data<=10))
 634   4                                      {
 635   5                                              if(luc_data==10)luc_data = 0;
 636   5                                              luc_Buf[luc_DataLen++] = luc_data;
 637   5                                      }
 638   4                                      if((4<luc_DataLen)&&(luc_data!=0))
 639   4                                      {
 640   5                                              luc_DataLen = 0;                                                                //重新输入
 641   5                                              FailBuzzer();                                                                   //设置失败时发出的声音
 642   5                                      }
 643   4                                      if(luc_data==0x0b)
 644   4                                      {
 645   5                                              SuccBuzzer();                                                                   //设置成功时发出的声音
 646   5                                              luc_DataLen = 0;                                                                //"*"键重新输入
 647   5                                      }
 648   4                                      if(luc_data==0x0c)
 649   4                                      {
 650   5                                              guc_Timer0 = 800;
 651   5                                              for(luc_i = 0 ; luc_i < 4 ; luc_i ++)
 652   5                                              {
 653   6                                                      if(luc_Buf[luc_i] ==  RemotNubTab[luc_i]) bit_ok = 1;
 654   6                                                      else 
 655   6                                                      {
 656   7                                                              bit_ok = 0;
 657   7                                                              break;
 658   7                                                      }
 659   6                                              }
 660   5                                              if(bit_ok == 1)SetRemAddr();                            //设置地址
 661   5                                              else    FailBuzzer();                                           //设置失败时发出的声音
 662   5                                              break;
 663   5                                      }
 664   4                              }       
 665   3                              break;          
 666   3                      }
 667   2                      else if(luc_data!=0) FailBuzzer();                                              //设置失败时发出的声音
 668   2              }
 669   1              OverSetFun();                                                                                           //结束设置各种功能
 670   1      }
 671          
 672          
 673          
 674          
 675          //===============================================================================================
C51 COMPILER V7.06   DVS_V1_0                                                              03/10/2009 18:23:25 PAGE 12  

 676          //语法格式:ScanSetRFAddr()
 677          //实现功能:设置解码地址

⌨️ 快捷键说明

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