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

📄 readermodule.lst

📁 Use this program to decode the Manchester Code of the RFID. Validate the accessibility of detected c
💻 LST
📖 第 1 页 / 共 5 页
字号:
 422   2              {
 423   3                  if (bitcount == 5)
 424   3                  {
 425   4                      if(parity & 0x01)                                       //odd parity
 426   4                      {
 427   5                              cardbytein[bytecount++]= (~(nibin>>2)) & 0x0f;
 428   5                              if (bytecount>=MAXCARDCHAR)
 429   5                              {
 430   6                                      cardbytein[bytecount+1]=0;
 431   6                                      CardDataIn      =       1;  
 432   6                                      anticollision=1;                        //kk 21/10/05
 433   6                                      cardtime        =       18;
 434   6                                      SHD=SLEEP;      //11/28/2005 9:05PM
 435   6                                      
 436   6                              }                       
 437   5                      }                
 438   4                      else
 439   4                      {                       
 440   5                              cbitcount = 0;                                                  
 441   5                              startpattern=0;
 442   5                              rdr=0;                                          //redetect upon state change of 1 to 0
 443   5                      }
 444   4                      bitcount  = 0;                                          //reset all parameter, search for the 
 445   4                      nibin     = 0;                                          //correct start pattern
 446   4                      parity =0;
 447   4                  }
 448   3              }
 449   2              else if(cbitcount >=61)         
 450   2              {
 451   3                  if (bitcount == 5)
 452   3                  {
 453   4                      if(1)//!ch)                                             //stop bit
 454   4                      {
 455   5                              cbitcount       =       0;
 456   5                              //CardDataIn      =     1;
 457   5                              rdr             =       0;      
 458   5                              columnparity    =       nibin&0x0f;
 459   5                              cardtime        =       18;
 460   5                              bytecount=0;
 461   5                              startpattern    =       0;
 462   5                              bitcount  = 0;                                  //reset all parameter, search for the 
 463   5                              nibin     = 0;                                  //correct start pattern                 
 464   5                      }
 465   4                  }
 466   3              }       
 467   2              if(cbitcount > 66)
 468   2              {
 469   3                      cbitcount       =       0;
 470   3                      //CardDataIn      =     1;
 471   3                      rdr             =       0;      
 472   3                      columnparity    =       nibin&0x0f;
 473   3                      cardtime        =       18;
 474   3                      bytecount=0;
 475   3                      startpattern    =       0;
 476   3                      bitcount  = 0;                                          //reset all parameter, search for the 
 477   3                      nibin     = 0;                                          //correct start pattern         
 478   3              }               
 479   2              clock_isr_counter1=0;           
