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

📄 rdio.lst

📁 MIFARE读卡器源程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
  71      =1  sbit P0_4 = 0x84;
  72      =1  sbit P0_5 = 0x85;
  73      =1  sbit P0_6 = 0x86;
  74      =1  sbit P0_7 = 0x87;
  75      =1  
  76      =1  /*------------------------------------------------
  77      =1  PCON Bit Values
  78      =1  ------------------------------------------------*/
  79      =1  #define IDL_    0x01
  80      =1  
C51 COMPILER V6.12  RDIO                                                                   03/06/2005 22:05:06 PAGE 10  

  81      =1  #define STOP_   0x02
  82      =1  #define PD_     0x02    /* Alternate definition */
  83      =1  
  84      =1  #define GF0_    0x04
  85      =1  #define GF1_    0x08
  86      =1  
  87      =1  #define SMOD_   0x80
  88      =1  
  89      =1  /*------------------------------------------------
  90      =1  TCON Bit Registers
  91      =1  ------------------------------------------------*/
  92      =1  sbit IT0  = 0x88;
  93      =1  sbit IE0  = 0x89;
  94      =1  sbit IT1  = 0x8A;
  95      =1  sbit IE1  = 0x8B;
  96      =1  sbit TR0  = 0x8C;
  97      =1  sbit TF0  = 0x8D;
  98      =1  sbit TR1  = 0x8E;
  99      =1  sbit TF1  = 0x8F;
 100      =1  
 101      =1  /*------------------------------------------------
 102      =1  T2CON Bit Registers
 103      =1  ------------------------------------------------*/
 104      =1  sbit TF2   = 0xCF;
 105      =1  sbit EXF2  = 0xCE;
 106      =1  sbit RCLK  = 0xCD;
 107      =1  sbit TCLK  = 0xCC;
 108      =1  sbit EXEN2 = 0xCB;
 109      =1  sbit TR2   = 0xCA;
 110      =1  sbit C_T2  = 0xC9;
 111      =1  sbit CP_RL2= 0xC8;
 112      =1  
 113      =1  /*------------------------------------------------
 114      =1  TMOD Bit Values
 115      =1  ------------------------------------------------*/
 116      =1  #define T0_M0_   0x01
 117      =1  #define T0_M1_   0x02
 118      =1  #define T0_CT_   0x04
 119      =1  #define T0_GATE_ 0x08
 120      =1  #define T1_M0_   0x10
 121      =1  #define T1_M1_   0x20
 122      =1  #define T1_CT_   0x40
 123      =1  #define T1_GATE_ 0x80
 124      =1  
 125      =1  #define T1_MASK_ 0xF0
 126      =1  #define T0_MASK_ 0x0F
 127      =1  
 128      =1  /*------------------------------------------------
 129      =1  P1 Bit Registers
 130      =1  ------------------------------------------------*/
 131      =1  sbit P1_0 = 0x90;
 132      =1  sbit P1_1 = 0x91;
 133      =1  sbit P1_2 = 0x92;
 134      =1  sbit P1_3 = 0x93;
 135      =1  sbit P1_4 = 0x94;
 136      =1  sbit P1_5 = 0x95;
 137      =1  sbit P1_6 = 0x96;
 138      =1  sbit P1_7 = 0x97;
 139      =1  
 140      =1  /*------------------------------------------------
 141      =1  SCON Bit Registers
 142      =1  ------------------------------------------------*/
