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

📄 dvs-funset.lst

📁 电话报警主机AT89S52单片机并带有网络模块通信协议
💻 LST
📖 第 1 页 / 共 5 页
字号:
 336          //============================================================================================
 337          void SetPass()
 338          {
 339   1              unsigned char idata luc_data,luc_i;                                                             //DTMF解码数据  
 340   1              unsigned char idata luc_DataLen = 0;                                                    //DTMF解码数据长度      
 341   1              unsigned char idata luc_Buf[4];
 342   1              bit bit_ok;
 343   1              while(1)
 344   1              {
 345   2                      if(guc_Timer0 == 0) break;
 346   2                      luc_data = DTMF();
 347   2                      if(luc_data==0x0c)
 348   2                      {
 349   3                              SuccBuzzer();                                                                                   //设置成功时发出的声音
 350   3                              while(1)
 351   3                              {
 352   4                                      luc_data = DTMF();
 353   4                                      if(guc_Timer0 == 0)             break;                                                          //如果按键长时间没有按,则退出函数      
 354   4                                      if((luc_DataLen<=4)&&(0<luc_data)&&(luc_data<=10))
 355   4                                      {
 356   5                                              if(luc_data==10)luc_data = 0;
 357   5                                              luc_Buf[luc_DataLen++] = luc_data;
 358   5                                              SuccBuzzer();                                                                                   //设置成功时发出的声音
 359   5                                      }
 360   4                                      if(luc_data==0x0b)
 361   4                                      {
 362   5                                              SuccBuzzer();
 363   5                                              luc_DataLen = 0 ;                                                                               //"*"键重新输入
 364   5                                      }
 365   4                                      if(luc_data==0x0c)                                                                                      //以"#"键确定,比较密码
C51 COMPILER V7.06   DVS_FUNSET                                                            03/10/2009 18:23:39 PAGE 7   

 366   4                                      {
 367   5                                              for(luc_i = 0 ; luc_i < 4 ; luc_i ++)
 368   5                                              {
 369   6                                                      if(guc_PassBuf[luc_i] == luc_Buf[luc_i]) bit_ok = 1;//如果密码相等处理,否则退出
 370   6                                                      else
 371   6                                                      {
 372   7                                                              bit_ok = 0;
 373   7                                                              break;
 374   7                                                      }
 375   6                                              }
 376   5                                              if(bit_ok) SetPass_NEW();
 377   5                                              else if(luc_data!=0)  FailBuzzer();                                     //设置失败时发出的声音
 378   5                                              break;
 379   5                                      }
 380   4                              }
 381   3                              break;
 382   3                      }
 383   2                      else if(luc_data!=0)  FailBuzzer();                                                             //设置失败时发出的声音
 384   2              }
 385   1      }
 386          
 387          //============================================================================================
 388          //语法格式:SetTiGoge()
 389          //实现功能:设置共同的时间次数
 390          //参数:        无
 391          //返回值:      电话拔出的结果
 392          //创建时间:2008-11-30          修改时间:
 393          //创建人员:                    修改人员:
 394          //============================================================================================
 395          unsigned char SetTiGoge()
 396          {
 397   1              unsigned char data luc_SData;
 398   1              unsigned char data luc_data;                                                            //DTMF解码数据  
 399   1              unsigned char data luc_DataLen = 0;                                                     //DTMF解码数据长度      
 400   1              unsigned char data luc_Buf[3];
 401   1              for(luc_data = 0; luc_data < 3 ; luc_data ++)
 402   1              {
 403   2                      luc_Buf[luc_data]=0;
 404   2              }
 405   1              while(1)
 406   1              {
 407   2                      if(guc_Timer0 == 0) break;
 408   2                      luc_data = DTMF();
 409   2                      if(luc_data==0x0c)
 410   2                      {
 411   3                              SuccBuzzer();                                                                           //设置成功时发出的声音
 412   3                              while(1)
 413   3                              {
 414   4                                      luc_data = DTMF();
 415   4                                      if(guc_Timer0 == 0) break;                                              //如果按键长时间没有按,则退出函数
 416   4                                      if((0<luc_data)&&(luc_data<=10))
 417   4                                      {
 418   5                                              if(luc_data==10)luc_data = 0;                           //DTMF用10表示0
 419   5                                              luc_Buf[luc_DataLen++]= luc_data;       
 420   5                                              SuccBuzzer();                                                           //设置成功时发出的声音
 421   5                                      }
 422   4                                      if((2<luc_DataLen)&&(luc_data!=0))
 423   4                                      {
 424   5                                              luc_DataLen = 0;                                                        //重新输入
 425   5                                              FailBuzzer();                                                           //设置失败时发出的声音
 426   5                                      }
 427   4                                      if(luc_data==0x0b)
C51 COMPILER V7.06   DVS_FUNSET                                                            03/10/2009 18:23:39 PAGE 8   

 428   4                                      {
 429   5                                              SuccBuzzer();                                                           //设置成功时发出的声音
 430   5                                              luc_DataLen = 0;                                                        //"*"键重新输入
 431   5                                      }
 432   4                                      if(luc_data==0x0c)
 433   4                                      {
 434   5                                              switch(luc_DataLen)                                                     //转为10进制
 435   5                                              {
 436   6                                                      case 1: luc_SData = luc_Buf[0];                                                                 break;
 437   6                                                      case 2: luc_SData = luc_Buf[0]*10+luc_Buf[1];                                   break;
 438   6                                                      case 3: luc_SData = luc_Buf[0]*100+luc_Buf[1]*10+luc_Buf[2];    break;
 439   6                                              }
 440   5                                              return luc_SData;
 441   5                                      }
 442   4                              }
 443   3                              break;
 444   3                      }
 445   2                      else if(luc_data!=0) FailBuzzer();                                              //设置失败时发出的声音
 446   2              }
 447   1              return 0;
 448   1      }
 449          //============================================================================================
 450          //语法格式:SetGogeTiw()
 451          //实现功能:设置共同的两次设置
 452          //参数:        无
 453          //返回值:      执行1或10,设置失败0
 454          //创建时间:2008-11-30          修改时间:
 455          //创建人员:                    修改人员:
 456          //============================================================================================  
 457          unsigned char SetGogeTiw()
 458          {
 459   1              unsigned char data luc_data;
 460   1              unsigned char data luc_temp;
 461   1              while(1)
 462   1              {
 463   2                      if(guc_Timer0 == 0) break;
 464   2                      luc_data = DTMF();
 465   2                      if(luc_data==0x0c)
 466   2                      {
 467   3                              SuccBuzzer();                                                                                           //设置成功时发出的声音
 468   3                              while(1)
 469   3                              {
 470   4                                      luc_data = DTMF();
 471   4                                      if(guc_Timer0 == 0) break;                                                              //如果按键长时间没有按,则退出函数
 472   4                                      if((luc_data == 10)||(luc_data == 1)) 
 473   4                                      {
 474   5                                              luc_temp = luc_data;
 475   5                                              SuccBuzzer();                                                                           //设置成功时发出的声音
 476   5                                              while(1)
 477   5                                              {
 478   6                                                      luc_data = DTMF();
 479   6                                                      if(guc_Timer0 == 0) break;                                              //如果按键长时间没有按,则退出函数
 480   6                                                      if(luc_data ==0x0c)
 481   6                                                      {
 482   7                                                               return luc_temp;       
 483   7                                                      }
 484   6                                                      else if(luc_data!=0)  FailBuzzer();                             //设置失败时发出的声音
 485   6                                              }
 486   5                                              break;
 487   5                                      }
 488   4                                      else if(luc_data!=0) FailBuzzer();                                              //设置失败时发出的声音
 489   4                              }
C51 COMPILER V7.06   DVS_FUNSET                                                            03/10/2009 18:23:39 PAGE 9   

 490   3                              break;
 491   3                      }
 492   2                      else if(luc_data!=0) FailBuzzer();                                                              //设置失败时发出的声音
 493   2              }
 494   1              return 0 ;
 495   1      }
 496          
 497          
 498          
 499          
 500          
 501          
 502          //============================================================================================
 503          //语法格式:SetRingCnt()
 504          //实现功能:设置振铃次数
 505          //参数:        无
 506          //返回值:      无

⌨️ 快捷键说明

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