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

📄 xiugai.lst

📁 此程序为非接触式IC的读写程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
 309   4                P1_4=1;   //关继电器
 310   4                IE=0x00;  //关所有中断
 311   4                flag=NO_USER;
 312   4               send_byte(CMD_RESET);
 313   4               for(i=0;i<3;i++)
 314   4               {
 315   5                write7279(DECODE0+i,0);
 316   5                write7279(SEGON,23);
 317   5               }
 318   4               delay10ms(60);
 319   4               send_byte(CMD_RESET);
 320   4               memcpy(cTransBuffer,FengM,sizeof(FengM)); //设置蜂鸣器
 321   4               JMY_TRANS(cTransBuffer);
 322   4               if(MissID[10]==0)
 323   4               Write24c02(0,30); //复位掉电标志位
 324   4               else if(MissID[11]==0)
 325   4               Write24c02(0,40); //复位掉电标志位
 326   4               else if(MissID[12]==0)
 327   4               Write24c02(0,50); //复位掉电标志位
 328   4               else if(MissID[13]==0)
 329   4               Write24c02(0,60); //复位掉电标志位
 330   4               else if(MissID[14]==0)
 331   4               Write24c02(0,70); //复位掉电标志位
 332   4               else if(MissID[15]==0)
 333   4               Write24c02(0,80); //复位掉电标志位
 334   4               else if(MissID[16]==0)
 335   4               Write24c02(0,90); //复位掉电标志位
 336   4               else if(MissID[17]==0)
 337   4               Write24c02(0,100); //复位掉电标志位
 338   4               else if(MissID[18]==0)
 339   4               Write24c02(0,110); //复位掉电标志位
 340   4               else if(MissID[19]==0)
 341   4               Write24c02(0,120); //复位掉电标志位
 342   4              }
 343   3          }
 344   2         while(P3_2==0)   //不断的检测是否有卡,有卡则执行以下程序
 345   2           {
 346   3             ET1=0;            //关闭定时器1中断
 347   3             time=0;
 348   3             memcpy(cTransBuffer,ComReadBlock2,sizeof(ComReadBlock2)); //Read block2
 349   3             JMY_TRANS(cTransBuffer);
 350   3              //在这里需要添加加密解密程序
 351   3              //if(cStatus==0&&cTransBuffer[1]==ComReadBlock2[1])
 352   3              if(flag == NO_USER)     //判断标志位确定机器状态
 353   3              {
 354   4      
 355   4              if(cTransBuffer[2]==0x01&& cTransBuffer[3]==0x02&&cTransBuffer[4]==0x03&&cTransBuffer[5]==0x04)
 356   4                  {
 357   5                   P1_4=1;   //关继电器
 358   5                   for(i=0;i<=11;i++)
 359   5                     {
 360   6                     Write24c02(cTransBuffer[i+6],i);  //write cTransBuffer into 24c02 0-11 adress
 361   6                     }
 362   5                   for(i=0;i<=5;i++)
 363   5                      {
C51 COMPILER V7.50   XIUGAI                                                                11/27/2006 17:18:35 PAGE 7   

 364   6                        Key[i]=Read24c02(i+6);
 365   6                      }
 366   5                      /*
 367   5                      Write24c02(0,30);
 368   5                      Write24c02(0,40);
 369   5                      Write24c02(0,50);
 370   5                      Write24c02(0,60);
 371   5                      Write24c02(0,70);
 372   5                      Write24c02(0,80);
 373   5                      Write24c02(0,90);
 374   5                      Write24c02(0,100);
 375   5                      Write24c02(0,110);
 376   5                      Write24c02(0,120);*/
 377   5                    continue;
 378   5                  }
 379   4      
 380   4      
 381   4              else if(cTransBuffer[2]==Key[0]&&cTransBuffer[3]==Key[1]&&cTransBuffer[4]==Key[2]&&cTransBuffer[5]
             -==Key[3]&&cTransBuffer[6]==Key[4]&&cTransBuffer[7]==Key[5])
 382   4                  {
 383   5      
 384   5      ////////////////掉电回刷部分
 385   5                      if(MissIDFlag==1)   //先判断总掉电标志位
 386   5                      {
 387   6      ///////////////////第一组
 388   6                      if(MissID[10]==1)
 389   6                      {
 390   7                       for(i=0;i<=8;i++)
 391   7                       {
 392   8                        MissID[i]=Read24c02(i+21);
 393   8                       }
 394   7                       if(MissID[0]==cTransBuffer[8]&&MissID[1]==cTransBuffer[9]&&MissID[2]==cTransBuffer[10]&&M
             -issID[3]==cTransBuffer[11])
 395   7                       {
 396   8                       for(i=0;i<=8;i++)
 397   8                       {
 398   9                        ComWriteBlock2[i+16]=MissID[i];
 399   9                       }
 400   8                       memcpy(WriteBuffer,ComWriteBlock2,sizeof(ComWriteBlock2)); //写卡的块2
 401   8                       JMY_TRANS(WriteBuffer);
 402   8                       MissID[10]=0;
 403   8                       Write24c02(0,30); //复位掉电标志位
 404   8                       DisplayCard();  //回刷显示子函数
 405   8                       delay10ms(1000);
 406   8                       send_byte(CMD_RESET);
 407   8                       break;
 408   8                       }
 409   7                      }
 410   6      ///////////////////第2组
 411   6                      if(MissID[11]==1)
 412   6                      {
 413   7                       for(i=0;i<=8;i++)
 414   7                       {
 415   8                        MissID[i]=Read24c02(i+31);
 416   8                       }
 417   7                       if(MissID[0]==cTransBuffer[8]&&MissID[1]==cTransBuffer[9]&&MissID[2]==cTransBuffer[10]&&M
             -issID[3]==cTransBuffer[11])
 418   7                       {
 419   8                       for(i=0;i<=8;i++)
 420   8                       {
 421   9                        ComWriteBlock2[i+16]=MissID[i];
 422   9                       }
C51 COMPILER V7.50   XIUGAI                                                                11/27/2006 17:18:35 PAGE 8   

 423   8                       memcpy(WriteBuffer,ComWriteBlock2,sizeof(ComWriteBlock2)); //写卡的块2
 424   8                       JMY_TRANS(WriteBuffer);
 425   8                       MissID[11]=0;
 426   8                       Write24c02(0,40); //复位掉电标志位
 427   8                       DisplayCard();
 428   8                       delay10ms(1000);
 429   8                       send_byte(CMD_RESET);
 430   8                       break;
 431   8                       }
 432   7                      }
 433   6      ///////////////////第3
 434   6                      if(MissID[12]==1)
 435   6                      {
 436   7                       for(i=0;i<=8;i++)
 437   7                       {
 438   8                        MissID[i]=Read24c02(i+41);
 439   8                       }
 440   7                       if(MissID[0]==cTransBuffer[8]&&MissID[1]==cTransBuffer[9]&&MissID[2]==cTransBuffer[10]&&M
             -issID[3]==cTransBuffer[11])
 441   7                       {
 442   8                       for(i=0;i<=8;i++)
 443   8                       {
 444   9                        ComWriteBlock2[i+16]=MissID[i];
 445   9                       }
 446   8                       memcpy(WriteBuffer,ComWriteBlock2,sizeof(ComWriteBlock2)); //写卡的块2
 447   8                       JMY_TRANS(WriteBuffer);
 448   8                       MissID[12]=0;
 449   8                       Write24c02(0,50); //复位掉电标志位
 450   8                       DisplayCard();
 451   8                       delay10ms(1000);
 452   8                       send_byte(CMD_RESET);
 453   8                       break;
 454   8                       }
 455   7                      }
 456   6      ///////////////////第4
 457   6                      if(MissID[13]==1)
 458   6                      {
 459   7                       for(i=0;i<=8;i++)
 460   7                       {
 461   8                        MissID[i]=Read24c02(i+51);
 462   8                       }
 463   7                       if(MissID[0]==cTransBuffer[8]&&MissID[1]==cTransBuffer[9]&&MissID[2]==cTransBuffer[10]&&M
             -issID[3]==cTransBuffer[11])
 464   7                       {
 465   8                       for(i=0;i<=8;i++)
 466   8                       {
 467   9                        ComWriteBlock2[i+16]=MissID[i];
 468   9                       }
 469   8                       memcpy(WriteBuffer,ComWriteBlock2,sizeof(ComWriteBlock2)); //写卡的块2
 470   8                       JMY_TRANS(WriteBuffer);
 471   8                       MissID[13]=0;
 472   8                       Write24c02(0,60); //复位掉电标志位
 473   8                       DisplayCard();
 474   8                       delay10ms(1000);
 475   8                       send_byte(CMD_RESET);
 476   8                       break;
 477   8                       }
 478   7                      }
 479   6      ///////////////////第5
 480   6                      if(MissID[14]==1)
 481   6                      {
 482   7                       for(i=0;i<=8;i++)
C51 COMPILER V7.50   XIUGAI                                                                11/27/2006 17:18:35 PAGE 9   

 483   7                       {
 484   8                        MissID[i]=Read24c02(i+61);
 485   8                       }
 486   7                       if(MissID[0]==cTransBuffer[8]&&MissID[1]==cTransBuffer[9]&&MissID[2]==cTransBuffer[10]&&M
             -issID[3]==cTransBuffer[11])
 487   7                       {
 488   8                       for(i=0;i<=8;i++)
 489   8                       {
 490   9                        ComWriteBlock2[i+16]=MissID[i];
 491   9                       }
 492   8                       memcpy(WriteBuffer,ComWriteBlock2,sizeof(ComWriteBlock2)); //写卡的块2
 493   8                       JMY_TRANS(WriteBuffer);
 494   8                       MissID[14]=0;
 495   8                       Write24c02(0,70); //复位掉电标志位
 496   8                       DisplayCard();
 497   8                       delay10ms(1000);
 498   8                       send_byte(CMD_RESET);
 499   8                       break;
 500   8                       }
 501   7                      }
 502   6      ///////////////////第6
 503   6                      if(MissID[15]==1)
 504   6                      {
 505   7                       for(i=0;i<=8;i++)
 506   7                       {
 507   8                        MissID[i]=Read24c02(i+71);
 508   8                       }
 509   7                       if(MissID[0]==cTransBuffer[8]&&MissID[1]==cTransBuffer[9]&&MissID[2]==cTransBuffer[10]&&M
             -issID[3]==cTransBuffer[11])
 510   7                       {
 511   8                       for(i=0;i<=8;i++)
 512   8                       {
 513   9                        ComWriteBlock2[i+16]=MissID[i];
 514   9                       }
 515   8                       memcpy(WriteBuffer,ComWriteBlock2,sizeof(ComWriteBlock2)); //写卡的块2
 516   8                       JMY_TRANS(WriteBuffer);
 517   8                       MissID[15]=0;
 518   8                       Write24c02(0,80); //复位掉电标志位
 519   8                       DisplayCard();
 520   8                       delay10ms(1000);
 521   8                       send_byte(CMD_RESET);
 522   8                       break;
 523   8                       }
 524   7                      }
 525   6      ///////////////////第7
 526   6                      if(MissID[16]==1)
 527   6                      {
 528   7                       for(i=0;i<=8;i++)
 529   7                       {
 530   8                        MissID[i]=Read24c02(i+81);
 531   8                       }
 532   7                       if(MissID[0]==cTransBuffer[8]&&MissID[1]==cTransBuffer[9]&&MissID[2]==cTransBuffer[10]&&M
             -issID[3]==cTransBuffer[11])
 533   7                       {
 534   8                       for(i=0;i<=8;i++)
 535   8                       {
 536   9                        ComWriteBlock2[i+16]=MissID[i];
 537   9                       }
 538   8                       memcpy(WriteBuffer,ComWriteBlock2,sizeof(ComWriteBlock2)); //写卡的块2
 539   8                       JMY_TRANS(WriteBuffer);
 540   8                       MissID[16]=0;
 541   8                       Write24c02(0,90); //复位掉电标志位
C51 COMPILER V7.50   XIUGAI                                                                11/27/2006 17:18:35 PAGE 10  

 542   8                       DisplayCard();
 543   8                       delay10ms(1000);
 544   8                       send_byte(CMD_RESET);
 545   8                       break;
 546   8                       }
 547   7                      }
 548   6      ///////////////////第8
 549   6                      if(MissID[17]==1)
 550   6                      {
 551   7                       for(i=0;i<=8;i++)
 552   7                       {
 553   8                        MissID[i]=Read24c02(i+91);
 554   8                       }
 555   7                       if(MissID[0]==cTransBuffer[8]&&MissID[1]==cTransBuffer[9]&&MissID[2]==cTransBuffer[10]&&M
             -issID[3]==cTransBuffer[11])
 556   7                       {
 557   8                       for(i=0;i<=8;i++)
 558   8                       {
 559   9                        ComWriteBlock2[i+16]=MissID[i];
 560   9                       }
 561   8                       memcpy(WriteBuffer,ComWriteBlock2,sizeof(ComWriteBlock2)); //写卡的块2
 562   8                       JMY_TRANS(WriteBuffer);
 563   8                       MissID[17]=0;
 564   8                       Write24c02(0,100); //复位掉电标志位
 565   8                       DisplayCard();
 566   8                       delay10ms(1000);
 567   8                       send_byte(CMD_RESET);
 568   8                       break;
 569   8                       }
 570   7                      }
 571   6      ///////////////////第9
 572   6                      if(MissID[18]==1)
 573   6                      {
 574   7                       for(i=0;i<=8;i++)
 575   7                       {
 576   8                        MissID[i]=Read24c02(i+101);
 577   8                       }
 578   7                       if(MissID[0]==cTransBuffer[8]&&MissID[1]==cTransBuffer[9]&&MissID[2]==cTransBuffer[10]&&M
             -issID[3]==cTransBuffer[11])
 579   7                       {
 580   8                       for(i=0;i<=8;i++)
 581   8                       {
 582   9                        ComWriteBlock2[i+16]=MissID[i];
 583   9                       }
 584   8                       memcpy(WriteBuffer,ComWriteBlock2,sizeof(ComWriteBlock2)); //写卡的块2
 585   8                       JMY_TRANS(WriteBuffer);
 586   8                       MissID[18]=0;
 587   8                       Write24c02(0,110); //复位掉电标志位
 588   8                       DisplayCard();
 589   8                       delay10ms(1000);
 590   8                       send_byte(CMD_RESET);
 591   8                       break;
 592   8                       }
 593   7                      }
 594   6      ///////////////////第10
 595   6                      if(MissID[19]==1)
 596   6                      {
 597   7                       for(i=0;i<=8;i++)
 598   7                       {
 599   8                        MissID[i]=Read24c02(i+111);
 600   8                       }
 601   7                       if(MissID[0]==cTransBuffer[8]&&MissID[1]==cTransBuffer[9]&&MissID[2]==cTransBuffer[10]&&M
C51 COMPILER V7.50   XIUGAI                                                                11/27/2006 17:18:35 PAGE 11  

             -issID[3]==cTransBuffer[11])
 602   7                       {
 603   8                       for(i=0;i<=8;i++)
 604   8                       {
 605   9                        ComWriteBlock2[i+16]=MissID[i];
 606   9                       }
 607   8                       memcpy(WriteBuffer,ComWriteBlock2,sizeof(ComWriteBlock2)); //写卡的块2
 608   8                       JMY_TRANS(WriteBuffer);
 609   8                       MissID[19]=0;
 610   8                       Write24c02(0,120); //复位掉电标志位
 611   8                       DisplayCard();
 612   8                       delay10ms(1000);
 613   8                       send_byte(CMD_RESET);
 614   8                       break;
 615   8                       }
 616   7                      }

⌨️ 快捷键说明

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