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

📄 dvs-funset.lst

📁 电话报警主机AT89S52单片机并带有网络模块通信协议
💻 LST
📖 第 1 页 / 共 5 页
字号:
 165   8                                                                      luc_data = DTMF();
 166   8                                                                      if(guc_Timer0 == 0) break;                                      //如果按键长时间没有按,则退出函数
 167   8                                                                      if(luc_data==0x0c)                                                      //删除所以电话号码
 168   8                                                                      {
 169   9                                                                              for(luc_i = 0; luc_i < 9; luc_i ++)
 170   9                                                                              {
 171  10                                                                                      WrEEPROM(luc_i*PH_CODE_LEN+STER_ADDR,0xff);     //保存0xff则删除电话号码
 172  10                                                                                      Del_TAB[0]=luc_i;
 173  10                                                                                      judgeRAYTC(SET_COM_PHONE,1,Del_TAB) ;   //返回删除号码协议
 174  10                                                                              }
 175   9                                                                              SuccBuzzer();                                                   //设置成功时发出的声音
 176   9                                                                              return;
 177   9                                                                      }
 178   8                                                                      else if(luc_data!=0) FailBuzzer();                      //设置失败时发出的声音
 179   8                                                              }
C51 COMPILER V7.06   DVS_FUNSET                                                            03/10/2009 18:23:39 PAGE 4   

 180   7                                                      }
 181   6                                                      if(luc_data==0x0c)                                                                      //以"#"键确定
 182   6                                                      {
 183   7                                                              if(luc_DataLen == 0)                                                    //如果没有按电话号码。则删除电话号码
 184   7                                                              {
 185   8                                                                      for(luc_i = 0 ; luc_i < PH_CODE_LEN ; luc_i++)
 186   8                                                                      {
 187   9                                                                              WrEEPROM(STER_ADDR+PH_CODE_LEN*(luc_temp-1)+luc_i,0xff);//保存0xff则删除电话号码
 188   9                                                                      }       
 189   8                                                                      Del_TAB[0]=(luc_temp-1);
 190   8                                                                      judgeRAYTC(SET_COM_PHONE,1,Del_TAB);                                    //返回删除号码协议
 191   8                                                                      SuccBuzzer();                                                                   //设置成功时发出的声音
 192   8                                                              }
 193   7                                                              else
 194   7                                                              {
 195   8                                                                      for(luc_i = luc_DataLen; luc_i < PH_CODE_LEN ; luc_i++)//不满20位的加0xFF
 196   8                                                                      {
 197   9                                                                              luc_Buf[2+luc_DataLen] = 0xff;
 198   9                                                                      }
 199   8                                                                      for(luc_i = 0 ; luc_i < PH_CODE_LEN ; luc_i++)
 200   8                                                                      {
 201   9                                                                              WrEEPROM(STER_ADDR+PH_CODE_LEN*(luc_temp-1)+luc_i,luc_Buf[luc_i]);//保存电话号码
 202   9                                                                      }
 203   8                                                                      luc_Buf[0]=luc_temp-1;
 204   8                                                                      judgeRAYTC(SET_COM_PHONE,luc_DataLen+1,luc_Buf);                //返回设置号码协议
 205   8                                                                      SuccBuzzer();                                                                                   //设置成功时发出的声音
 206   8                                                              }
 207   7                                                              break;
 208   7                                                      }
 209   6                                              }
 210   5                                              break;
 211   5                                      }
 212   4                              }
 213   3                              break;
 214   3                      }
 215   2                      else if(luc_data!=0) FailBuzzer();                                                                      //设置失败时发出的声音
 216   2              }
 217   1      }
 218          //============================================================================================
 219          //语法格式:SecondPass()
 220          //实现功能:设置第2次密码
 221          //参数:        第1次密码内容
 222          //返回值:      无
 223          //创建时间:2008-11-30          修改时间:
 224          //创建人员:                    修改人员:
 225          //============================================================================================
 226          void SecondPass(unsigned char *p_Pass)
 227          {
 228   1              unsigned char data luc_i;
 229   1              unsigned char data luc_data;                                                    //DTMF解码数据  
 230   1              unsigned char data luc_DataLen = 0;                                             //DTMF解码数据长度      
 231   1              unsigned char data luc_Buf[5];
 232   1              bit bit_ok;
 233   1              luc_Buf[4] = 'O';
 234   1              while(1)
 235   1              {
 236   2                      luc_data = DTMF();
 237   2                      if(guc_Timer0 == 0) break;                                                      //如果按键长时间没有按,则退出函数
 238   2                      if((0<luc_data)&&(luc_data<=10))
 239   2                      {
 240   3                              if(luc_data==10)luc_data = 0;
 241   3                              luc_Buf[luc_DataLen++] = luc_data;      
C51 COMPILER V7.06   DVS_FUNSET                                                            03/10/2009 18:23:39 PAGE 5   

 242   3                              SuccBuzzer();                                                                   //设置成功时发出的声音
 243   3                      }
 244   2                      if((4<luc_DataLen)&&(luc_data!=0))
 245   2                      {
 246   3                              luc_DataLen = 0;                                                                //重新输入
 247   3                              FailBuzzer();                                                                   //设置失败时发出的声音
 248   3                      }
 249   2                      if(luc_data==0x0b)
 250   2                      {
 251   3                              SuccBuzzer();                                                                   //设置成功时发出的声音
 252   3                              luc_DataLen = 0;                                                                //"*"键重新输入
 253   3                      }
 254   2                      if(luc_data==0x0c)                                                                      //以"#"键确定
 255   2                      {
 256   3                              for(luc_i = 0 ; luc_i < 4 ; luc_i++)
 257   3                              {
 258   4                                      if(luc_Buf[luc_i] == *p_Pass++) bit_ok = 1;
 259   4                                      else 
 260   4                                      {
 261   5                                              bit_ok = 0;
 262   5                                              break;
 263   5                                      }
 264   4                              }
 265   3                              if(bit_ok)                                                                                      //如果两次密码相等,则保存
 266   3                              {
 267   4                                      SuccBuzzer();                                                                   //设置成功时发出的声音
 268   4                                      for(luc_i = 0 ; luc_i < 4 ; luc_i++)
 269   4                                      {
 270   5                                              WrEEPROM(luc_i+2,luc_Buf[luc_i]);                       //保存新密码
 271   5                                              guc_PassBuf[luc_i] = luc_Buf[luc_i];
 272   5                                      }
 273   4                              }
 274   3                              else  FailBuzzer();                                                                     //设置失败时发出的声音
 275   3                              break;
 276   3                      }
 277   2              }
 278   1      }
 279          
 280          
 281          //============================================================================================
 282          //语法格式:SetPass_NEW()
 283          //实现功能:设置密码
 284          //参数:        无
 285          //返回值:      无
 286          //创建时间:2008-11-30          修改时间:
 287          //创建人员:                    修改人员:
 288          //============================================================================================
 289          void SetPass_NEW()
 290          {
 291   1              unsigned char data luc_data;                                                            //DTMF解码数据  
 292   1              unsigned char data luc_DataLen = 0;                                                     //DTMF解码数据长度      
 293   1              unsigned char data luc_Buf[4];
 294   1              SuccBuzzer();                                                                           //设置成功时发出的声音
 295   1              while(1)
 296   1              {
 297   2                      luc_data = DTMF();
 298   2                      if(guc_Timer0 == 0) break;                                              //如果按键长时间没有按,则退出函数
 299   2                      if((0<luc_data)&&(luc_data<=10))
 300   2                      {
 301   3                              if(luc_data==10)luc_data = 0;
 302   3                              luc_Buf[luc_DataLen++] = luc_data;
 303   3                              SuccBuzzer();                                                           //设置成功时发出的声音
C51 COMPILER V7.06   DVS_FUNSET                                                            03/10/2009 18:23:39 PAGE 6   

 304   3                      }
 305   2                      if((4<luc_DataLen)&&(luc_data!=0))
 306   2                      {
 307   3                              luc_DataLen = 0;                                                        //重新输入
 308   3                                      FailBuzzer();                                                   //设置失败时发出的声音
 309   3                      }
 310   2                      if(luc_data==0x0b)
 311   2                      {
 312   3                              SuccBuzzer();                                                           //设置成功时发出的声音
 313   3                              luc_DataLen = 0;                                                        //"*"键重新输入
 314   3                      }
 315   2                      if(luc_data==0x0c)
 316   2                      {
 317   3                              if(luc_DataLen==4)
 318   3                              {
 319   4                                      SuccBuzzer();                                                   //设置成功时发出的声音
 320   4                                      SecondPass(luc_Buf);                                    //以"#"键确定   
 321   4                              }
 322   3                              else  FailBuzzer();                                                     //设置失败时发出的声音
 323   3                              break;
 324   3                      }
 325   2              }
 326   1      }
 327          
 328          
 329          //============================================================================================
 330          //语法格式:SetPass()
 331          //实现功能:设置密码
 332          //参数:        无
 333          //返回值:      无
 334          //创建时间:2009-02-17          修改时间:
 335          //创建人员:                    修改人员:

⌨️ 快捷键说明

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