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

📄 readermodule.lst

📁 Use this program to decode the Manchester Code of the RFID. Validate the accessibility of detected c
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.06   READERMODULE                                                          09/05/2006 01:45:27 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE READERMODULE
OBJECT MODULE PLACED IN readermodule.OBJ
COMPILER INVOKED BY: D:\work\development tool\C51\BIN\C51.EXE readermodule.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1                                                                                                                    
             -                                                                                                                        
             -                                                                        
   2          /*****************************************************************************************************
   3          This is the source code for keypad reader
   4          
   5          ******************************************************************************************************/   
             -                                                                                                                        
             -                                                                                                                        
             -            
   6                                                                                                                    
             -                                                                                                                        
             -                             
   7          #include <REG52.H>
   8          #include <stdio.h>                /* prototype declarations for I/O functions */
   9          
  10          sbit    P00             =       P0^0;
  11          sbit    P01             =       P0^1;                                                                                                                                                                                                                                                                                           
  12          sbit    P02             =       P0^2;                                                                                                                                                                                                                                                                                           
  13          sbit    P03             =       P0^3;                                                                                                                                                                                                                                                                                           
  14          sbit    P04             =       P0^4;                                                                                                                                                                                                                                                                                           
  15          sbit    P05             =       P0^5;                                                                                                                                                                                                                                                                                           
  16          sbit    P06             =       P0^6;                                                                                                                                                                                                                                                                                           
  17          sbit    P07             =       P0^7;
  18          sbit    PUSHBUTTON      =       P2^0;//P1^0;
  19          sbit    BUZZER          =       P1^0;//P1^1;
  20          sbit    LED0            =       P1^2;                                                                                                                                                                                                                                                                                   
  21          sbit    LED_GREEN       =       P1^4;//P1^3;
  22          //sbit  LED_RED         =       P1^2;//P1^4;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
  23          sbit    DOORSENSOR      =       P2^1;//P2^0;
  24          sbit    TAMPER          =       P2^4;//P2^1;
  25          sbit    DOORRELAY       =       P2^2;
  26          sbit    ALARMRELAY      =       P2^3;
  27          sbit    LED3            =       P2^7;                                                                                                                                                                                                                                                                                                                                                                           
             -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
  28          sbit    EXT             =       P3^2;                                                                                                                                                                                                                                                                                           
  29          sbit    SDA             =       P3^7;
  30          sbit    SCL             =       P3^6;
  31          sbit    SHD             =       P3^3;//P3^0;
  32          
  33          #define RELAY_ON                0
  34          #define RELAY_OFF               1
  35          #define LED_ON                  0
  36          #define LED_OFF                 1
  37          #define SLEEP                   1
  38          #define WAKEUP                  0
  39          #define BUZZ_CNT                50                      
  40          #define ON                      1                       
  41          #define OFF                     0                       
  42          #define HIGH                    1                       
  43          #define LOW                     0                       
  44          #define MAXCARDCHAR             10                      
  45          #define CLOCKINTERVAL           25                      
  46          #define CARDTIMELIMIT           20//22 kk changed 14/4/06 sort of too insensitive                       
  47          #define MAXKEYCHAR              10
C51 COMPILER V7.06   READERMODULE                                                          09/05/2006 01:45:27 PAGE 2   

  48          #define O_CARDnPIN              0x01   // Normal Card Mode 0x01 = 0
  49          #define O_AUTOPIN               0x02   // 1 -> On
  50          #define O_LOCKOUT               0x04   // 1 -> LockOut
  51          #define O_SECURITYOFF           0x08   // 1 -> off
  52          #define O_ARM                   0x10   // 1 -> Arm
  53          #define O_CARD                  0x20    //CARD
  54          #define O_CARDorPIN             0x22
  55          //#define E_RELEASE             0x01
  56          //#define E_FACCODE             0x02
  57          //#define E_PIN                 0x04
  58          #define MAX_LOCK_RELEASE_TIME   0x60    // second
  59          #define MAX_DOOR_OPEN_TIME      0x99    // second
  60          #define MAX_SOUNDER_TIME        0x30    // minute
  61          #define high_byte(x)            ((x & 0xFF00) >> 8)// Get high byte macro
  62          #define MAX_PINNO               10
  63          #define MAX_CARD_ADD            4028    //5027-jah
  64          #define EEPROM_LAST_BYTE        9//4032 
  65          #define TIMER0CNT               0x56;
  66          #define START_CARD_ADD          32
  67          //#define TESTING
  68          
  69          void put_c(unsigned char buf);
  70          void beep (unsigned char duration);
  71          void longtos (char* ddata, unsigned long *tno);
  72          void beepbeep (unsigned char count);
  73          void ClearBuzz(void);
  74          void process_button(void);
  75          void process_led(void);
  76          void process_buzzer(void);
  77          void initmcu(void);
  78          void ResetUserEvent (void);
  79          void I2C_Start(void);
  80          void I2C_Stop(void);
  81          char I2C_Write(unsigned char byte);
  82          unsigned char I2C_Read(void);
  83          //void ACK(void);
  84          void NAK(void);
  85          char write_eeprom_bytes(unsigned int add, unsigned char dataout);
  86          unsigned char get_eeprom_bytes (unsigned int add);
  87          //char write_block(unsigned char page, unsigned char *dataout, char count);
  88          unsigned char get_eeprom_bytes1 (void);
  89          void InitDB(void);
  90          void WriteSysDB(void);
  91          void GetSysDB (void);
  92          void ClearUserDB(void);
  93          unsigned char InstallThisCard(void);
  94          unsigned char DeleteThisCard (void);
  95          unsigned char FindThisCard(void);
  96          void Process_Input(void);
  97          void flush_keypad(void);
  98          void turn_relay_on (void);
  99          void ReloadKeyTimeOut (void);
 100          char write_block(unsigned int startadd, unsigned char *dataout, char count);    //12/15/2005 9:24PM
 101          void RestoreCardPos(void);
 102          //void ProcessUserEvent(void);
 103          //void checkcollision(void);
 104          
 105          
 106          //variable for process_buzzer
 107          #define BUZZCOUNTER 90      //10
 108          idata char buzzer_type=0;
 109          idata unsigned char buzz_duration;
