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

📄 zlg500c.lst

📁 ZLG500的应用软件
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V8.02   ZLG500C                                                               04/18/2008 09:54:32 PAGE 1   


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

line level    source

   1          #define zlg500c_GLOBALS
   2          #include "main.h"
   3          #include "UART.h"
   4          #include "zlg500c.h"
   5          #include "delay.h"
   6          
   7          static INT8U SEQ = 0;
   8          static INT8U code FindDlyTab[BAUD_CNT] = { 9,5,3,2,2,2,2,1,1 };
   9          
  10          INT8U Zlg500c_Cmd(INT8U Addr)
  11          {
  12   1              INT8U Status;
  13   1              
  14   1              SerBfr[CMDTYPE] |= SEQ;
  15   1              
  16   1              while(Ser_Send(Addr) == FALSE);
  17   1              
  18   1              WAITRESPDLY = 20;               //延时100ms
  19   1              while(~SerDTValid && WAITRESPDLY);      //等待响应
  20   1              
  21   1              if(~SerDTValid)
  22   1              {
  23   2                      Status = COMMERR;
  24   2              }
  25   1              else
  26   1              {
  27   2                      SerDTValid = FALSE;
  28   2                      if(SEQ == (SerBfr[CMDTYPE]&0xf0))
  29   2                      {
  30   3                              if(Addr == SerBfr[SADDR] || Addr == 0xff)
  31   3                                      Status = OK;
  32   3                              else
  33   3                                      Status = ADDRERR;
  34   3                      }
  35   2                      else
  36   2                              Status = SEQERR;
  37   2                      SEQ += 0x10;
  38   2              }
  39   1      
  40   1              return Status;
  41   1      }
  42          
  43          #if GetDvcSnr_en
  44          INT8U GetDvcSnr(INT8U *DvcSnr)
  45          {
  46   1              INT8U Status;
  47   1              
  48   1              SerBfr[CMDTYPE] = 0;
  49   1              SerBfr[COMMAND] = 'A';
  50   1              SerBfr[LENGTH] = 0;
  51   1              
  52   1              Status = Zlg500c_Cmd(SlvAddr);
  53   1              
  54   1              if(Status == OK)
  55   1              {
C51 COMPILER V8.02   ZLG500C                                                               04/18/2008 09:54:32 PAGE 2   

  56   2                      Status = SerBfr[STATUS];
  57   2                      if(Status == OK)
  58   2                              memcopy(DvcSnr,&SerBfr[DATA],4);
  59   2              }
  60   1              return Status;
  61   1      }
  62          #endif
  63          
  64          #if SetSlvAddr_en
  65          INT8U SetSlvAddr(INT8U NewAddr,INT8U *DvcSnr)
  66          {
  67   1              INT8U Status;
  68   1              
  69   1              SerBfr[CMDTYPE] = 0;
  70   1              SerBfr[COMMAND] = 'B';
  71   1              SerBfr[LENGTH] = 5;
  72   1              memcopy(&SerBfr[DATA],DvcSnr,4);
  73   1              SerBfr[DATA+4] = NewAddr;
  74   1              
  75   1              Status = Zlg500c_Cmd(0xff);
  76   1              
  77   1              if(Status == OK)
  78   1              {
  79   2                      return SerBfr[STATUS];
  80   2              }
  81   1              return Status;
  82   1      }
  83          #endif
  84          
  85          #if GetSlvAddr_en
  86          INT8U GetSlvAddr(INT8U *Addr,INT8U *DvcSnr)
  87          {
  88   1              INT8U Status;
  89   1              
  90   1              SerBfr[CMDTYPE] = 0;
  91   1              SerBfr[COMMAND] = 'C';
  92   1              SerBfr[LENGTH] = 4;
  93   1              memcopy(&SerBfr[DATA],DvcSnr,4);
  94   1              
  95   1              Status = Zlg500c_Cmd(0xff);
  96   1              
  97   1              if(Status == OK)
  98   1              {
  99   2                      Status = SerBfr[STATUS];
 100   2                      if(Status == OK)
 101   2                              *Addr = SerBfr[DATA];
 102   2              }
 103   1              return Status;
 104   1      }
 105          #endif
 106          
 107          #if SetBaud_en
 108          INT8U SetBaud(INT8U NewBaud)
 109          {
 110   1              SerBfr[CMDTYPE] = SEQ;
 111   1              SerBfr[COMMAND] = 'D';
 112   1              SerBfr[LENGTH] = 1;
 113   1              SerBfr[DATA] = NewBaud;
 114   1              
 115   1              while(Ser_Send(0xff) == FALSE);
 116   1              while(SendStatus != SENDIDLE);
 117   1              
C51 COMPILER V8.02   ZLG500C                                                               04/18/2008 09:54:32 PAGE 3   

 118   1              TR0 = FALSE;
 119   1              TH1=BaudRateTable[NewBaud];
 120   1              TL1=BaudRateTable[NewBaud];
 121   1              TR1 = 1;
 122   1              
 123   1              SEQ += 0x10;
 124   1              return OK;
 125   1      }
 126          #endif
 127          
 128          #if FindSlv_en
 129          INT8U FindSlv(INT8U SAddr,INT8U EAddr,INT8U *SlvNum,INT8U *SlvBfr)
 130          {
 131   1              INT8U FSlvNum = EAddr-SAddr+1;
 132   1              
 133   1              *SlvNum = 0;
 134   1              SerBfr[CMDTYPE] = SEQ;
 135   1              SerBfr[COMMAND] = 'E';
 136   1              SerBfr[LENGTH] = 2;
 137   1              SerBfr[DATA] = SAddr;
 138   1              SerBfr[DATA+1] = EAddr;
 139   1              
 140   1              while(Ser_Send(0xff) == FALSE);
 141   1              while(SendStatus != SENDIDLE);
 142   1              
 143   1              WAITRESPDLY = FindDlyTab[BaudNum];
 144   1              while(WAITRESPDLY);
 145   1              WAITRESPDLY = FindDlyTab[BaudNum];
 146   1              
 147   1              while(1)
 148   1              {
 149   2                      if(SerDTValid)
 150   2                      {
 151   3                              if(SEQ == SerBfr[CMDTYPE])
 152   3                              {
 153   4                                      if(SerBfr[STATUS] == 0)
 154   4                                      {
 155   5                                              SlvBfr[SerBfr[SADDR]>>3] |= 0x01<<(SerBfr[SADDR]&0x07);
 156   5                                              (*SlvNum)++;
 157   5                                      }
 158   4                              }
 159   3                              SerDTValid = FALSE;
 160   3                      }
 161   2                      if(WAITRESPDLY == 0)
 162   2                      {
 163   3                              FSlvNum--;
 164   3                              if(FSlvNum == 0)        break;
 165   3                              WAITRESPDLY = FindDlyTab[BaudNum];
 166   3                      }
 167   2              }
 168   1      
 169   1              SEQ += 0x10;
 170   1              return OK;
 171   1      }
 172          #endif
 173          
 174          #if GetDvcInfo_en
 175          INT8U GetDvcInfo(INT8U *DvcInfo)
 176          {
 177   1              INT8U Status;
 178   1              
 179   1              SerBfr[CMDTYPE] = 1;
C51 COMPILER V8.02   ZLG500C                                                               04/18/2008 09:54:32 PAGE 4   

 180   1              SerBfr[COMMAND] = 'A';
 181   1              SerBfr[LENGTH] = 0;
 182   1              
 183   1              Status = Zlg500c_Cmd(SlvAddr);
 184   1              
 185   1              if(Status == OK)
 186   1              {
 187   2                      Status = SerBfr[STATUS];
 188   2                      if(Status == OK)
 189   2                              memcopy(DvcInfo,&SerBfr[DATA],SerBfr[LENGTH]);
 190   2              }
 191   1              return Status;
 192   1      }
 193          #endif
 194          
 195          #if PCDConfig_en
 196          INT8U PCDConfig()
 197          {
 198   1              INT8U Status;
 199   1              
 200   1              SerBfr[CMDTYPE] = 1;
 201   1              SerBfr[COMMAND] = 'B';
 202   1              SerBfr[LENGTH] = 0;
 203   1              
 204   1              Status = Zlg500c_Cmd(SlvAddr);
 205   1              
 206   1              if(Status == OK)
 207   1              {
 208   2                      Status = SerBfr[STATUS];
 209   2              }
 210   1              return Status;
 211   1      }
 212          #endif
 213          
 214          #if PCDClose_en
 215          INT8U PCDClose()
 216          {
 217   1              INT8U Status;
 218   1              
 219   1              SerBfr[CMDTYPE] = 1;
 220   1              SerBfr[COMMAND] = 'C';
 221   1              SerBfr[LENGTH] = 0;
 222   1              
 223   1              Status = Zlg500c_Cmd(SlvAddr);
 224   1              
 225   1              if(Status == OK)
 226   1              {
 227   2                      Status = SerBfr[STATUS];
 228   2              }
 229   1              return Status;
 230   1      }
 231          #endif
 232          
 233          #if PCDType_en
              INT8U PCDType(INT8U ISOType)
              {
                      INT8U Status;
                      
                      SerBfr[CMDTYPE] = 1;
                      SerBfr[COMMAND] = 'D';
                      SerBfr[LENGTH] = 1;
                      SerBfr[DATA] = ISOType;
C51 COMPILER V8.02   ZLG500C                                                               04/18/2008 09:54:32 PAGE 5   

                      
                      Status = Zlg500c_Cmd(SlvAddr);
                      
                      if(Status == OK)
                      {
                              Status = SerBfr[STATUS];
                      }
                      return Status;
              }
              #endif
 252          
 253          #if PCDLoadKey_en
 254          INT8U PCDLoadKey(INT8U KEYAB,INT8U SecNr,INT8U *Key)
 255          {
 256   1              INT8U Status;
 257   1              
 258   1              SerBfr[CMDTYPE] = 1;

⌨️ 快捷键说明

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