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