📄 zjq_bc.lst
字号:
183 3 }
184 2 else
185 2 {
186 3 if (Carrier_Rxd==1)
187 3 r_data=r_data|1;
188 3
189 3 r_8++;
190 3
191 3 if (r_8<8)
192 3 r_data=r_data<<1;
193 3 else
194 3 {
195 4 pl_buf[r_len]=r_data;
196 4 r_8=0;
197 4
198 4 if(r_len<3)
199 4 {
200 5 if(r_data>0xBB)
201 5 {
202 6 r_x=0;
203 6 return; // goto zb_end;
204 6 }
205 5 }
206 4 else if(r_len==4)
207 4 {
208 5 if(r_data==0)
209 5 {
210 6 r_x=0;
211 6 return; // goto zb_end;
212 6 }
213 5 if(r_data>50)
214 5 {
215 6 r_x=0;
216 6 return; // goto zb_end;
217 6 }
218 5
219 5 r_len1=r_data+7;
220 5 }
221 4
222 4 r_len++;
223 4 r_data=0;
224 4
225 4 if (r_len>=r_len1)
226 4 {
227 5 r_x=0;
228 5 r_d=0;
229 5 plmrxd=1;
230 5
231 5 for(i=0;i<(r_len1+1);i++)
232 5 {
233 6 COM_Buf[i]=pl_buf[i];
234 6 }
235 5
236 5 //led=0;
237 5
238 5 }
239 4
240 4 zb_end:;
241 4 }
C51 COMPILER V6.02 ZJQ_BC 12/09/2004 09:10:51 PAGE 5
242 3 }
243 2 }
244 1
245 1 return;
246 1
247 1 D_FL_DESIGN:
248 1
249 1 if(PLM_RS)
250 1 {
251 2 return; // 载波发送
252 2 }
253 1 else
254 1 { // 载波接收
255 2 Carrier_Rxd=1;
256 2
257 2 if (r_x==0)
258 2 {
259 3 if (Carrier_Rxd==1)
260 3 {
261 4 x_09af=x_09af|1;
262 4 }
263 3
264 3 if (x_09af==0x09af)
265 3 {
266 4 r_x=1;
267 4 r_8=0;
268 4 r_d=0;
269 4 x_09af=0;
270 4 r_len=0;
271 4 r_data=0;
272 4 r_len1=20;
273 4 }
274 3 else
275 3 {
276 4 x_09af=x_09af<<1;
277 4 }
278 3 }
279 2 else
280 2 {
281 3 if (Carrier_Rxd==1)
282 3 r_data=r_data|1;
283 3
284 3 r_8++;
285 3
286 3 if (r_8<8)
287 3 r_data=r_data<<1;
288 3 else
289 3 {
290 4 pl_buf[r_len]=r_data;
291 4 r_8=0;
292 4
293 4 if(r_len==0) // 接收Func_A
294 4 {
295 5 i=r_data;
296 5 j=i&0x20;
297 5
298 5 if(j==0) // 下行命令
299 5 {
300 6 k=i&0x18;
301 6 h=i&0x07;
302 6
303 6 if(k==0x00) // 设置表底
C51 COMPILER V6.02 ZJQ_BC 12/09/2004 09:10:51 PAGE 6
304 6 r_len1=14;
305 6 else if(k==0x08) // 设置表号
306 6 r_len1=8;
307 6 else if(k==0x10) // 实时抄表
308 6 r_len1=8+(2*h);
309 6 else if(k==0x18) // 冻结抄表
310 6 r_len1=8+(2*h);
311 6 else
312 6 {
313 7 r_len1=0;
314 7 r_x=0;
315 7 }
316 6 }
317 5 else // 上行命令
318 5 {
319 6 r_len1=14;
320 6 }
321 5
322 5 }
323 4
324 4
325 4 r_len++;
326 4 r_data=0;
327 4
328 4 if (r_len>=r_len1)
329 4 {
330 5 r_x=0;
331 5 r_d=0;
332 5 plmrxd=1;
333 5
334 5 for(i=0;i<(r_len1+1);i++)
335 5 {
336 6 COM_Buf[i]=pl_buf[i];
337 6 }
338 5
339 5 }
340 4
341 4 }
342 3 }
343 2 }
344 1
345 1
346 1 }
*** WARNING C280 IN LINE 240 OF C:\ZJQ_BC\ZJQ_BC.C: 'zb_end': unreferenced label
347
348 /**************************************************************************************
349 *
350 * FUNCTION: initsys
351 *
352 * DESCRIPTION: 初始化设置函数,
353 * 进行系统初始化设置
354 *
355 * PARAMETERS: none
356 *
357 * RETURNED: none
358 *
359 *************************************************************************************/
360 void initsys(void)
361 {
362 1 CKCON=0X1F; // 控制看门狗喂狗时间长度为832ms (0x8EH)
363 1 ALU_MOD=0; // 8位/16位运算模式选择位 ; 设置成8位运算模式 (D0H^1)
364 1
C51 COMPILER V6.02 ZJQ_BC 12/09/2004 09:10:51 PAGE 7
365 1 //载波通讯配置
366 1 PLM_SSC=1; // (D8H)使能载波通讯PLM_SSC(EXT_CFG.0)=1
367 1 EIE=0X01; // 外部中断2 中断允许位:EX2=0,禁止中断;EX2=1,允许中断。 (A9H)
368 1 IT2=1; // 外部中断2触发方式控制位,IT2=0低电平触发,IT2=1下降沿触发 (C8H^0)
369 1 PLM_RS=0; // PLM_RS(EXT_CTRL.0)=1 为0时,载波处于接收状态
370 1
371 1 //串口通讯配置
372 1 TMOD = 0x21 ; // 设 T/C1 为模式2,8 位自装载计数器 ;T/C0 为模式1, 定时方式,16 位
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -