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

📄 main.lst

📁 采用C52+R6C完成的ISO15693标准的刷卡器程序
💻 LST
字号:
C51 COMPILER V8.08   MAIN                                                                  01/18/2009 19:53:05 PAGE 1   


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

line level    source

   1          #include "typedef.h"
   2          
   3          extern void switchon(void);
   4          extern uchar rd_ConReg(void);
   5          extern void send_ISO_cmd(uchar flags,uchar cmd,uchar dataPstion,uchar paraLength);
   6          
   7          
   8          
   9          //////////////////////////////////////////////////////////////////////////////////////
  10          //            普通延时函数 延时t毫秒
  11          //////////////////////////////////////////////////////////////////////////////////////
  12          void delayms(uint t)
  13          {
  14   1              uint i;
  15   1              while(t--)
  16   1              {
  17   2                      /* 对于11.0592M时钟,约延时1ms */
  18   2                      for (i=0;i<125;i++)
  19   2                      {_nop_();}
  20   2              }
  21   1      }
  22          
  23          /* 串口发送数据函数 */
  24          void Transmit(uchar* ch,uchar n)
  25          {
  26   1              uint i;
  27   1              TI = 0;
  28   1              for(i=0;i<n;i++)
  29   1              {
  30   2                      
  31   2                      SBUF = ch[i];                                   
  32   2                      while(!TI);
  33   2                      TI = 0;
  34   2              }
  35   1      }
  36          
  37          void Init(void)
  38          {
  39   1              TMOD=0x11;                              /*定时器1方式2,定时器0方式1*/
  40   1      
  41   1              TH0=0xdc;                               /****T0为10ms的基准定时****/
  42   1              TL0=0x00;                               //11.0592M
  43   1      
  44   1              TR0=1;                                  /*打开T0定时器*/
  45   1              ET0=1;                                  /*允许T0中断*/
  46   1      
  47   1              SCON = 0x50;
  48   1              T2CON = 0x30;
  49   1              TL2 = 0xfd;
  50   1              TH2 = 0xff;
  51   1              RCAP2L = 0xfd;
  52   1              RCAP2H = 0xff;
  53   1              TR2 = 1;                                //115200bps
  54   1              
  55   1              ES=0;                                   /*打开串行口中断*/
C51 COMPILER V8.08   MAIN                                                                  01/18/2009 19:53:05 PAGE 2   

  56   1              PS=0;                                   /*串行口中断的优先级为0*/
  57   1              EA=1;                                   /*打开总中断开关*/
  58   1      }
  59          
  60          
  61          /* 主程序 */
  62          extern bit userCardOk;
  63          extern uchar idata pcdata[];
  64          extern bit b_spker; 
  65          extern uchar pwUpScanCnt; 
  66          extern uchar spkerCnt;
  67          
  68          extern uchar xx;
  69          
  70          void main()
  71          { 
  72   1              uint i;
  73   1          uchar uid[8];
  74   1      
  75   1              LED1 = 0;
  76   1              LED2 = 0;
  77   1              LED3 = 1;
  78   1              BEEP = 0;
  79   1      
  80   1              Init();
  81   1              
  82   1              switchon();       for(i=0;i<0xfff;i++);
  83   1              rd_ConReg();    
  84   1                      
  85   1      
  86   1              while(1)                
  87   1              {
  88   2                      if(pwUpScanCnt > 40)    
  89   2                      {       
  90   3                              pwUpScanCnt = 0;
  91   3                              switchon();  for(i=0;i<0x03ff;i++);
  92   3                              userCardOk = 0;
  93   3                              send_ISO_cmd(0x01,0x2B,6,0);
  94   3                              if(userCardOk)
  95   3                              {       
  96   4                                      for(i=0;i<8;i++)
  97   4                                              uid[i] = pcdata[12-i];
  98   4                                      Transmit(uid,sizeof(uid));                      
  99   4                                      userCardOk = 0; 
 100   4                                      b_spker = 1;
 101   4                                      spkerCnt = 0;
 102   4      
 103   4                                      
 104   4                              }
 105   3      
 106   3                              //Transmit(&xx,1);
 107   3                              
 108   3                      }
 109   2                      
 110   2                      if(b_spker)
 111   2                      {
 112   3                              LED1 = 1;
 113   3                              BEEP = 1;
 114   3                              if(spkerCnt > 20)
 115   3                              {
 116   4                                      LED1 = 0;
 117   4                                      BEEP = 0;
C51 COMPILER V8.08   MAIN                                                                  01/18/2009 19:53:05 PAGE 3   

 118   4                                      b_spker = 0;
 119   4                              }
 120   3                      }
 121   2                      
 122   2      
 123   2              }
 124   1              
 125   1              
 126   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    286    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      14
   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 + -