亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? rc500.lst

?? RC500的全部操作,讀卡
?? LST
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
C51 COMPILER V7.06   RC500                                                                 12/15/2008 16:23:27 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE RC500
OBJECT MODULE PLACED IN RC500.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE RC500.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <REGX52.H>
   2          
   3          #include <absacc.h>
   4          #include <string.h>
   5          
   6          #include <RC500Err.h>
   7          #include <RC500Reg.h>
   8          #include <RC500.h>
   9          
  10          typedef struct 
  11                   {
  12                      unsigned char  cmd;           
  13                      char           status;        
  14                      unsigned char  nBytesSent;   
  15                      unsigned char  nBytesToSend; 
  16                      unsigned char  nBytesReceived;
  17                      unsigned short nBitsReceived; 
  18                      unsigned char  irqSource;     
  19                      unsigned char  collPos;       
  20                                                    
  21                   } MfCmdInfo;
  22          #define ResetInfo(info)    \
  23                      info.cmd            = 0;\
  24                      info.status         = MI_OK;\
  25                      info.irqSource      = 0;\
  26                      info.nBytesSent     = 0;\
  27                      info.nBytesToSend   = 0;\
  28                      info.nBytesReceived = 0;\
  29                      info.nBitsReceived  = 0;\
  30                      info.collPos        = 0;
  31          
  32          // 往一個(gè)地址寫一個(gè)數(shù)據(jù)
  33          //void WriteRawIO(unsigned char Address,unsigned char value);
  34          // 從一個(gè)地址讀出一個(gè)數(shù)據(jù)
  35          //unsigned char ReadRawIO(unsigned char Address);
  36          // 往一個(gè)地址寫一個(gè)數(shù)據(jù)(EEPROM)
  37          //void WriteIO(unsigned char Address, unsigned char value);
  38          // 從一個(gè)地址讀出一個(gè)數(shù)據(jù)(EEPROM)
  39          // unsigned char ReadIO(unsigned char Address);
  40          // 設(shè)置定時(shí)時(shí)間
  41          void M500PcdSetTmo(unsigned char tmoLength);
  42          // Request Command defined in ISO14443(Mifare)
  43          char  M500PcdCmd(unsigned char cmd,
  44                         volatile unsigned char data *rcv,
  45                         MfCmdInfo idata *info);
  46          // 置一個(gè)bit
  47          char SetBitMask(unsigned char reg,unsigned char mask);
  48          // 清一個(gè)bit
  49          char ClearBitMask(unsigned char reg,unsigned char mask);
  50          //
  51          void FlushFIFO(void);
  52          // Value format operations for Mifare Standard card ICs
  53          char M500PiccValue(unsigned char dd_mode, 
  54                             unsigned char addr, 
  55                             unsigned char *value,
C51 COMPILER V7.06   RC500                                                                 12/15/2008 16:23:27 PAGE 2   

  56                             unsigned char trans_addr);
  57          // Set card in HALT-state
  58          // 終止卡的操作
  59          char M500PiccHalt(void);
  60          // Reset the MF RC500 
  61          //char M500PcdReset(void);
  62          // Configures the MF RC500
  63          char M500PcdConfig(void);
  64          // Key loading into the MF RC500's EEPROM
  65          char M500PcdLoadKeyE2(unsigned char key_type,
  66                                 unsigned char sector,
  67                                 unsigned char *uncoded_keys);
  68          // Write the MF RC500's EEPROM
  69          char PcdWriteE2(unsigned int startaddr,
  70                          unsigned char length,
  71                          unsigned char* _data);
  72          // Select Command defined in ISO14443(MIFARE)
  73          char M500PcdMfOutSelect(unsigned char type);
  74          // Request Command defined in ISO14443(MIFARE)
  75          // Request,Anticoll,Select,return CardType(2 bytes)+CardSerialNo(4 bytes)    
  76          // 尋卡,防沖突,選擇卡    返回卡類型(2 bytes)+ 卡系列號(hào)(4 bytes)
  77          char M500PiccCommonRequest(unsigned char req_code,unsigned char *atq);
  78          // Cascaded Anti-Collision Command defined in ISO14443(MIFARE)
  79          // 防沖突 讀卡的系列號(hào) MLastSelectedSnr
  80          char M500PiccCascAnticoll (unsigned char bcnt,unsigned char *snr);
  81          // Cascaded Select command defined in ISO14443(MIFARE)
  82          // 選擇卡 Select Card
  83          char M500PiccCascSelect(unsigned char *snr,unsigned char *sak);
  84          // Key loading into the MF RC500's EEPROM
  85          // 校驗(yàn)卡密碼(E2)
  86          char M500PiccAuthE2( unsigned char auth_mode,unsigned char *snr,      
  87                               unsigned char keynr,unsigned char block);
  88          // Authentication key coding
  89          char M500HostCodeKey(  unsigned char *uncoded, unsigned char *coded);
  90          // Authentication with direct key loading from the uC
  91          // 直接校驗(yàn)密碼
  92          //char M500PiccAuthKey(  unsigned char auth_mode,
  93          //                       unsigned char *snr,       
  94          //                       unsigned char *keys,      
  95          //                       unsigned char block);
  96          //
  97          char M500PiccAuthState( unsigned char auth_mode,unsigned char *snr,unsigned char block);
  98          // Read the mifare card
  99          // 讀卡
 100          char M500PiccRead(unsigned char addr,unsigned char *_data);
 101          // Write the mifare card
 102          // 寫卡  下載密碼
 103          char M500PiccWrite( unsigned char addr,unsigned char *_data);
 104          // Reset Rf Card
 105          char M500PcdRfReset(unsigned char ms);
 106          // Config
 107          char MfConfig(void);
 108          
 109          static   volatile MfCmdInfo idata   MInfo; 
 110          //static   volatile MfCmdInfo    *MpIsrInfo = 0; 
 111          static   volatile MfCmdInfo    *MpIsrInfo; 
 112          //static   volatile unsigned char  *MpIsrOut = 0; 
 113          static   volatile unsigned char  *MpIsrOut;
 114          
 115          unsigned char SerBuffer[20];
 116          
 117          void delay_100us()