C51 COMPILER V6.12  RDIO                                                                   03/06/2005 22:05:06 PAGE 11  

 143      =1  sbit RI   = 0x98;
 144      =1  sbit TI   = 0x99;
 145      =1  sbit RB8  = 0x9A;
 146      =1  sbit TB8  = 0x9B;
 147      =1  sbit REN  = 0x9C;
 148      =1  sbit SM2  = 0x9D;
 149      =1  sbit SM1  = 0x9E;
 150      =1  sbit SM0  = 0x9F;
 151      =1  
 152      =1  /*------------------------------------------------
 153      =1  P2 Bit Registers
 154      =1  ------------------------------------------------*/
 155      =1  sbit P2_0 = 0xA0;
 156      =1  sbit P2_1 = 0xA1;
 157      =1  sbit P2_2 = 0xA2;
 158      =1  sbit P2_3 = 0xA3;
 159      =1  sbit P2_4 = 0xA4;
 160      =1  sbit P2_5 = 0xA5;
 161      =1  sbit P2_6 = 0xA6;
 162      =1  sbit P2_7 = 0xA7;
 163      =1  
 164      =1  /*------------------------------------------------
 165      =1  IE Bit Registers
 166      =1  ------------------------------------------------*/
 167      =1  sbit EX0  = 0xA8;       /* 1=Enable External interrupt 0 */
 168      =1  sbit ET0  = 0xA9;       /* 1=Enable Timer 0 interrupt */
 169      =1  sbit EX1  = 0xAA;       /* 1=Enable External interrupt 1 */
 170      =1  sbit ET1  = 0xAB;       /* 1=Enable Timer 1 interrupt */
 171      =1  sbit ES   = 0xAC;       /* 1=Enable Serial port interrupt */
 172      =1  sbit ET2  = 0xAD;       /* 1=Enable Timer 2 interrupt */
 173      =1  sbit EC   = 0XAE;	/* 1=Enable PCA interrupt */
 174      =1  sbit EA   = 0xAF;       /* 0=Disable all interrupts */
 175      =1  
 176      =1  /*------------------------------------------------
 177      =1  P3 Bit Registers (Mnemonics & Ports)
 178      =1  ------------------------------------------------*/
 179      =1  sbit P3_0 = 0xB0;
 180      =1  sbit P3_1 = 0xB1;
 181      =1  sbit P3_2 = 0xB2;
 182      =1  sbit P3_3 = 0xB3;
 183      =1  sbit P3_4 = 0xB4;
 184      =1  sbit P3_5 = 0xB5;
 185      =1  sbit P3_6 = 0xB6;
 186      =1  sbit P3_7 = 0xB7;
 187      =1  
 188      =1  sbit RXD  = 0xB0;       /* Serial data input */
 189      =1  sbit TXD  = 0xB1;       /* Serial data output */
 190      =1  sbit INT0 = 0xB2;       /* External interrupt 0 */
 191      =1  sbit INT1 = 0xB3;       /* External interrupt 1 */
 192      =1  sbit T0   = 0xB4;       /* Timer 0 external input */
 193      =1  sbit T1   = 0xB5;       /* Timer 1 external input */
 194      =1  sbit WR   = 0xB6;       /* External data memory write strobe */
 195      =1  sbit RD   = 0xB7;       /* External data memory read strobe */
 196      =1  
 197      =1  /*------------------------------------------------
 198      =1  IP Bit Registers
 199      =1  ------------------------------------------------*/
 200      =1  sbit PX0  = 0xB8;
 201      =1  sbit PT0  = 0xB9;
 202      =1  sbit PX1  = 0xBA;
 203      =1  sbit PT1  = 0xBB;
 204      =1  sbit PS   = 0xBC;