C51 COMPILER V7.06   READERMODULE                                                          09/05/2006 01:45:27 PAGE 3   

 110          idata unsigned int buzz_counter;
 111          
 112          //variables for card
 113          idata unsigned int cardpos=0;
 114          unsigned int cardpos_last;      //12/18/2005 9:43PM
 115          idata unsigned char lockoutcount=0;
 116          //idata unsigned char comsinbuffer;
 117          idata unsigned char ledcount0=0;
 118          char ColdStartCheck=1,tempi;
 119          unsigned char door_relay_duration;
 120          idata unsigned char dooropentime;
 121          //unsigned char EmptyFlag
 122          
 123          /*==============================================================================
 124                                  KEYPAD READER REALATED VARIABLES
 125          
 126          ================================================================================*/
 127          struct TOperationFlag
 128          {
 129                  unsigned gnewcard               : 1;                    
 130                  unsigned WaitingKey             : 1;                                                                                                                                                                                    
 131                  unsigned DoorOpen               : 1;                                                                                            
 132                  unsigned doorwasopened          : 1;                                                                                                                            
 133                  unsigned char EmptySign;        //12/19/2005 10:43PM
 134          } ;
 135          idata struct TOperationFlag Flags;
 136          
 137          struct DHeader
 138          {
 139                  unsigned char OperationMode;            
 140                  unsigned char MasterPin         [3];    
 141                  unsigned char AutoPin   [MAX_PINNO][2];
 142                  unsigned char DoorOpenTime;
 143                  unsigned char LockReleaseTime;  
 144                  
 145          };
 146          idata struct DHeader SystemDatabase;
 147          typedef struct
 148          {
 149                  char CardNo [3];
 150                  char Lockcount;
 151          }TCardRec;
 152          
 153          TCardRec gcrec;
 154          
 155          unsigned char ch=0,bit_keyhold=0,key_count,button_state=1,KeyChar [MAXKEYCHAR];
 156          unsigned int keytimeout;
 157          unsigned char idata secdly;
 158          /*********************************************************************************
 159                                  MENU RELATED VARIABLES
 160          *********************************************************************************/
 161          unsigned char MainMenuItem;
 162          unsigned char SubMenuItem;
 163          
 164          /*=============================================================================
 165                                  CARD RELATED VARIABLES
 166          =============================================================================*/
 167          unsigned int clock_isr_counter1 = 0,rdr=0;
 168          unsigned char card_exist=0, cardbitBufer[10],previousstate,anticollision=0;
 169          unsigned char cardtime =18,bitcount=0,cbitcount=0,nibin=0,parity=0,bytecount=0;
 170          unsigned char cardbytein[MAXCARDCHAR+2],CardDataIn=0,startpattern=0,columnparity=0;
 171          //unsigned int cpin;    //12/4/2005 10:34AM
C51 COMPILER V7.06   READERMODULE                                                          09/05/2006 01:45:27 PAGE 4   

 172          //unsigned int dpin;    //12/4/2005 10:34AM
 173          /**************************************************************************************
 174                                  MEMORY RELATED VARIABLES
 175          **************************************************************************************/
 176          char idata temp_masterpin1[3],temp_masterpin2[3],masterpinCount=0;
 177          /*
 178          data signal           75clock   
 179                             <------->;If data signal interval exceeded 70clocks then refer to previousstate      
 180          ___     ___     ___     ______        ______
 181             |   |   |   |   |   |      |      |  
 182             |___|   |___|   |___|      |______|          
 183             <--->           <----------> 
 184             32clock                     96clock
 185                             <----->      
 186             <------>          50clock  ; for every 50clock after falling interval of data signal, record the previousst
             -ate        
 187               64clock                            
 188          Remarks:Data read in upon falling edge detection
 189          */
 190          
 191          void timer0_ISR (void) interrupt 1  //interrupt every 200us -- 25clock cycles 
 192          {               
 193   1              if(++clock_isr_counter1 == 3)//(50/CLOCKINTERVAL) )                     //equivalent to 2                               
 194   1                      previousstate=EXT;                              
 195   1                              
 196   1              else if(clock_isr_counter1==250)
 197   1              {       
 198   2                      clock_isr_counter1=0;
 199   2                      TR0=0;                          
 200   2              }       
 201   1              TH0 = 0xff;//(65536 - 146) / 256;
 202   1              TL0 = TIMER0CNT;//-123;//(65536 - 146) % 256;   
 203   1      }

⌨️ 快捷键说明

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