C51 COMPILER V7.06   RC500                                                                 12/15/2008 16:23:27 PAGE 3   

 118          {
 119   1              unsigned char i=100;
 120   1              while(i--);
 121   1      }
 122          
 123          void delay_ms(unsigned int ms)
 124          {
 125   1              unsigned char i;
 126   1              while(ms--)
 127   1              {
 128   2                      i=112;
 129   2                      while(i--);
 130   2              }
 131   1      
 132   1      }
 133          
 134          ///////////////////////////////////////////////////////////////////////
 135          // 往一個(gè)地址寫一個(gè)數(shù)據(jù)
 136          ///////////////////////////////////////////////////////////////////////
 137          void WriteRawIO(unsigned char Address,unsigned char value)
 138          {
 139   1              XBYTE[Address]=value;
 140   1      }
 141          
 142          ///////////////////////////////////////////////////////////////////////
 143          // 從一個(gè)地址讀出一個(gè)數(shù)據(jù)
 144          ///////////////////////////////////////////////////////////////////////
 145          unsigned char ReadRawIO(unsigned char Address)
 146          {
 147   1              return XBYTE[Address];
 148   1      }
 149          
 150          ///////////////////////////////////////////////////////////////////////
 151          // 往一個(gè)地址寫一個(gè)數(shù)據(jù)(EEPROM)
 152          ///////////////////////////////////////////////////////////////////////
 153          void WriteIO(unsigned char Address, unsigned char value)
 154          {
 155   1          WriteRawIO(0x00,GetRegPage(Address));  
 156   1          WriteRawIO(Address,value);              
 157   1      }
 158          
 159          ///////////////////////////////////////////////////////////////////////
 160          // 從一個(gè)地址讀出一個(gè)數(shù)據(jù)(EEPROM)
 161          ///////////////////////////////////////////////////////////////////////
 162          unsigned char ReadIO(unsigned char Address)
 163          {
 164   1         WriteRawIO(0x00,GetRegPage(Address));
 165   1         return ReadRawIO(Address);                    
 166   1      }  
 167          
 168          ///////////////////////////////////////////////////////////////////////
 169          // 設(shè)置定時(shí)時(shí)間
 170          ///////////////////////////////////////////////////////////////////////
 171          void M500PcdSetTmo(unsigned char tmoLength)
 172          {
 173   1          switch(tmoLength)
 174   1          {  
 175   2              case 1:                       
 176   2                  WriteIO(RegTimerClock,0x07); 
 177   2                  WriteIO(RegTimerReload,0x6a);
 178   2                  break;
 179   2              case 2:                       
C51 COMPILER V7.06   RC500                                                                 12/15/2008 16:23:27 PAGE 4   

 180   2                  WriteIO(RegTimerClock,0x07); 
 181   2                  WriteIO(RegTimerReload,0xa0);
 182   2                  break;
 183   2              case 3:  
 184   2                  WriteIO(RegTimerClock,0x09); 
 185   2                  WriteIO(RegTimerReload,0xa0);
 186   2                  break;
 187   2              case 4: 
 188   2                  WriteIO(RegTimerClock,0x09);
 189   2                  WriteIO(RegTimerReload,0xff);
 190   2                  break;
 191   2              case 5:  
 192   2                  WriteIO(RegTimerClock,0x0b); 
 193   2                  WriteIO(RegTimerReload,0xff);
 194   2                  break;
 195   2              case 6:                       
 196   2                  WriteIO(RegTimerClock,0x0d); 
 197   2                  WriteIO(RegTimerReload,0xff);
 198   2                  break;
 199   2              case 7:                      
 200   2                  WriteIO(RegTimerClock,0x0f); 
 201   2                  WriteIO(RegTimerReload,0xff);
 202   2                  break;
 203   2              default:                       
 204   2                  WriteIO(RegTimerClock,0x07); 
 205   2                  WriteIO(RegTimerReload,tmoLength);
 206   2                  break;
 207   2          }     
 208   1      }
 209          
 210          ///////////////////////////////////////////////////////////////////////
 211          // Request Command defined in ISO14443(Mifare)
 212          ///////////////////////////////////////////////////////////////////////
 213          char  M500PcdCmd(unsigned char cmd,
 214                         volatile unsigned char data *rcv,
 215                          MfCmdInfo idata *info)
 216          {
 217   1          char          idata status    = MI_OK;
 218   1          char          idata tmpStatus ;
 219   1          unsigned char idata lastBits;
 220   1          unsigned int  idata timecnt = 0;
 221   1          unsigned char idata irqEn = 0x00;
 222   1          unsigned char idata waitFor = 0x00;
 223   1          unsigned char idata timerCtl  = 0x00;
 224   1      
 225   1          WriteIO(RegInterruptEn,0x7F);
 226   1          WriteIO(RegInterruptRq,0x7F);
 227   1          WriteIO(RegCommand,PCD_IDLE); 
 228   1      
 229   1          FlushFIFO();     
 230   1          MpIsrInfo = info;  
 231   1          MpIsrOut = rcv;
 232   1          info->irqSource = 0x00;
 233   1          switch(cmd)
 234   1          {
 235   2              case PCD_IDLE:                
 236   2                  irqEn = 0x00;
 237   2                  waitFor = 0x00;
 238   2                  break;
 239   2              case PCD_WRITEE2:            
 240   2                  irqEn = 0x11;
 241   2                  waitFor = 0x10;
C51 COMPILER V7.06   RC500                                                                 12/15/2008 16:23:27 PAGE 5   

 242   2                  break;
 243   2              case PCD_READE2:     
 244   2                  irqEn = 0x07;
 245   2                  waitFor = 0x04;
 246   2                  break;
 247   2              case PCD_LOADCONFIG:  
 248   2              case PCD_LOADKEYE2:   
 249   2              case PCD_AUTHENT1:    
 250   2                  irqEn = 0x05;
 251   2                  waitFor = 0x04;
 252   2                  break;
 253   2              case PCD_CALCCRC:
 254   2                  irqEn = 0x11;
 255   2                  waitFor = 0x10;
 256   2                  break;
 257   2              case PCD_AUTHENT2: 
 258   2                  irqEn = 0x04;
 259   2                  waitFor = 0x04;
 260   2                  break;
 261   2              case PCD_RECEIVE:     
 262   2                  info->nBitsReceived = -(ReadIO(RegBitFraming) >> 4);
 263   2                  irqEn = 0x06;
 264   2                  waitFor = 0x04;
 265   2                  break;
 266   2              case PCD_LOADKEY: 
 267   2                  irqEn = 0x05;
 268   2                  waitFor = 0x04;
 269   2                  break;
 270   2              case PCD_TRANSMIT: 
 271   2                  irqEn = 0x05;
 272   2                  waitFor = 0x04;
 273   2                  break;
 274   2              case PCD_TRANSCEIVE: 
 275   2                      info->nBitsReceived = -(ReadIO(RegBitFraming) >> 4);
 276   2                  irqEn = 0x3D;
 277   2                  waitFor = 0x04;
 278   2                  break;
 279   2              default:
 280   2                  status = MI_UNKNOWN_COMMAND;
 281   2          }        
 282   1          if (status == MI_OK)
 283   1          {
 284   2              irqEn |= 0x20;                     
 285   2              waitFor |= 0x20;      
 286   2              timecnt=1000;
 287   2              WriteIO(RegInterruptEn,irqEn | 0x80); 
 288   2              WriteIO(RegCommand,cmd);     
 289   2              while (!(MpIsrInfo->irqSource & waitFor||!(timecnt--)));
 290   2              WriteIO(RegInterruptEn,0x7F);         
 291   2              WriteIO(RegInterruptRq,0x7F);          
 292   2              SetBitMask(RegControl,0x04);          
 293   2              WriteIO(RegCommand,PCD_IDLE);         
 294   2              if (!(MpIsrInfo->irqSource & waitFor))   
 295   2              {                               
 296   3                  status = MI_ACCESSTIMEOUT;
 297   3              }
 298   2              else
 299   2              {
 300   3                  status = MpIsrInfo->status;           
 301   3              }
 302   2              if (status == MI_OK)                    
 303   2              {

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区中文在线| 欧美美女直播网站| 日韩欧美二区三区| 日本成人超碰在线观看| 日本高清不卡视频| 亚洲丝袜美腿综合| 91亚洲资源网| 亚洲男人天堂av| 91精品91久久久中77777| 亚洲欧美综合网| 本田岬高潮一区二区三区| 中文字幕精品一区二区三区精品| 国产精品中文有码| 久久综合色之久久综合| 国产成人精品1024| 国产精品久久久久影视| 91在线码无精品| 一区二区不卡在线视频 午夜欧美不卡在| www.欧美日韩| 亚洲高清在线视频| 一区二区三区四区亚洲| 欧美美女激情18p| 精品一二线国产| 国产偷v国产偷v亚洲高清| 91在线观看视频| 午夜精品免费在线观看| 精品国产人成亚洲区| 成人高清免费观看| 亚洲国产中文字幕| 精品精品国产高清一毛片一天堂| 粉嫩在线一区二区三区视频| 国产精品久久久久久久久免费樱桃 | 在线不卡一区二区| 午夜精品视频在线观看| 日韩精品专区在线影院观看| 国产成人一级电影| **性色生活片久久毛片| 在线观看一区日韩| 人人超碰91尤物精品国产| 欧美视频中文字幕| 蜜臀av性久久久久蜜臀aⅴ四虎| 日韩精品三区四区| 亚洲国产精品成人综合色在线婷婷| 欧美电影免费观看高清完整版 | 欧美亚洲动漫精品| 麻豆精品视频在线观看视频| 国产精品美女一区二区三区| 伊人开心综合网| 精品国产百合女同互慰| 在线观看亚洲专区| 日韩精品五月天| 国产精品久久久久久久久晋中| 欧美日韩一区三区| 成人v精品蜜桃久久一区| 天天操天天干天天综合网| 中文欧美字幕免费| 91精品国产一区二区三区香蕉| 久久久久久久久蜜桃| 欧美午夜一区二区三区| 成人精品一区二区三区四区| 午夜久久久久久| 久久九九全国免费| 日韩精品专区在线影院观看 | 欧美日韩国产一区| 精品一区精品二区高清| 亚洲第一久久影院| 综合精品久久久| 国产视频一区在线观看 | 欧美日韩在线精品一区二区三区激情 | 国产精品久久久久毛片软件| 精品电影一区二区三区| 欧美一区二区精品久久911| 不卡一二三区首页| 国产99久久精品| 国产精品一区二区男女羞羞无遮挡| 热久久国产精品| 青青草国产成人99久久| 亚洲成人av中文| 亚洲视频在线一区| 国产免费观看久久| 国产亚洲1区2区3区| 国产日产精品1区| 国产精品午夜春色av| ...av二区三区久久精品| **欧美大码日韩| 性欧美大战久久久久久久久| 亚洲国产精品嫩草影院| 欧美裸体一区二区三区| 欧美一区二区三区免费观看视频 | 久久午夜色播影院免费高清| 久久精品在这里| 中文文精品字幕一区二区| 日韩毛片在线免费观看| 亚洲成av人片在线| 蜜桃av一区二区三区| 国产成人午夜片在线观看高清观看| 国产精品 日产精品 欧美精品| 99免费精品在线| 亚洲精品免费电影| 美女视频第一区二区三区免费观看网站| 久久99九九99精品| av一区二区三区黑人| 欧美高清视频一二三区| 久久精品一二三| 无码av免费一区二区三区试看 | 国产精品国产自产拍高清av王其| 日韩精品一区二区三区三区免费| 久久精品一二三| 久久久久久久久久美女| 亚洲gay无套男同| 国产精品1区二区.| 欧美综合天天夜夜久久| 欧美国产视频在线| 亚洲五月六月丁香激情| 蜜桃精品在线观看| 欧美亚洲另类激情小说| 久久精品视频网| 午夜久久久久久久久久一区二区| 从欧美一区二区三区| 日日夜夜精品免费视频| 91视频在线观看| 国产亚洲欧美中文| 久久99精品国产91久久来源| 欧美亚洲一区二区三区四区| 日韩一区在线免费观看| 国产精品1区二区.| 精品国产一区久久| 免费欧美在线视频| 在线日韩国产精品| 亚洲区小说区图片区qvod| 麻豆免费看一区二区三区| 一区二区三区四区在线免费观看| 久久九九国产精品| 国产精品影视网| 欧美猛男超大videosgay| 亚洲高清在线视频| 欧美日韩综合不卡| 国产精品久久久久毛片软件| 成人h精品动漫一区二区三区| 日韩三级中文字幕| 亚洲国产成人精品视频| 欧美精品免费视频| 国产凹凸在线观看一区二区| 亚洲免费三区一区二区| 7777精品伊人久久久大香线蕉的| 国产一区二区三区电影在线观看| 自拍偷自拍亚洲精品播放| 欧美日韩激情一区二区三区| 韩国av一区二区| 亚洲猫色日本管| 精品国免费一区二区三区| 成人av先锋影音| 日韩精品一级二级| 中文字幕在线不卡一区二区三区| 欧美在线观看禁18| 国产成人久久精品77777最新版本| 亚洲精品水蜜桃| 国产欧美日韩一区二区三区在线观看 | 成人久久视频在线观看| 三级成人在线视频| 国产精品久久免费看| 日韩一区二区免费在线观看| 色狠狠色狠狠综合| 成人性生交大片免费看中文网站| 三级不卡在线观看| 中文字幕在线不卡一区二区三区| 99国产精品久久久| 久久看人人爽人人| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 蜜臀av一区二区三区| 亚洲午夜久久久久久久久电影院| 亚洲国产精品二十页| 精品日韩一区二区三区| 欧美日韩视频在线一区二区| 91污在线观看| av成人动漫在线观看| 国产老肥熟一区二区三区| 美国十次综合导航| 天天av天天翘天天综合网| 亚洲欧美视频在线观看视频| 国产精品三级av| 国产女人18毛片水真多成人如厕| 欧美精品一区二区在线播放| 欧美一级理论性理论a| 欧美一区二区三区小说| 欧美一区二区网站| 欧美一区二区三区婷婷月色| 日韩一区二区在线看片| 在线不卡欧美精品一区二区三区| 欧美日韩黄视频| 欧美一级高清片| 26uuu国产一区二区三区| 久久久91精品国产一区二区精品| 国产欧美一区在线| 中文字幕亚洲一区二区av在线 | 亚洲一区二区三区四区在线观看| 夜夜嗨av一区二区三区网页 | 久久99国产精品久久| 国产精品一区二区在线观看网站| 风间由美中文字幕在线看视频国产欧美 |