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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? m500auc.lst

?? ID卡讀卡程序,采用FM1702芯片,測試OK!
?? LST
?? 第 1 頁 / 共 3 頁
字號:
C51 COMPILER V7.02a   M500AUC                                                              06/23/2006 09:38:38 PAGE 1   


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

stmt level    source

   1          #define M500_GLOBALS
   2          
   3          #include <string.h>
   4          #include <stdio.h>
   5          #include <absacc.h>
   6          #include <intrins.h>
   7          
   8          #include "Mfreg500.h"
   9          #include "MfErrNo.h"
  10          #include "reg52.h"
  11          #include "M500AuC.h"
  12          
  13          #define GetRegPage(addr)    (0x70 | (addr>>3))
  14          #define nocard                      0
  15          #define mifare1                     1
  16          #define mifarepro                   2
  17          #define mifarelight                 3
  18          #define unknowncard                 4
  19          #define NO_TIMER2           1
  20          
  21          ///////////////////////////////////////////////////////////////////////
  22          // 往一個地址寫一個數據
  23          ///////////////////////////////////////////////////////////////////////
  24          void WriteRawIO(unsigned char Address,unsigned char value)
  25          {
  26   1              XBYTE[Address]=value;
  27   1      }
  28          
  29          ///////////////////////////////////////////////////////////////////////
  30          // 從一個地址讀出一個數據
  31          ///////////////////////////////////////////////////////////////////////
  32          unsigned char ReadRawIO(unsigned char Address)
  33          {
  34   1              return XBYTE[Address];
  35   1      }
  36          
  37          ///////////////////////////////////////////////////////////////////////
  38          // 往一個地址寫一個數據(EEPROM)
  39          ///////////////////////////////////////////////////////////////////////
  40          void WriteIO(unsigned char Address, unsigned char value)
  41          {
  42   1          WriteRawIO(0x00,GetRegPage(Address));  
  43   1          WriteRawIO(Address,value);              
  44   1      }
  45          
  46          ///////////////////////////////////////////////////////////////////////
  47          // 從一個地址讀出一個數據(EEPROM)
  48          ///////////////////////////////////////////////////////////////////////
  49          unsigned char ReadIO(unsigned char Address)
  50          {
  51   1         WriteRawIO(0x00,GetRegPage(Address));
  52   1         return ReadRawIO(Address);                    
  53   1      }  
  54          
  55          ///////////////////////////////////////////////////////////////////////
