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

📄 protocol.lst

📁 这是一个51单片机实现的控制器程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V6.12  PROTOCOL                                                               10/22/2004 10:22:31 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE PROTOCOL
OBJECT MODULE PLACED IN C:\MY\DDYK\PROTOCOL.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE C:\MY\DDYK\PROTOCOL.C DB SB OE

stmt level    source

   1          #include "REGX52.H"
   2          #include "yk.h"
   3          
   4          
   5          extern DWORD Read_Hdd(BYTE);
   6          extern void Write_Hdd(BYTE);
   7          extern BYTE Read1B(BYTE cAddress,bit bRegion);
   8          extern void Write1B(BYTE cData,BYTE cAddress,bit bRegion);
   9          extern void YkPro(unsigned char,unsigned char);
  10          extern BYTE data Station;
  11          extern BYTE data Trs_Buf[25];
  12          extern BYTE idata Rcv_Buf[30];
  13          extern bit Trs_Flag,Rcv_Flag;
  14          extern bit  data Yk_All,Disp_Flag;
  15          extern BYTE data House_Max;
  16          extern BYTE data Trs_Wp,Trs_Rp,Rcv_Wp,Rcv_Rp;
  17          extern BYTE data Start;
  18          extern BYTE idata YkNo,YkHf,YkStatus,Yk_En;
  19          
  20          extern BYTE xdata Second   ;//    _at_ 0x00;
  21          extern BYTE xdata Minute   ;//    _at_ 0x02;
  22          extern BYTE xdata Hour     ;//    _at_ 0x04;
  23          extern BYTE xdata Week    ;//     _at_ 0x06;
  24          extern BYTE xdata Day     ;//     _at_ 0x07;
  25          extern BYTE xdata Month    ;//     _at_ 0x08;
  26          extern BYTE xdata Year     ;//     _at_ 0x09;
  27          extern BYTE xdata RegB;
  28          BYTE data Trs_Comm,Trs_Comm_Bak;
  29          BYTE data Rcv_Comm,Trs_Check;
  30          BYTE data House_R,Week_Tmp,No_Tmp;
  31          
  32          
  33          
  34          
  35          void eb90(void)
  36          {
  37   1        Trs_Buf[0]=0xeb;
  38   1        Trs_Buf[1]=0x90;
  39   1        Trs_Buf[2]=0x00;
  40   1        Trs_Buf[3]=0x00;
  41   1        Trs_Buf[4]=0x00;
  42   1        Trs_Buf[5]=0x00;
  43   1      }
  44          
  45          void Trs_Edit(void)
  46          {
  47   1         BYTE i,Trs_Length;
  48   1         Trs_Flag=0;
  49   1         switch (Trs_Comm)
  50   1             {
  51   2              case (0xaa):
  52   2                      eb90();
  53   2                    	Trs_Length=5;
  54   2                      Trs_Buf[6]=Trs_Length;
  55   2                      Trs_Buf[7]=0;
C51 COMPILER V6.12  PROTOCOL                                                               10/22/2004 10:22:31 PAGE 2   

  56   2                      Trs_Buf[8]=Trs_Comm_Bak;
  57   2                      Trs_Buf[9]=Station;
  58   2                      Trs_Buf[10]=0;
  59   2                      Trs_Buf[11]=0x80;    //
  60   2                      Trs_Check=0;
  61   2                      for(i=8;i<12;i++)
  62   2                       {
  63   3                         Trs_Check+=Trs_Buf[i];
  64   3                       }
  65   2                   Trs_Buf[12]=Trs_Check;
  66   2                   Trs_Wp=13;
  67   2      
  68   2                break;
  69   2      
  70   2      
  71   2      
  72   2               case (0xbb):
  73   2      
  74   2                      eb90();
  75   2                    	Trs_Length=6;
  76   2                      Trs_Buf[6]=Trs_Length;
  77   2                      Trs_Buf[7]=0;
  78   2                      Trs_Buf[8]=Trs_Comm_Bak;
  79   2                      Trs_Buf[9]=Station;
  80   2                      Trs_Buf[10]=0;
  81   2                      Trs_Buf[11]=House_R;
  82   2                      Trs_Buf[12]=YkStatus;
  83   2                      Trs_Check=0;
  84   2                      for(i=8;i<13;i++)
  85   2                       {
  86   3                         Trs_Check+=Trs_Buf[i];
  87   3                       }
  88   2                   Trs_Buf[13]=Trs_Check;
  89   2                   Trs_Wp=14;
  90   2      
  91   2                break;
  92   2             case (0xd2):     // 查询供电时段
  93   2      
  94   2                      eb90();
  95   2                    	Trs_Length=13;
  96   2                      Trs_Buf[6]=Trs_Length;
  97   2                      Trs_Buf[7]=0;
  98   2                      Trs_Buf[8]=Trs_Comm;
  99   2                      Trs_Buf[9]=Station;
 100   2                      Trs_Buf[10]=0;
 101   2                      Trs_Buf[11]=0;
 102   2                      Trs_Buf[12]=0;
 103   2      
 104   2                      Trs_Buf[13]=0xff;
 105   2                      Trs_Buf[14]=Week_Tmp;
 106   2                      Trs_Buf[15]=No_Tmp;
 107   2                      Trs_Buf[16]=Read1B(20+10*(Week_Tmp-1)+2*(No_Tmp-1),0);     //H Hour
 108   2                      Trs_Buf[17]=Read1B(20+10*(Week_Tmp-1)+2*(No_Tmp-1)+1,0);   //H Minute
 109   2      
 110   2                      Trs_Buf[18]=Read1B(90+10*(Week_Tmp-1)+2*(No_Tmp-1),0);     //F Hour
 111   2                      Trs_Buf[19]=Read1B(90+10*(Week_Tmp-1)+2*(No_Tmp-1)+1,0);   //F Minute
 112   2                      Trs_Check=0;
 113   2                      for(i=8;i<20;i++)
 114   2                       {
 115   3                         Trs_Check+=Trs_Buf[i];
 116   3                       }
 117   2                   Trs_Buf[20]=Trs_Check;
C51 COMPILER V6.12  PROTOCOL                                                               10/22/2004 10:22:31 PAGE 3   

 118   2                   Trs_Wp=21;
 119   2      
 120   2                break;
 121   2      
 122   2             case (0xd8):     // 时钟
 123   2      
 124   2                      eb90();
 125   2                    	Trs_Length=11;
 126   2                      Trs_Buf[6]=Trs_Length;
 127   2                      Trs_Buf[7]=0;
 128   2                      Trs_Buf[8]=Trs_Comm;
 129   2                      Trs_Buf[9]=Station;
 130   2                      Trs_Buf[10]=0;
 131   2                      Cs12887=0;
 132   2                      Trs_Buf[11]=Year;
 133   2                      Trs_Buf[12]=Month;
 134   2      
 135   2                      Trs_Buf[13]=Day;
 136   2                      Trs_Buf[14]=Hour;
 137   2                      Trs_Buf[15]=Minute;
 138   2                      Trs_Buf[16]=Second;
 139   2                      Trs_Buf[17]=Week;
 140   2                      Cs12887=1;
 141   2                      Trs_Check=0;
 142   2                      for(i=8;i<18;i++)
 143   2                       {
 144   3                         Trs_Check+=Trs_Buf[i];
 145   3                       }
 146   2                   Trs_Buf[18]=Trs_Check;
 147   2                   Trs_Wp=19;
 148   2      
 149   2                break;
 150   2      
 151   2              default:
 152   2                break;
 153   2             }
 154   1             DIR485=0;
 155   1             if(Trs_Buf[0]==0xeb && Trs_Buf[1]==0x90)
 156   1              {
 157   2               SBUF=0xfe;
 158   2               Trs_Rp=0;
 159   2              }
 160   1              else
 161   1              {
 162   2               SBUF=Trs_Buf[0];
 163   2               Trs_Rp=1;
 164   2              }
 165   1      }
 166          
 167          void Rcv_Pro(void)
 168          {
 169   1        BYTE i;
 170   1        BYTE Rcv_Check,Rcv_Length,Rcv_Tmp,Tmp,Tmp1;
 171   1        if((Rcv_Wp-Rcv_Rp)>(Rcv_Buf[Rcv_Rp+4]+5) && Rcv_Wp>11)
 172   1         {
 173   2         	Rcv_Flag=0;
 174   2         	Rcv_Wp=0;
 175   2         	Rcv_Length=Rcv_Buf[Rcv_Rp+4];
 176   2         	Rcv_Check=0;
 177   2         	for(i=Rcv_Rp+6;i<Rcv_Rp+Rcv_Length+5;i++)
 178   2         	 {
 179   3         	 	Rcv_Check+=Rcv_Buf[i];
C51 COMPILER V6.12  PROTOCOL                                                               10/22/2004 10:22:31 PAGE 4   

 180   3         	 }
 181   2               Rcv_Comm=0;
 182   2         	if(Rcv_Check==Rcv_Buf[Rcv_Rp+5+Rcv_Length])
 183   2         	 {
 184   3         	 	Rcv_Comm=Rcv_Buf[Rcv_Rp+6];
 185   3      
 186   3         	 }
 187   2         	switch (Rcv_Comm)

⌨️ 快捷键说明

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