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

📄 zlg500s.lst

📁 内部包含多个文件:main.c,config.c,zlg500s.h zlg500s.c等。对于zlg500s开发板的使用
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   ZLG500S                                                               05/17/2008 12:45:00 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE ZLG500S
OBJECT MODULE PLACED IN zlg500s.OBJ
COMPILER INVOKED BY: D:\Program Files\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      
  52   1              SerBfr[LENGTH] = 0;
  53   1              
  54   1              Status = Zlg500S_Cmd();
  55   1              
C51 COMPILER V7.50   ZLG500S                                                               05/17/2008 12:45:00 PAGE 2   

  56   1              if(Status == OK)
  57   1              {
  58   2                      Status = SerBfr[STATUS];
  59   2                      if(Status == OK)
  60   2                              memcopy(DvcInfo,&SerBfr[DATA],SerBfr[LENGTH]);
  61   2              }
  62   1              return Status;
  63   1      }
  64          #endif
  65          
  66          #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
  84          
  85          #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
 103          
 104          #if PCDLoadKey_en
 105          INT8U PCDLoadKey(INT8U KEYAB,INT8U SecNr,INT8U *Key)
 106          {
 107   1              INT8U Status;
 108   1              
 109   1              SerBfr[CMDTYPE] = 1;
 110   1              SerBfr[COMMAND] = 'E';
 111   1              SerBfr[LENGTH] = 8;
 112   1              SerBfr[DATA] = KEYAB;
 113   1              SerBfr[DATA+1] = SecNr;
 114   1              memcopy(&SerBfr[DATA+2],Key,6);
 115   1              
 116   1              Status = Zlg500S_Cmd();
 117   1              
C51 COMPILER V7.50   ZLG500S                                                               05/17/2008 12:45:00 PAGE 3   

 118   1              if(Status == OK)
 119   1              {
 120   2                      Status = SerBfr[STATUS];
 121   2              }
 122   1              return Status;
 123   1      }
 124          #endif
 125          
 126          #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
 146          
 147          #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
 168          
 169          #if PiccRequest_en
 170          INT8U PiccRequest(INT8U Req_Code,INT8U *TagType)
 171          {
 172   1              INT8U Status;
 173   1              
 174   1              SerBfr[CMDTYPE] = 2;
 175   1              SerBfr[COMMAND] = 'A';
 176   1              SerBfr[LENGTH] = 1;
 177   1              SerBfr[DATA] = Req_Code;
 178   1              
 179   1              Status = Zlg500S_Cmd();
C51 COMPILER V7.50   ZLG500S                                                               05/17/2008 12:45:00 PAGE 4   

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

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

⌨️ 快捷键说明

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