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

📄 zlg500s.lst

📁 ZLG522S的功能、硬件接口和ZLG500S相同
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   ZLG500S                                                               03/16/2009 15:23:02 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE ZLG500S
OBJECT MODULE PLACED IN zlg500s.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE zlg500s.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #define Zlg500S_GLOBALS
   2          #include "config.h"
   3          #include "Zlg500S.h"
   4          #include "zlg500S_comm.h"
   5          
   6          static void memcopy(INT8U *DBfr,INT8U *SBfr,INT8U Len);
   7          static INT8U SEQ = 0xf0;        //包号,见通信协议
   8          
   9          INT8U Zlg500S_Cmd()
  10          {
  11   1              INT8U Status;
  12   1              
  13   1              SEQ += 0x10;
  14   1              SerBfr[CMDTYPE] |= SEQ;         //命令类型与包号组成一个字节
  15   1              
  16   1              Status = Ser_Send();
  17   1      
  18   1              if(!Status)     
  19   1                      return COMMERR;
  20   1                      
  21   1              WaitRespDly = ZLG500S_DELAY_500ms;              //延时500ms
  22   1              while(WaitRespDly)              //等待响应
  23   1              {
  24   2                      if(Ser_Rcv())
  25   2                              break;
  26   2              }
  27   1      
  28   1              if(WaitRespDly == 0)
  29   1              {                                       //100ms内未收到响应
  30   2                      Status = COMMERR;
  31   2              }
  32   1              else
  33   1              {       
  34   2                      if(SEQ == (SerBfr[CMDTYPE]&0xf0))
  35   2                      {                               //包号匹配
  36   3                              Status = OK;
  37   3                      }
  38   2                      else
  39   2                              Status = SEQERR;        //包号不匹配
  40   2              }
  41   1              return Status;
  42   1      }
  43          
  44          #if GetDvcInfo_en
  45          INT8U GetDvcInfo(INT8U *DvcInfo)
  46          {
  47   1              INT8U Status;
  48   1              
  49   1              SerBfr[CMDTYPE] = 1;
  50   1              SerBfr[COMMAND] = 'A';
  51   1              SerBfr[LENGTH] = 0;
  52   1              
  53   1              Status = Zlg500S_Cmd();
  54   1              
  55   1              if(Status == OK)
C51 COMPILER V8.02   ZLG500S                                                               03/16/2009 15:23:02 PAGE 2   

  56   1              {
  57   2                      Status = SerBfr[STATUS];
  58   2                      if(Status == OK)
  59   2                              memcopy(DvcInfo,&SerBfr[DATA],SerBfr[LENGTH]);
  60   2              }
  61   1              return Status;
  62   1      }
  63          #endif
  64          
  65          #if PCDConfig_en
              INT8U PCDConfig()
              {
                      INT8U Status;
                      
                      SerBfr[CMDTYPE] = 1;
                      SerBfr[COMMAND] = 'B';
                      SerBfr[LENGTH] = 0;
                      
                      Status = Zlg500S_Cmd();
                      
                      if(Status == OK)
                      {
                              Status = SerBfr[STATUS];
                      }
                      return Status;
              }
              #endif
  83          
  84          #if PCDClose_en
              INT8U PCDClose()
              {
                      INT8U Status;
                      
                      SerBfr[CMDTYPE] = 1;
                      SerBfr[COMMAND] = 'C';
                      SerBfr[LENGTH] = 0;
                      
                      Status = Zlg500S_Cmd();
                      
                      if(Status == OK)
                      {
                              Status = SerBfr[STATUS];
                      }
                      return Status;
              }
              #endif
 102          
 103          #if PCDLoadKey_en
 104          INT8U PCDLoadKey(INT8U KEYAB,INT8U SecNr,INT8U *Key)
 105          {
 106   1              INT8U Status;
 107   1              
 108   1              SerBfr[CMDTYPE] = 1;
 109   1              SerBfr[COMMAND] = 'E';
 110   1              SerBfr[LENGTH] = 8;
 111   1              SerBfr[DATA] = KEYAB;
 112   1              SerBfr[DATA+1] = SecNr;
 113   1              memcopy(&SerBfr[DATA+2],Key,6);
 114   1              
 115   1              Status = Zlg500S_Cmd();
 116   1              
 117   1              if(Status == OK)
C51 COMPILER V8.02   ZLG500S                                                               03/16/2009 15:23:02 PAGE 3   

 118   1              {
 119   2                      Status = SerBfr[STATUS];
 120   2              }
 121   1              return Status;
 122   1      }
 123          #endif
 124          
 125          #if PCDWriteReg_en
              INT8U PCDWriteReg(INT8U RegAddr,INT8U RegValue)
              {
                      INT8U Status;
                      
                      SerBfr[CMDTYPE] = 1;
                      SerBfr[COMMAND] = 'F';
                      SerBfr[LENGTH] = 2;
                      SerBfr[DATA] = RegAddr;
                      SerBfr[DATA+1] = RegValue;
                      
                      Status = Zlg500S_Cmd();
                      
                      if(Status == OK)
                      {
                              Status = SerBfr[STATUS];
                      }
                      return Status;
              }
              #endif
 145          
 146          #if PCDReadReg_en
              INT8U PCDReadReg(INT8U RegAddr,INT8U *RegValue)
              {
                      INT8U Status;
                      
                      SerBfr[CMDTYPE] = 1;
                      SerBfr[COMMAND] = 'G';
                      SerBfr[LENGTH] = 1;
                      SerBfr[DATA] = RegAddr;
                      
                      Status = Zlg500S_Cmd();
                      
                      if(Status == OK)
                      {
                              Status = SerBfr[STATUS];
                              if(Status == OK)
                                      *RegValue = SerBfr[DATA];
                      }
                      return Status;
              }
              #endif
 167          
 168          #if PiccRequest_en
 169          INT8U PiccRequest(INT8U Req_Code,INT8U *TagType)
 170          {
 171   1              INT8U Status;
 172   1              
 173   1              SerBfr[CMDTYPE] = 2;
 174   1              SerBfr[COMMAND] = 'A';
 175   1              SerBfr[LENGTH] = 1;
 176   1              SerBfr[DATA] = Req_Code;
 177   1              
 178   1              Status = Zlg500S_Cmd();
 179   1              
C51 COMPILER V8.02   ZLG500S                                                               03/16/2009 15:23:02 PAGE 4   

 180   1              if(Status == OK)
 181   1              {
 182   2                      Status = SerBfr[STATUS];
 183   2                      if(Status == OK)
 184   2                      {
 185   3                              *TagType = SerBfr[DATA];
 186   3                              *(TagType+1) = SerBfr[DATA+1];
 187   3                      }
 188   2              }
 189   1              return Status;
 190   1      }
 191          #endif
 192          
 193          #if PiccAnticoll_en
 194          INT8U PiccAnticoll(INT8U Sel_Code,INT8U Bcnt,INT8U *PiccSnr)
 195          {
 196   1              INT8U Status;
 197   1              
 198   1              SerBfr[CMDTYPE] = 2;
 199   1              SerBfr[COMMAND] = 'B';
 200   1              SerBfr[LENGTH] = 2;
 201   1              SerBfr[DATA] = Sel_Code;
 202   1              SerBfr[DATA+1] = Bcnt;
 203   1              
 204   1              Status = Zlg500S_Cmd();
 205   1              
 206   1              if(Status == OK)
 207   1              {
 208   2                      Status = SerBfr[STATUS];
 209   2                      if(Status == OK)
 210   2                      {
 211   3                              memcopy(PiccSnr,&SerBfr[DATA],4);
 212   3                      }
 213   2              }
 214   1              return Status;
 215   1      }
 216          #endif
 217          
 218          #if PiccSelect_en
 219          INT8U PiccSelect(INT8U Sel_Code,INT8U *PiccSnr,INT8U *Sak)
 220          {
 221   1              INT8U Status;
 222   1              
 223   1              SerBfr[CMDTYPE] = 2;
 224   1              SerBfr[COMMAND] = 'C';
 225   1              SerBfr[LENGTH] = 5;
 226   1              SerBfr[DATA] = Sel_Code;
 227   1              memcopy(&SerBfr[DATA+1],PiccSnr,4);
 228   1              
 229   1              Status = Zlg500S_Cmd();
 230   1              
 231   1              if(Status == OK)
 232   1              {
 233   2                      Status = SerBfr[STATUS];
 234   2                      if(Status == OK)
 235   2                      {
 236   3                              *Sak = SerBfr[DATA];
 237   3                      }
 238   2              }
 239   1              return Status;
 240   1      }
 241          #endif