C51 COMPILER V7.02a   M500AUC                                                              06/23/2006 09:38:38 PAGE 2   

  56          // 設置定時時間
  57          ///////////////////////////////////////////////////////////////////////
  58          void M500PcdSetTmo(unsigned char tmoLength)
  59          {
  60   1          switch(tmoLength)
  61   1          {  
  62   2              case 1:                       
  63   2                  WriteIO(RegTimerClock,0x07); 
  64   2                  WriteIO(RegTimerReload,0x6a);
  65   2                  break;
  66   2              case 2:                       
  67   2                  WriteIO(RegTimerClock,0x07); 
  68   2                  WriteIO(RegTimerReload,0xa0);
  69   2                  break;
  70   2              case 3:  
  71   2                  WriteIO(RegTimerClock,0x09); 
  72   2                  WriteIO(RegTimerReload,0xa0);
  73   2                  break;
  74   2              case 4: 
  75   2                  WriteIO(RegTimerClock,0x09);
  76   2                  WriteIO(RegTimerReload,0xff);
  77   2                  break;
  78   2              case 5:  
  79   2                  WriteIO(RegTimerClock,0x0b); 
  80   2                  WriteIO(RegTimerReload,0xff);
  81   2                  break;
  82   2              case 6:                       
  83   2                  WriteIO(RegTimerClock,0x0d); 
  84   2                  WriteIO(RegTimerReload,0xff);
  85   2                  break;
  86   2              case 7:                      
  87   2                  WriteIO(RegTimerClock,0x0f); 
  88   2                  WriteIO(RegTimerReload,0xff);
  89   2                  break;
  90   2              default:                       
  91   2                  WriteIO(RegTimerClock,0x07); 
  92   2                  WriteIO(RegTimerReload,tmoLength);
  93   2                  break;
  94   2          }     
  95   1      }
  96          
  97          ///////////////////////////////////////////////////////////////////////
  98          // Request Command defined in ISO14443(Mifare)
  99          ///////////////////////////////////////////////////////////////////////
 100          char  M500PcdCmd(unsigned char cmd,
 101                         volatile unsigned char data *rcv,
 102                          MfCmdInfo idata *info)
 103          {
 104   1          char          idata status    = MI_OK;
 105   1          char          idata tmpStatus ;
 106   1          unsigned char idata lastBits;
 107   1          unsigned int  idata timecnt = 0;
 108   1          unsigned char idata irqEn = 0x00;
 109   1          unsigned char idata waitFor = 0x00;
 110   1          unsigned char idata timerCtl  = 0x00;
 111   1      
 112   1          WriteIO(RegInterruptEn,0x7F);
 113   1          WriteIO(RegInterruptRq,0x7F);
 114   1          WriteIO(RegCommand,PCD_IDLE); 
 115   1      
 116   1          FlushFIFO();     
 117   1          MpIsrInfo = info;  
C51 COMPILER V7.02a   M500AUC                                                              06/23/2006 09:38:38 PAGE 3   

 118   1          MpIsrOut = rcv;
 119   1          info->irqSource = 0x00;
 120   1          switch(cmd)
 121   1          {
 122   2              case PCD_IDLE:                
 123   2                  irqEn = 0x00;
 124   2                  waitFor = 0x00;
 125   2                  break;
 126   2              case PCD_WRITEE2:            
 127   2                  irqEn = 0x11;
 128   2                  waitFor = 0x10;
 129   2                  break;
 130   2              case PCD_READE2:     
 131   2                  irqEn = 0x07;
 132   2                  waitFor = 0x04;
 133   2                  break;
 134   2              case PCD_LOADCONFIG:  
 135   2              case PCD_LOADKEYE2:   
 136   2              case PCD_AUTHENT1:    
 137   2                  irqEn = 0x05;
 138   2                  waitFor = 0x04;
 139   2                  break;
 140   2              case PCD_CALCCRC:
 141   2                  irqEn = 0x11;
 142   2                  waitFor = 0x10;
 143   2                  break;
 144   2              case PCD_AUTHENT2: 
 145   2                  irqEn = 0x04;
 146   2                  waitFor = 0x04;
 147   2                  break;
 148   2              case PCD_RECEIVE:     
 149   2                  info->nBitsReceived = -(ReadIO(RegBitFraming) >> 4);
 150   2                  irqEn = 0x06;
 151   2                  waitFor = 0x04;
 152   2                  break;
 153   2              case PCD_LOADKEY: 
 154   2                  irqEn = 0x05;
 155   2                  waitFor = 0x04;
 156   2                  break;
 157   2              case PCD_TRANSMIT: 
 158   2                  irqEn = 0x05;
 159   2                  waitFor = 0x04;
 160   2                  break;
 161   2              case PCD_TRANSCEIVE: 
 162   2                      info->nBitsReceived = -(ReadIO(RegBitFraming) >> 4);
 163   2                  irqEn = 0x3D;
 164   2                  waitFor = 0x04;
 165   2                  break;
 166   2              default:
 167   2                  status = MI_UNKNOWN_COMMAND;
 168   2          }        
 169   1          if (status == MI_OK)
 170   1          {
 171   2              irqEn |= 0x20;                     
 172   2              waitFor |= 0x20;      
 173   2              timecnt=1000;
 174   2              WriteIO(RegInterruptEn,irqEn | 0x80); 
 175   2              WriteIO(RegCommand,cmd);     
 176   2              while (!(MpIsrInfo->irqSource & waitFor||!(timecnt--)));
 177   2              WriteIO(RegInterruptEn,0x7F);         
 178   2              WriteIO(RegInterruptRq,0x7F);          
 179   2              SetBitMask(RegControl,0x04);          
C51 COMPILER V7.02a   M500AUC                                                              06/23/2006 09:38:38 PAGE 4   

 180   2              WriteIO(RegCommand,PCD_IDLE);         
 181   2              if (!(MpIsrInfo->irqSource & waitFor))   
 182   2              {                               
 183   3                  status = MI_ACCESSTIMEOUT;
 184   3              }
 185   2              else
 186   2              {
 187   3                  status = MpIsrInfo->status;           
 188   3              }
 189   2              if (status == MI_OK)                    
 190   2              {
 191   3                  if (tmpStatus = (ReadIO(RegErrorFlag) & 0x17))
 192   3                  {
 193   4                      if (tmpStatus & 0x01)
 194   4                      {
 195   5                          info->collPos = ReadIO(RegCollPos);
 196   5                          status = MI_COLLERR;
 197   5                      }
 198   4                      else
 199   4                      {
 200   5                          info->collPos = 0;
 201   5                          if (tmpStatus & 0x02)  
 202   5                          {
 203   6                              status = MI_PARITYERR;
 204   6                          }
 205   5                      }
 206   4                      if (tmpStatus & 0x04)   
 207   4                      {
 208   5                          status = MI_FRAMINGERR;
 209   5                      }
 210   4                      if (tmpStatus & 0x10)   
 211   4                      {
 212   5                          FlushFIFO();
 213   5                          status = MI_OVFLERR;
 214   5                      }
 215   4                          if (tmpStatus & 0x08) 
 216   4                          {
 217   5                          status = MI_CRCERR;
 218   5                          }   
 219   4                      if (status == MI_OK)
 220   4                          status = MI_NY_IMPLEMENTED;
 221   4                  }
 222   3                  if (cmd == PCD_TRANSCEIVE)
 223   3                  {
 224   4                      lastBits = ReadIO(RegSecondaryStatus) & 0x07;
 225   4                      if (lastBits)
 226   4                          info->nBitsReceived += (info->nBytesReceived-1) * 8 + lastBits;
 227   4                      else
 228   4                          info->nBitsReceived += info->nBytesReceived * 8;
 229   4                  }
 230   3              }
 231   2              else
 232   2              {
 233   3                  info->collPos = 0x00;
 234   3              }
 235   2          }
 236   1          MpIsrInfo = 0;         
 237   1          MpIsrOut  = 0;
 238   1          return status;
 239   1      }   
 240          
 241          ///////////////////////////////////////////////////////////////////////
