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

📄 protocol.lst

📁 实用的空调计费系统
💻 LST
📖 第 1 页 / 共 4 页
字号:
C51 COMPILER V7.50   PROTOCOL                                                              07/20/2005 09:16:48 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE PROTOCOL
OBJECT MODULE PLACED IN E:\空调计费\空调计费\PROTOCOL.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE E:\空调计费\空调计费\PROTOCOL.C DB SB OE

line level    source

   1          #include "P89C60X2.h"
   2          #include "hicj6.h"
   3          #include "fram.h"
   4          #include "hd7279.h"
   5          extern void TrsRelay(BYTE YkNo,BYTE YkHf);
   6          
   7          extern BYTE xdata Trs_Buf[25];
   8          extern BYTE xdata Rcv_Buf[30];
   9          extern bit Trs_Flag,Rcv_Flag;
  10          extern BYTE Relay_Station;
  11          BYTE data House_Max,Station;
  12          BYTE data Trs_Wp,Trs_Rp,Rcv_Wp,Rcv_Rp;
  13          extern BYTE data Start;
  14          extern union hdd_long {BYTE Hdd_B[4];unsigned long Hdd_L;} Hdd_Str;
  15          //extern union Full_Str {BYTE Full_B[4];unsigned long Full_L;} Full;
  16          BYTE data Short_New[5],Break_New[5];
  17          extern BYTE data Hdd_En,Short_En,Break_En;
  18          extern BYTE data HddEn_Sum,Flash;
  19          extern BYTE data Short_Bak,Break_Bak;
  20          //extern BYTE xdata RelayOffTimes[40];
  21          //extern BYTE code Relay_Station;
  22          extern bit Alarm_Flag,Alarm_Check,HddEn_Count;
  23          BYTE data Trs_Comm;
  24          BYTE data Rcv_Comm,Trs_Check;
  25          BYTE data House_R;
  26          BYTE data B3;
  27          BYTE data Power_En,Alarm_Select,Trs_Comm_Bak;
  28          
  29          bit All_Hdd;
  30          
  31          void eb90(void)
  32          {
  33   1        Trs_Buf[0]=0xeb;
  34   1        Trs_Buf[1]=0x90;
  35   1        Trs_Buf[2]=0x00;
  36   1        Trs_Buf[3]=0x00;
  37   1        Trs_Buf[4]=0x00;
  38   1        Trs_Buf[5]=0x00;
  39   1      }
  40          
  41          void Trs_Edit(void)
  42          {
  43   1         BYTE i,Trs_Length;
  44   1         Trs_Flag=0;
  45   1         switch (Trs_Comm)
  46   1             {
  47   2              case (0xaa):
  48   2                      eb90();
  49   2                      Trs_Length=5;
  50   2                      Trs_Buf[6]=Trs_Length;
  51   2                      Trs_Buf[7]=0;
  52   2                      Trs_Buf[8]=Trs_Comm_Bak;
  53   2                      Trs_Buf[9]=Station;
  54   2                      Trs_Buf[10]=0;
  55   2                      Trs_Buf[11]=Start&0x80;
C51 COMPILER V7.50   PROTOCOL                                                              07/20/2005 09:16:48 PAGE 2   

  56   2                      Trs_Check=0;
  57   2                      for(i=8;i<12;i++)
  58   2                       {
  59   3                         Trs_Check+=Trs_Buf[i];
  60   3                       }
  61   2                   Trs_Buf[12]=Trs_Check;
  62   2                   Trs_Wp=13;
  63   2      
  64   2                break;
  65   2      
  66   2      
  67   2               case (0xb0):
  68   2                      i=Read1B(250+(House_R-1)/8);
  69   2                      if(i & (1<<((House_R-1)%8)) )
  70   2                        Start|=1;
  71   2                        else Start&=0x80;
  72   2                      eb90();
  73   2                      Trs_Length=15;
  74   2                      Trs_Buf[6]=Trs_Length;
  75   2                      Trs_Buf[7]=0;
  76   2                      Trs_Buf[8]=Trs_Comm;
  77   2                      Trs_Buf[9]=Station;
  78   2                      Trs_Buf[10]=0;
  79   2                      Trs_Buf[11]=House_R;
  80   2                      Trs_Buf[12]=Start;
  81   2                      i=Read1B(200+House_R-1);
  82   2                      Trs_Buf[13]=i&0x0f;// Type
  83   2                      Trs_Buf[14]=Read1B((House_R-1)*3+0x100);
  84   2                      Trs_Buf[15]=Read1B((House_R-1)*3+1+0x100);
  85   2                      Trs_Buf[16]=Read1B((House_R-1)*3+2+0x100);
  86   2                      i=Read1B(House_R-1+120+0x100);
  87   2                      Trs_Buf[17]=i>>4;          //Constant
  88   2                      Trs_Buf[18]=i&0x0f;
  89   2                      i=Read1B(200+House_R-1);
  90   2                      Trs_Buf[19]=i>>4;  //Point
  91   2                      Trs_Buf[20]=0;
  92   2                      i=Read1B(240+(House_R-1)/8);
  93   2                      if(i & (1<<((House_R-1)%8)) )
  94   2                      Trs_Buf[20]|=0x04;     //Short
  95   2                      i=Read1B(245+(House_R-1)/8);
  96   2                      if(i & (1<<((House_R-1)%8)) )
  97   2                      Trs_Buf[20]|=0x10;     //Break
  98   2                      i=Read1B(160+(House_R-1)/8+0x100);
  99   2                      if(i & (1<<((House_R-1)%8)) )
 100   2                      Trs_Buf[20]|=0x40;     //Power
 101   2                      Trs_Buf[21]=0;
 102   2                      Trs_Check=0;
 103   2                      for(i=8;i<22;i++)
 104   2                       {
 105   3                         Trs_Check+=Trs_Buf[i];
 106   3                       }
 107   2                   Trs_Buf[22]=Trs_Check;
 108   2                   Trs_Wp=23;
 109   2      
 110   2                break;
 111   2               case (0xbb):
 112   2                      i=Read1B((250+(House_R-1)/8));
 113   2                      if((1<<((House_R-1)%8))&i)
 114   2                       {
 115   3                         Start|=0x01;
 116   3                       }
 117   2                       else Start&=0x80;
C51 COMPILER V7.50   PROTOCOL                                                              07/20/2005 09:16:48 PAGE 3   

 118   2                      eb90();
 119   2                      Trs_Length=6;
 120   2                      Trs_Buf[6]=Trs_Length;
 121   2                      Trs_Buf[7]=0;
 122   2                      Trs_Buf[8]=Trs_Comm_Bak;
 123   2                      Trs_Buf[9]=Station;
 124   2                      Trs_Buf[10]=0;
 125   2                      Trs_Buf[11]=House_R;
 126   2                      Trs_Buf[12]=Start;
 127   2                      Trs_Check=0;
 128   2                      for(i=8;i<13;i++)
 129   2                       {
 130   3                         Trs_Check+=Trs_Buf[i];
 131   3                       }
 132   2                   Trs_Buf[13]=Trs_Check;
 133   2                   Trs_Wp=14;
 134   2      
 135   2                break;
 136   2               case (0xb2):
 137   2                      if(House_R!=0xff)                    // One Hdd
 138   2                      {
 139   3                          Hdd_Str.Hdd_L=Read_Hdd(House_R-1);
 140   3                          i=Read1B(250+((House_R-1)/8));
 141   3                          if((1<<((House_R-1)%8))&i)
 142   3                           {
 143   4                             Start|=0x01;
 144   4                           }
 145   3                           else Start&=0x80;
 146   3                        eb90();
 147   3                        Trs_Length=10;
 148   3                        Trs_Buf[6]=Trs_Length;
 149   3                        Trs_Buf[7]=0;
 150   3                        Trs_Buf[8]=Trs_Comm;
 151   3                        Trs_Buf[9]=Station;
 152   3                        Trs_Buf[10]=0;
 153   3                        Trs_Buf[11]=House_R;
 154   3                        Trs_Buf[12]=Start;
 155   3                        Trs_Buf[13]=Hdd_Str.Hdd_B[3];
 156   3                        Trs_Buf[14]=Hdd_Str.Hdd_B[2];
 157   3                        Trs_Buf[15]=Hdd_Str.Hdd_B[1];
 158   3                        Trs_Buf[16]=Hdd_Str.Hdd_B[0];
 159   3                        Trs_Check=0;
 160   3                        for(i=8;i<17;i++)
 161   3                         {
 162   4                           Trs_Check+=Trs_Buf[i];
 163   4                         }
 164   3                       Trs_Buf[17]=Trs_Check;
 165   3                       Trs_Wp=18;
 166   3                      }
 167   2                      else                             //All Hdd
 168   2                      {
 169   3                       if(B3==0)     // B3==0
 170   3                        {
 171   4                              eb90();
 172   4                              Trs_Length=HddEn_Sum*6+4;
 173   4                              if(HddEn_Sum==0) Trs_Length=10;
 174   4                              Trs_Buf[6]=Trs_Length;
 175   4                              Trs_Buf[7]=0;
 176   4                              Trs_Buf[8]=Trs_Comm;
 177   4                              Trs_Buf[9]=Station;
 178   4                              Trs_Buf[10]=0;
 179   4                              Trs_Check=0;
C51 COMPILER V7.50   PROTOCOL                                                              07/20/2005 09:16:48 PAGE 4   

 180   4                              for(i=8;i<11;i++)
 181   4                               {
 182   5                                Trs_Check+=Trs_Buf[i];
 183   5                               }
 184   4                              Trs_Wp=11;
 185   4                              B3=1;
 186   4                              Trs_Flag=1;
 187   4                         }
 188   3                         else   //B3>0
 189   3                         {
 190   4                         B3Inc:
 191   4                              i=Read1B(250+((B3-1)/8));
 192   4                              if(HddEn_Sum)
 193   4                              {
 194   5                                if((1<<((B3-1)%8))&i)
 195   5                                 {
 196   6                                   Start|=0x01;
 197   6                                 }
 198   5                                 else
 199   5                                 {
 200   6                                   Start&=0x80;
 201   6                                   B3++;
 202   6                                  goto B3Inc;
 203   6                                 }
 204   5                               }
 205   4                              Hdd_Str.Hdd_L=Read_Hdd(B3-1);
 206   4                              if(HddEn_Sum==0)
 207   4                               {
 208   5                                Hdd_Str.Hdd_L=0xffffffff;
 209   5                                B3=0xff;
 210   5      
 211   5                               }
 212   4                              Trs_Buf[0]=B3;
 213   4                              Trs_Buf[1]=Start;
 214   4                              Trs_Buf[2]=Hdd_Str.Hdd_B[3];
 215   4                              Trs_Buf[3]=Hdd_Str.Hdd_B[2];
 216   4                              Trs_Buf[4]=Hdd_Str.Hdd_B[1];
 217   4                              Trs_Buf[5]=Hdd_Str.Hdd_B[0];
 218   4                              for(i=0;i<6;i++)
 219   4                               {
 220   5                                  Trs_Check+=Trs_Buf[i];
 221   5                               }
 222   4                               Trs_Wp=6;
 223   4                               Trs_Flag=1;
 224   4                               if(B3==House_Max||HddEn_Sum==0)
 225   4                                {
 226   5                                      Trs_Buf[Trs_Wp]=Trs_Check;
 227   5                                      Trs_Wp++;
 228   5                                      Trs_Flag=0;
 229   5                                }
 230   4                               B3++;
 231   4                         }
 232   3                      }
 233   2      
 234   2                break;
 235   2      
 236   2              case (0xb4):
 237   2                      i=Read1B(250+((House_R-1)/8));
 238   2                      if((1<<((House_R-1)%8))&i)
 239   2                       {
 240   3                         Start|=0x01;
 241   3                       }
C51 COMPILER V7.50   PROTOCOL                                                              07/20/2005 09:16:48 PAGE 5   

 242   2                       else Start&=0x80;
 243   2                      eb90();
 244   2                      Trs_Length=10;
 245   2                      Trs_Buf[6]=Trs_Length;
 246   2                      Trs_Buf[7]=0;
 247   2                      Trs_Buf[8]=Trs_Comm;
 248   2                      Trs_Buf[9]=Station;
 249   2                      Trs_Buf[10]=0;
 250   2                      Trs_Buf[11]=House_R;
 251   2                      Trs_Buf[12]=Start;
 252   2                      Trs_Buf[13]=0;

⌨️ 快捷键说明

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