C51 COMPILER V8.02   ZLG500S                                                               03/16/2009 15:23:02 PAGE 5   

 242          
 243          #if PiccHalt_en
 244          INT8U PiccHalt()
 245          {
 246   1              INT8U Status;
 247   1              
 248   1              SerBfr[CMDTYPE] = 2;
 249   1              SerBfr[COMMAND] = 'D';
 250   1              SerBfr[LENGTH] = 0;
 251   1              
 252   1              Status = Zlg500S_Cmd();
 253   1              
 254   1              if(Status == OK)
 255   1              {
 256   2                      Status = SerBfr[STATUS];
 257   2              }
 258   1              return Status;
 259   1      }
 260          #endif
 261          
 262          #if PiccAuthE2_en
 263          INT8U PiccAuthE2(INT8U KeyAB,INT8U *PiccSnr,INT8U SecNr,INT8U Block)
 264          {
 265   1              INT8U Status;
 266   1              
 267   1              SerBfr[CMDTYPE] = 2;
 268   1              SerBfr[COMMAND] = 'E';
 269   1              SerBfr[LENGTH] = 7;
 270   1              SerBfr[DATA] = KeyAB;
 271   1              memcopy(&SerBfr[DATA+1],PiccSnr,4);
 272   1              SerBfr[DATA+5] = SecNr;
 273   1              SerBfr[DATA+6] = Block; 

⌨️ 快捷键说明

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