📄 protocol.lst
字号:
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 + -