C51 COMPILER V7.02a   M500AUC                                                              06/23/2006 09:38:38 PAGE 5   

 242          // 置一個bit
 243          ///////////////////////////////////////////////////////////////////////
 244          char SetBitMask(unsigned char reg,unsigned char mask)  
 245          {
 246   1          char idata tmp = 0x00;
 247   1      
 248   1          tmp = ReadIO(reg);
 249   1          WriteIO(reg,tmp | mask);  // set bit mask
 250   1          return 0x00;
 251   1      }
 252          
 253          ///////////////////////////////////////////////////////////////////////
 254          // 清一個bit
 255          ///////////////////////////////////////////////////////////////////////
 256          char ClearBitMask(unsigned char reg,unsigned char mask)  
 257          {
 258   1          char idata tmp = 0x00;
 259   1      
 260   1          tmp = ReadIO(reg);
 261   1          WriteIO(reg,tmp & ~mask);  // clear bit mask
 262   1          return 0x00;
 263   1      }
 264          
 265          ///////////////////////////////////////////////////////////////////////
 266          ///////////////////////////////////////////////////////////////////////
 267          void FlushFIFO(void)
 268          {  
 269   1          SetBitMask(RegControl,0x01);
 270   1      }
 271          
 272          ///////////////////////////////////////////////////////////////////////
 273          // Set card in HALT-state
 274          // 終止卡的操作
 275          ///////////////////////////////////////////////////////////////////////
 276          char M500PiccHalt(void)
 277          {
 278   1          char idata status = MI_CODEERR;
 279   1      
 280   1          // ************* Cmd Sequence ********************************** 
 281   1          ResetInfo(MInfo);   
 282   1          SerBuffer[0] = PICC_HALT ;      // Halt command code
 283   1          SerBuffer[1] = 0x00;            // dummy address
 284   1          MInfo.nBytesToSend = 2;
 285   1          status = M500PcdCmd(PCD_TRANSCEIVE,
 286   1                             SerBuffer,
 287   1                             &MInfo);   
 288   1          if (status)
 289   1          {
 290   2              // timeout error ==> no NAK received ==> OK

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本va欧美va瓶| 国产精品污污网站在线观看| 亚洲国产成人av| 在线亚洲免费视频| 日本亚洲三级在线| 久久一区二区三区四区| 国产另类ts人妖一区二区| 日本一区二区三区国色天香| 成人av免费观看| 一区二区免费看| 91精品国产91久久综合桃花| 国内精品免费**视频| 中文字幕在线不卡一区二区三区| 欧美在线观看一区| 久久99日本精品| 国产精品久久福利| 欧美丝袜第三区| 国产精品综合二区| 亚洲靠逼com| 日韩一级片网址| 成人爱爱电影网址| 天天色图综合网| 久久精品欧美日韩| 欧美午夜免费电影| 国产成人小视频| 亚洲一区二区三区自拍| 精品美女一区二区| 色综合天天综合网国产成人综合天 | 成人妖精视频yjsp地址| 亚洲人成在线观看一区二区| 91精品在线免费观看| 成人晚上爱看视频| 青娱乐精品视频在线| 中文字幕亚洲在| 日韩视频一区二区三区在线播放| 成人激情综合网站| 蜜桃视频一区二区三区| 国产精品短视频| 日韩美女在线视频| 91福利国产成人精品照片| 久草在线在线精品观看| 一区二区欧美在线观看| 久久亚洲免费视频| 欧美绝品在线观看成人午夜影视| 国产91精品在线观看| 日本不卡视频在线观看| 亚洲精品日日夜夜| 国产欧美精品一区| 日韩欧美亚洲国产另类| 91成人免费电影| 成人美女在线视频| 激情六月婷婷久久| 日产欧产美韩系列久久99| 亚洲日本成人在线观看| 国产欧美一区二区三区在线看蜜臀| 欧美精品一级二级三级| 色婷婷一区二区三区四区| 国产黄人亚洲片| 久久精品国产精品亚洲红杏 | 久久久亚洲午夜电影| 7777精品久久久大香线蕉| 91视频在线看| av午夜一区麻豆| 国产69精品一区二区亚洲孕妇| 麻豆精品在线看| 日本vs亚洲vs韩国一区三区二区 | av电影天堂一区二区在线| 国产一区二区视频在线| 成人中文字幕电影| 国产寡妇亲子伦一区二区| 国产一区二区三区在线观看免费 | 久久久99免费| 精品国产乱码久久久久久久| 9191国产精品| 在线综合亚洲欧美在线视频| 欧美精品 日韩| 欧美人牲a欧美精品| 欧美日韩五月天| 欧美精选在线播放| 欧美日本免费一区二区三区| 欧美日韩另类国产亚洲欧美一级| 在线欧美小视频| 欧美色图免费看| 欧美电影影音先锋| 日韩一卡二卡三卡国产欧美| 欧美成人一区二区三区片免费| 欧美一级一级性生活免费录像| 欧美精品1区2区| 日韩精品自拍偷拍| 精品日产卡一卡二卡麻豆| 久久久久久久久蜜桃| 国产精品免费久久久久| 亚洲免费大片在线观看| 亚洲成人在线免费| 蜜桃在线一区二区三区| 国产一区二区毛片| 成人av片在线观看| 在线视频一区二区免费| 91精品国产高清一区二区三区蜜臀| 日韩一区二区三区视频在线| 亚洲精品一线二线三线| 国产精品电影院| 99免费精品在线| 在线免费观看视频一区| 欧美一级久久久久久久大片| 国产午夜亚洲精品理论片色戒 | 精品国产一区a| 国产精品久久久久精k8 | 成人激情动漫在线观看| 欧美在线你懂的| 日韩精品一区在线| 中文字幕日本不卡| 香港成人在线视频| 国产精品一区免费在线观看| 91丨porny丨中文| 欧美一区二区三区色| 欧美激情一区在线| 亚洲一区二区高清| 国产精品一二三区在线| 欧美日韩视频不卡| 国产欧美精品国产国产专区| 午夜亚洲福利老司机| 国产传媒一区在线| 欧美日韩小视频| 国产精品久久777777| 日本视频中文字幕一区二区三区| 成人综合在线视频| 91精品国产麻豆国产自产在线| 日本一区二区在线不卡| 青青草91视频| 欧美影视一区在线| 日本一区二区不卡视频| 日韩av不卡在线观看| 91视频91自| 国产女人18水真多18精品一级做| 日本亚洲免费观看| 日本高清不卡在线观看| 国产女人aaa级久久久级| 日韩成人午夜精品| 精品视频一区三区九区| 综合久久国产九一剧情麻豆| 激情都市一区二区| 制服丝袜日韩国产| 一区二区三区精品视频在线| 成人一区二区在线观看| 精品国产乱码久久久久久夜甘婷婷 | 国产一区二区成人久久免费影院| 在线免费观看一区| 中文av一区二区| 国产麻豆精品95视频| 日韩一区二区三区精品视频| 亚洲一卡二卡三卡四卡无卡久久| 成人不卡免费av| 国产精品丝袜黑色高跟| 国产美女一区二区| 欧美精品一区二区三区高清aⅴ| 亚洲bdsm女犯bdsm网站| 91福利国产精品| 一区二区欧美在线观看| 91视视频在线直接观看在线看网页在线看| 精品黑人一区二区三区久久 | 国产日韩欧美亚洲| 国产又黄又大久久| 26uuu精品一区二区| 久久se精品一区二区| 欧美成人艳星乳罩| 久久99国产精品免费网站| 日韩一区二区三区在线| 青青草视频一区| 日韩欧美不卡在线观看视频| 麻豆国产精品视频| 欧美成人在线直播| 国产成人自拍网| 国产精品久久久久久久久免费樱桃| 国产91清纯白嫩初高中在线观看| 国产拍欧美日韩视频二区| gogo大胆日本视频一区| 亚洲视频你懂的| 欧美色图片你懂的| 日本vs亚洲vs韩国一区三区| 精品成人一区二区三区| 成人综合婷婷国产精品久久蜜臀| 日本一区二区视频在线| 99久久99久久综合| 一区二区三区四区蜜桃| 欧美无砖砖区免费| 蜜桃一区二区三区四区| 国产亚洲综合在线| 91亚洲精华国产精华精华液| 亚洲国产一区二区视频| 欧美一区二区三区喷汁尤物| 精品一区二区三区免费| 国产精品久久久一本精品| 在线亚洲人成电影网站色www| 亚洲高清免费观看| 亚洲精品一区二区在线观看| 成人涩涩免费视频| 亚洲成人自拍偷拍| 久久久久97国产精华液好用吗| av一区二区三区在线|