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

📄 main.lst

📁 RC500的全部操作,读卡
💻 LST
字号:
C51 COMPILER V7.06   MAIN                                                                  12/15/2008 16:23:27 PAGE 1   


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

stmt level    source

   1          #include <REGX52.H>
   2          
   3          #include <string.h>
   4          #include <stdio.h>
   5          #include <absacc.h>
   6          #include <intrins.h>
   7          
   8          #include <RC500Err.h>
   9          #include <RC500Reg.h>
  10          #include <RC500.h>
  11          
  12          void printchar(unsigned char ch)
  13          {
  14   1              if(ch>=0&&ch<=9) ch=ch+'0';
  15   1              else if(ch>=10&&ch<=15) ch=ch+'A'-10;
  16   1              putchar(ch);
  17   1      }
  18          void printhex(unsigned char hex)//以十六进制格式输出1个字节
  19          {
  20   1              unsigned char c;
  21   1              c=hex;
  22   1              c=c>>4;
  23   1              printchar(c);
  24   1              c=hex;
  25   1              c=c&0x0F;
  26   1              printchar(c);
  27   1      }
  28          void CardLoop()
  29          {
  30   1              unsigned char p[4];
  31   1              unsigned char sn[4];
  32   1              unsigned char type;
  33   1              unsigned char i;
  34   1      
  35   1              if(M500PiccCommonRequest(PICC_REQIDL,p)!=0)     //寻卡
  36   1                      return;                 //无卡时退出
  37   1              if(p[0]==2)
  38   1                      type=MifareProCard;     // Mifare Pro 卡
  39   1              else if(p[0]==4)
  40   1                      type=MifareOneCard;       // Mifare One 卡
  41   1              else if(p[0]==16)
  42   1                      type=MifareLightCard;   // Mifare Light 卡
  43   1              else
  44   1                      return;                 //未知
  45   1              if(M500PiccCascAnticoll(0,sn)!=0)               //卡防冲突
  46   1                      return;
  47   1              if(M500PiccCascSelect(sn,p)!=0) //选择卡
  48   1                      return;
  49   1              M500PiccHalt();         //终止卡操作
  50   1              SPK=0;
  51   1              LED=0;
  52   1              printf("SN is 0x");
  53   1              for(i=0;i<4;i++)
  54   1                      printhex(sn[i]);
  55   1              putchar('\n');
C51 COMPILER V7.06   MAIN                                                                  12/15/2008 16:23:27 PAGE 2   

  56   1              delay_ms(200);
  57   1              SPK=1;
  58   1              LED=1;
  59   1              delay_ms(50);
  60   1      }
  61          
  62          void init(void)
  63          {
  64   1              LED=0;
  65   1              SPK=0;
  66   1      
  67   1              TMOD=0x0F;
  68   1              TMOD=0x20;
  69   1              TH1=0xFD;
  70   1              SCON=0x50;
  71   1              PCON=0x00;
  72   1              TR1=1;
  73   1              TI=1;
  74   1              EA=1;
  75   1      
  76   1              printf("Start\n");
  77   1      
  78   1              MfConfig();
  79   1      
  80   1              delay_ms(200);
  81   1              SPK=1;
  82   1              LED=1;
  83   1      }
  84          
  85          void main()
  86          {
  87   1              init();
  88   1              for(;;)
  89   1                      CardLoop();
  90   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    255    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      11
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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