C51 COMPILER V6.12  RDIO                                                                   03/06/2005 22:05:06 PAGE 12  

 205      =1  sbit PT2  = 0xBD;
 206      =1  
 207      =1  /*------------------------------------------------
 208      =1  PSW Bit Registers
 209      =1  ------------------------------------------------*/
 210      =1  sbit P    = 0xD0;
 211      =1  sbit FL   = 0xD1;
 212      =1  sbit OV   = 0xD2;
 213      =1  sbit RS0  = 0xD3;
 214      =1  sbit RS1  = 0xD4;
 215      =1  sbit F0   = 0xD5;
 216      =1  sbit AC   = 0xD6;
 217      =1  sbit CY   = 0xD7;
 218      =1  
 219      =1  /*------------------------------------------------
 220      =1  Interrupt Vectors:
 221      =1  Interrupt Address = (Number * 8) + 3
 222      =1  ------------------------------------------------*/
 223      =1  #define IE0_VECTOR	0  /* 0x03 External Interrupt 0 */
 224      =1  #define TF0_VECTOR	1  /* 0x0B Timer 0 */
 225      =1  #define IE1_VECTOR	2  /* 0x13 External Interrupt 1 */
 226      =1  #define TF1_VECTOR	3  /* 0x1B Timer 1 */
 227      =1  #define SIO_VECTOR	4  /* 0x23 Serial port */
 228      =1  
 229      =1  /*------------------------------------------------
 230      =1  ------------------------------------------------*/
 231      =1  
   5          
   6          ///////////////////////////////////////////////////////////////////////////////
   7          //                 Module Definitions
   8          ///////////////////////////////////////////////////////////////////////////////
   9          #define GetRegPage(adr) (0x80 | (adr>>3))
  10          
  11          unsigned char xdata ini _at_ 0x7f00;    // move base address to 0x7f00
  12          unsigned char xdata *GpBase = &ini;   // redirect pointer to base address
  13          
  14          ///////////////////////////////////////////////////////////////////////////////
  15          //                 Open Reader Communication
  16          ///////////////////////////////////////////////////////////////////////////////
  17          char OpenIO(void)
  18          {
  19   1         GpBase = &ini;
  20   1         P2_7 = 0;	// Enable the CS for RC500
  21   1         return 0x00;
  22   1      }
  23          
  24          ///////////////////////////////////////////////////////////////////////////////
  25          //                 Close Reader Communication
  26          ///////////////////////////////////////////////////////////////////////////////
  27          void CloseIO(void)
  28          {
  29   1         GpBase = 0xff00;
  30   1         P2_7 = 1;	// disable the CS for RC500
  31   1      }
  32          
  33          ///////////////////////////////////////////////////////////////////////////////
  34          //          G E N E R I C    W R I T E
  35          ///////////////////////////////////////////////////////////////////////////////
  36          void WriteIO(unsigned char Address, unsigned char value)
  37          {
  38   1         WriteRawIO(Address,value);                 // write value at the specified
  39   1                                                    // address
C51 COMPILER V6.12  RDIO                                                                   03/06/2005 22:05:06 PAGE 13  

  40   1      }
  41          
  42          ///////////////////////////////////////////////////////////////////////////////
  43          //          G E N E R I C    R E A D
  44          ///////////////////////////////////////////////////////////////////////////////
  45          unsigned char ReadIO(unsigned char Address)
  46          {
  47   1         static unsigned char c;
  48   1         c = ReadRawIO(Address);                    // read value at the specified
  49   1                                                 // address
  50   1         return c;
  51   1      }
  52          
  53          #ifndef SEC_NO_MICORE
  54          ///////////////////////////////////////////////////////////////////////////////
  55          //     W R I T E   S E V E R A L   M E M O R Y   L O C A T I O N S
  56          ///////////////////////////////////////////////////////////////////////////////
  57          void WriteIOBlock(unsigned char *Addr_Data, unsigned short len)
  58          {
  59   1         static unsigned short cnt;
  60   1      
  61   1         for (cnt = 0; cnt < len; cnt++)
  62   1         {
  63   2              // write value at the specified address
  64   2             WriteRawIO(Addr_Data[cnt*2],Addr_Data[cnt * 2 + 1]);
  65   2         }
  66   1      }
  67          
  68          ///////////////////////////////////////////////////////////////////////////////
  69          //     R E A D   S E V E R A L   M E M O R Y   L O C A T I O N S
  70          ///////////////////////////////////////////////////////////////////////////////
  71          void ReadIOBlock(unsigned char* Addr_Data, unsigned short len)
  72          {
  73   1         static unsigned short cnt;
  74   1      
  75   1         for (cnt = 0; cnt < len; cnt)
  76   1         {
  77   2             Addr_Data[cnt*2 + 1] = ReadRawIO(Addr_Data[cnt*2]);// read value at the
  78   2                                                            // specified address
  79   2         }
  80   1      }
  81          #endif
C51 COMPILER V6.12  RDIO                                                                   03/06/2005 22:05:06 PAGE 14  

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION OpenIO (BEGIN)
                                           ; SOURCE LINE # 17
                                           ; SOURCE LINE # 18
                                           ; SOURCE LINE # 19
0000 75007F      R     MOV     GpBase,#HIGH ini
0003 750000      R     MOV     GpBase+01H,#LOW ini
                                           ; SOURCE LINE # 20
0006 C2A7              CLR     P2_7
                                           ; SOURCE LINE # 21
0008 7F00              MOV     R7,#00H
                                           ; SOURCE LINE # 22
000A         ?C0001:
000A 22                RET     
             ; FUNCTION OpenIO (END)

             ; FUNCTION CloseIO (BEGIN)
                                           ; SOURCE LINE # 27
                                           ; SOURCE LINE # 28
                                           ; SOURCE LINE # 29
0000 7500FF      R     MOV     GpBase,#0FFH
0003 750000      R     MOV     GpBase+01H,#00H
                                           ; SOURCE LINE # 30
0006 D2A7              SETB    P2_7
                                           ; SOURCE LINE # 31
0008 22                RET     
             ; FUNCTION CloseIO (END)

             ; FUNCTION _WriteIO (BEGIN)
;---- Variable 'Address' assigned to Register 'R7' ----
;---- Variable 'value' assigned to Register 'R5' ----
                                           ; SOURCE LINE # 36
                                           ; SOURCE LINE # 37

⌨️ 快捷键说明

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