C51 COMPILER V7.06   READERMODULE                                                          09/05/2006 01:45:27 PAGE 9   

 480   2              
 481   2              }
 482   1      
 483   1      }
 484          /*=============================================================================
 485          =============================================================================*/
 486          /******************************************
 487          serial transmit interrupt
 488          *********************************************/
 489          /*
 490          void serial (void) interrupt 4 
 491          { 
 492                  
 493                  if (RI)  
 494                  {                                       
 495                          comsinbuffer = SBUF;            
 496                          RI = 0;                          
 497                  }
 498          }
 499          */
 500          void fillintbuffer (char* buf, char len, unsigned int datano)
 501          {
 502   1              idata char i, j, t;
 503   1          idata unsigned long mult;
 504   1      
 505   1          mult = 1U;
 506   1          for (i=len, j=1; i>0; i--, j++)
 507   1          {
 508   2              t = (datano % (mult*10L)) / mult;
 509   2              mult *= 10L;
 510   2              buf [i-1] = t + '0';
 511   2                      // + '0';
 512   2          }
 513   1      }
 514          void Delay_ms(unsigned char time)
 515          {
 516   1              idata unsigned char j ;
 517   1              idata unsigned int i;
 518   1              
 519   1              
 520   1              for(j=0;j<time;j++)
 521   1              {
 522   2                      for(i=0;i<1650;i++)
 523   2                      {
 524   3                      }
 525   2              }
 526   1      }
 527          
 528          void ClearKeyBuffer (void)
 529          {
 530   1      idata unsigned char i;
 531   1              for(i=0;i<=9;i++)
 532   1                      KeyChar[i]=0;                   
 533   1      }
 534          
 535          void ShowError (void)
 536          {
 537   1              put_c('E');     //kk test
 538   1              beepbeep(3);
 539   1              masterpinCount=0;
 540   1              
 541   1              LED_GREEN=LED_OFF;
C51 COMPILER V7.06   READERMODULE                                                          09/05/2006 01:45:27 PAGE 10  

 542   1              //LED_RED = LED_OFF;
 543   1              ClearKeyBuffer();
 544   1              ResetUserEvent();
 545   1      }
 546          void put_c(unsigned char buf)
 547          {
 548   1              
 549   1      #ifndef TESTING
 550   1              return;
 551   1      #endif  
 552   1          
 553   1          TI=0;        
 554   1          SBUF=buf;
 555   1          while(!TI);
 556   1                      
 557   1      }
 558          
 559          void beep (unsigned char duration)
 560          {
 561   1         buzzer_type=1;
 562   1         buzz_duration = duration;
 563   1         buzz_counter = 1;
 564   1      }
 565          void beepbeep (unsigned char count)
 566          {
 567   1         buzzer_type = (count<<1)  ;          //(count <<1)-1
 568   1      }
 569          void ClearBuzz(void)
 570          {
 571   1              buzzer_type = 0;
 572   1          buzz_counter  = 0;
 573   1          buzz_duration = 1;
 574   1      }
 575          /***************************************************************************************************
 576          Function        :Process_Input
 577                          :taking care of tamper, push button and door sensor
 578          ****************************************************************************************************/
 579          void Process_Input(void)
 580          {
 581   1      unsigned char i;        
 582   1              if(DOORSENSOR) // Door Open
 583   1              {
 584   2                      if (!dooropentime && !(SystemDatabase.OperationMode & O_SECURITYOFF))
 585   2                              Flags.DoorOpen  = 1;
 586   2                      else if (dooropentime)
 587   2                      {
 588   3                              Flags.doorwasopened = 1;
 589   3                              Flags.DoorOpen  = 0;
 590   3                      }
 591   2                      door_relay_duration = 0;
 592   2              }
 593   1              else 
 594   1              {
 595   2                      if(Flags.DoorOpen)
 596   2                      {
 597   3                              Flags.DoorOpen=0;
 598   3                              //LED_GREEN=LED_OFF;    //1/10/2006 12:43PM
 599   3                              //LED_RED = LED_OFF;
 600   3                              ClearBuzz();
 601   3                      }       
 602   2              }
 603   1              if(!PUSHBUTTON)
C51 COMPILER V7.06   READERMODULE                                                          09/05/2006 01:45:27 PAGE 11  

 604   1              {
 605   2                      for(i=0;i<250;i++);     //debouncing
 606   2                      if(!PUSHBUTTON )
 607   2                      {       
 608   3                              turn_relay_on();                
 609   3                              beep(4);
 610   3                              ResetUserEvent();                       
 611   3                      }       
 612   2              }
 613   1              
 614   1              if(DOORSENSOR || TAMPER)//if(!TAMPER || DOORSENSOR)
 615   1              {
 616   2                      ALARMRELAY=RELAY_ON;
 617   2                      
 618   2              }
 619   1              else
 620   1                      ALARMRELAY=RELAY_OFF;
 621   1                      
 622   1              /*
 623   1              if(Flags.DoorOpen)//kk 080106
 624   1              {
 625   1                      beep(3);
 626   1              }
 627   1              */
 628   1      }
 629          
 630          void CommPutStr(char* str)
 631          {
 632   1      unsigned char idata i=0;
 633   1      
 634   1              while(str[i])
 635   1                      put_c(str[i++]);        
 636   1              
 637   1      }
 638          void process_led(void)
 639          {
 640   1      
 641   1              if(Flags.WaitingKey)    LED_GREEN=LED_ON;       
 642   1              

⌨️ 快捷键说明

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