📄 protocol.lst
字号:
C51 COMPILER V6.12 PROTOCOL 01/03/2005 12:08:20 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE PROTOCOL
OBJECT MODULE PLACED IN D:\TEST\PROTOCOL.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\TEST\PROTOCOL.C DB SB OE
stmt level source
1 #include "P89C60X2.h"
2 #include "hicj6.h"
3 #include "fm25040.h"
4 #include "hd7279.h"
5 extern void TrsRelay(BYTE YkNo,BYTE YkHf);
6 extern BYTE xdata Trs_Buf[25];
7 extern BYTE xdata Rcv_Buf[30];
8 extern bit Trs_Flag,Rcv_Flag;
9 BYTE data House_Max,Station;
10 BYTE data Trs_Wp,Trs_Rp,Rcv_Wp,Rcv_Rp;
11 extern BYTE data Start;
12 extern union hdd_long {BYTE Hdd_B[4];unsigned long Hdd_L;} Hdd_Str;
13 extern union Full_Str {BYTE Full_B[4];unsigned long Full_L;} Full;
14 BYTE data Short_New[5],Break_New[5];
15 extern BYTE data Hdd_En,Short_En,Break_En;
16 extern BYTE data HddEn_Sum,Flash;
17 extern BYTE data Short_Bak,Break_Bak;
18 //extern BYTE xdata RelayOffTimes[40];
19 extern BYTE code Relay_Station;
20 extern bit Alarm_Flag,Alarm_Check,HddEn_Count;
21 BYTE data Trs_Comm;
22 BYTE data Rcv_Comm,Trs_Check;
23 BYTE data House_R;
24 BYTE data B3;
25 BYTE data Power_En,Alarm_Select,Trs_Comm_Bak;
26
27 bit All_Hdd;
28
29 void eb90(void)
30 {
31 1 Trs_Buf[0]=0xeb;
32 1 Trs_Buf[1]=0x90;
33 1 Trs_Buf[2]=0x00;
34 1 Trs_Buf[3]=0x00;
35 1 Trs_Buf[4]=0x00;
36 1 Trs_Buf[5]=0x00;
37 1 }
38
39 void Trs_Edit(void)
40 {
41 1 BYTE i,Trs_Length;
42 1 Trs_Flag=0;
43 1 switch (Trs_Comm)
44 1 {
45 2 case (0xaa):
46 2 eb90();
47 2 Trs_Length=5;
48 2 Trs_Buf[6]=Trs_Length;
49 2 Trs_Buf[7]=0;
50 2 Trs_Buf[8]=Trs_Comm_Bak;
51 2 Trs_Buf[9]=Station;
52 2 Trs_Buf[10]=0;
53 2 Trs_Buf[11]=Start&0x80;
54 2 Trs_Check=0;
55 2 for(i=8;i<12;i++)
C51 COMPILER V6.12 PROTOCOL 01/03/2005 12:08:20 PAGE 2
56 2 {
57 3 Trs_Check+=Trs_Buf[i];
58 3 }
59 2 Trs_Buf[12]=Trs_Check;
60 2 Trs_Wp=13;
61 2
62 2 break;
63 2
64 2
65 2 case (0xb0):
66 2 i=Read1B(250+(House_R-1)/8,0);
67 2 if(i & (1<<((House_R-1)%8)) )
68 2 Start|=1;
69 2 else Start&=0x80;
70 2 eb90();
71 2 Trs_Length=15;
72 2 Trs_Buf[6]=Trs_Length;
73 2 Trs_Buf[7]=0;
74 2 Trs_Buf[8]=Trs_Comm;
75 2 Trs_Buf[9]=Station;
76 2 Trs_Buf[10]=0;
77 2 Trs_Buf[11]=House_R;
78 2 Trs_Buf[12]=Start;
79 2 i=Read1B(200+House_R-1,0);
80 2 Trs_Buf[13]=i&0x0f;// Type
81 2 Trs_Buf[14]=Read1B((House_R-1)*3,1);
82 2 Trs_Buf[15]=Read1B((House_R-1)*3+1,1);
83 2 Trs_Buf[16]=Read1B((House_R-1)*3+2,1);
84 2 i=Read1B(House_R-1+120,1);
85 2 Trs_Buf[17]=i>>4; //Constant
86 2 Trs_Buf[18]=i&0x0f;
87 2 i=Read1B(200+House_R-1,0);
88 2 Trs_Buf[19]=i>>4; //Point
89 2 Trs_Buf[20]=0;
90 2 i=Read1B(240+(House_R-1)/8,0);
91 2 if(i & (1<<((House_R-1)%8)) )
92 2 Trs_Buf[20]|=0x04; //Short
93 2 i=Read1B(245+(House_R-1)/8,0);
94 2 if(i & (1<<((House_R-1)%8)) )
95 2 Trs_Buf[20]|=0x10; //Break
96 2 i=Read1B(160+(House_R-1)/8,1);
97 2 if(i & (1<<((House_R-1)%8)) )
98 2 Trs_Buf[20]|=0x40; //Power
99 2 Trs_Buf[21]=0;
100 2 Trs_Check=0;
101 2 for(i=8;i<22;i++)
102 2 {
103 3 Trs_Check+=Trs_Buf[i];
104 3 }
105 2 Trs_Buf[22]=Trs_Check;
106 2 Trs_Wp=23;
107 2
108 2 break;
109 2 case (0xbb):
110 2 i=Read1B((250+(House_R-1)/8),0);
111 2 if((1<<((House_R-1)%8))&i)
112 2 {
113 3 Start|=0x01;
114 3 }
115 2 else Start&=0x80;
116 2 eb90();
117 2 Trs_Length=6;
C51 COMPILER V6.12 PROTOCOL 01/03/2005 12:08:20 PAGE 3
118 2 Trs_Buf[6]=Trs_Length;
119 2 Trs_Buf[7]=0;
120 2 Trs_Buf[8]=Trs_Comm_Bak;
121 2 Trs_Buf[9]=Station;
122 2 Trs_Buf[10]=0;
123 2 Trs_Buf[11]=House_R;
124 2 Trs_Buf[12]=Start;
125 2 Trs_Check=0;
126 2 for(i=8;i<13;i++)
127 2 {
128 3 Trs_Check+=Trs_Buf[i];
129 3 }
130 2 Trs_Buf[13]=Trs_Check;
131 2 Trs_Wp=14;
132 2
133 2 break;
134 2 case (0xb2):
135 2 if(House_R!=0xff) // One Hdd
136 2 {
137 3 Hdd_Str.Hdd_L=Read_Hdd(House_R-1);
138 3 i=Read1B(250+((House_R-1)/8),0);
139 3 if((1<<((House_R-1)%8))&i)
140 3 {
141 4 Start|=0x01;
142 4 }
143 3 else Start&=0x80;
144 3 eb90();
145 3 Trs_Length=10;
146 3 Trs_Buf[6]=Trs_Length;
147 3 Trs_Buf[7]=0;
148 3 Trs_Buf[8]=Trs_Comm;
149 3 Trs_Buf[9]=Station;
150 3 Trs_Buf[10]=0;
151 3 Trs_Buf[11]=House_R;
152 3 Trs_Buf[12]=Start;
153 3 Trs_Buf[13]=Hdd_Str.Hdd_B[3];
154 3 Trs_Buf[14]=Hdd_Str.Hdd_B[2];
155 3 Trs_Buf[15]=Hdd_Str.Hdd_B[1];
156 3 Trs_Buf[16]=Hdd_Str.Hdd_B[0];
157 3 Trs_Check=0;
158 3 for(i=8;i<17;i++)
159 3 {
160 4 Trs_Check+=Trs_Buf[i];
161 4 }
162 3 Trs_Buf[17]=Trs_Check;
163 3 Trs_Wp=18;
164 3 }
165 2 else //All Hdd
166 2 {
167 3 if(B3==0) // B3==0
168 3 {
169 4 eb90();
170 4 Trs_Length=HddEn_Sum*6+4;
171 4 if(HddEn_Sum==0) Trs_Length=10;
172 4 Trs_Buf[6]=Trs_Length;
173 4 Trs_Buf[7]=0;
174 4 Trs_Buf[8]=Trs_Comm;
175 4 Trs_Buf[9]=Station;
176 4 Trs_Buf[10]=0;
177 4 Trs_Check=0;
178 4 for(i=8;i<11;i++)
179 4 {
C51 COMPILER V6.12 PROTOCOL 01/03/2005 12:08:20 PAGE 4
180 5 Trs_Check+=Trs_Buf[i];
181 5 }
182 4 Trs_Wp=11;
183 4 B3=1;
184 4 Trs_Flag=1;
185 4 }
186 3 else //B3>0
187 3 {
188 4 B3Inc:
189 4 i=Read1B(250+((B3-1)/8),0);
190 4 if(HddEn_Sum)
191 4 {
192 5 if((1<<((B3-1)%8))&i)
193 5 {
194 6 Start|=0x01;
195 6 }
196 5 else
197 5 {
198 6 Start&=0x80;
199 6 B3++;
200 6 goto B3Inc;
201 6 }
202 5 }
203 4 Hdd_Str.Hdd_L=Read_Hdd(B3-1);
204 4 if(HddEn_Sum==0)
205 4 {
206 5 Hdd_Str.Hdd_L=0xffffffff;
207 5 B3=0xff;
208 5
209 5 }
210 4 Trs_Buf[0]=B3;
211 4 Trs_Buf[1]=Start;
212 4 Trs_Buf[2]=Hdd_Str.Hdd_B[3];
213 4 Trs_Buf[3]=Hdd_Str.Hdd_B[2];
214 4 Trs_Buf[4]=Hdd_Str.Hdd_B[1];
215 4 Trs_Buf[5]=Hdd_Str.Hdd_B[0];
216 4 for(i=0;i<6;i++)
217 4 {
218 5 Trs_Check+=Trs_Buf[i];
219 5 }
220 4 Trs_Wp=6;
221 4 Trs_Flag=1;
222 4 if(B3==House_Max||HddEn_Sum==0)
223 4 {
224 5 Trs_Buf[Trs_Wp]=Trs_Check;
225 5 Trs_Wp++;
226 5 Trs_Flag=0;
227 5 }
228 4 B3++;
229 4 }
230 3 }
231 2
232 2 break;
233 2
234 2 case (0xb4):
235 2 i=Read1B(250+((House_R-1)/8),0);
236 2 if((1<<((House_R-1)%8))&i)
237 2 {
238 3 Start|=0x01;
239 3 }
240 2 else Start&=0x80;
241 2 eb90();
C51 COMPILER V6.12 PROTOCOL 01/03/2005 12:08:20 PAGE 5
242 2 Trs_Length=10;
243 2 Trs_Buf[6]=Trs_Length;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -