📄 zijian_task.lst
字号:
241
242 uchar ZiJian_DiZhenYi_Once() {
243 1
244 1 bit okbb=0;
245 1
246 1 MoveByte(DiZh_Tx_Buff, (uchar *)Dizh_ZiJian_Command, 8);
247 1 Xin_DiZh_RX_B=0;
248 1
249 1 //FA_DiZhen_Buff();
250 1 DiZh_TX_Len=4; // DiZh_Tx_Buff[3]+6;
251 1 DiZh_TX_cnt=0;
252 1 if(bUartBusy==0){ //判断发送中断是否处于激活状态,若没有激活则:
253 2 SCON1|=2; //TI=1; //激活MCU的串口发送程序
254 2 bUartBusy=1; //置发送程序已经激活的标志
255 2 }
256 1 //FA_DiZhen_Buff();
257 1
258 1 okbb=0;
259 1 os_wait2(K_TMO,60);
260 1 if(Xin_DiZh_RX_B) {
261 2 Xin_DiZh_RX_B=0;
262 2 if(strstr(DiZh_Rx_Buff,"TU \r")!=0) {
263 3
264 3 //如果收到确ok
265 3 okbb=1;
266 3
267 3 }
268 2 }
269 1 else {
270 2 Para_all_True.DiZhenYi_status[0]=0; //不正常
271 2 Para_all_True.Is_DiZhenYi_Ok=0; //不正常
272 2 return(0);
273 2 }
274 1
275 1 if(okbb==1) {
276 2 Para_all_True.DiZhenYi_status[0]=1; //正常
277 2 Para_all_True.Is_DiZhenYi_Ok=1; //正常
278 2 }
279 1 else {
280 2 Para_all_True.DiZhenYi_status[0]=0; //不正常
281 2 Para_all_True.Is_DiZhenYi_Ok=0; //不正常
282 2
283 2 }
284 1 return(1);
285 1 }
286
287 /*
288 2字节数据 (Byte1Byte2)
289 Byte1: 0:地震仪发生故障,1:地震仪正常工作
290 Byte2: (备用)
291
292 */
293
294
295
296
297
298 /**********************************************************************
299 **函数原型: void Attand_485(void)
300 **入口参数: Xin_F76_RX_B=1
301 **出口参数: 无
C51 COMPILER V7.50 ZIJIAN_TASK 06/10/2007 23:11:23 PAGE 6
302 **返 回 值: 无
303 **说 明: 处理报警板 485 命令之子程序。
304 ************************************************************************/
305
306 /*
307 void F76_Attand_485(void) //注:中断里面使用寄存器组0,??是否与主程序有冲突
308 { unsigned int i; // 不用寄存器组0的话,RW24XX不能正常读写时钟
309 uchar j; //,Mlen;
310 uchar fun;
311 //uchar Tem_lei;
312 uchar sum;
313 // uchar *Poit;
314 //uchar Tem_nuff[32];
315
316 fun=0;
317 if( Xin_F76_RX_B==1)
318 {
319 //Wait(250);
320 Xin_F76_RX_B=0;
321 i=F76_RX_Buff[1];
322 i=i+2;
323 sum=0;
324 //goto dddd;
325 for(j=0;j<i;j++)
326 {
327 sum=sum+F76_RX_Buff[j]; // 求代数和
328 }
329 if(sum==F76_RX_Buff[i]&&F76_RX_Buff[i+1]==0xab) //校验和等且最后的字节为0XAB
330 {
331
332 switch (F76_RX_Buff[0])
333 {
334 case 0: //接收到error ********************************************************
-***************
335
336 break;
337 case 1: //接收到OK **********************************************************
-*************
338
339 break;
340 case 2: //***********************************************************
341
342
343 break;
344 case 3: //**********************************************************
345
346 break;
347 case 4: //********************************************************
348
349 break;
350 case 5: //************* 查询所返回数据:Byte2 Byte1 Byte0**************************************
-*****
351
352
353 Ying_da_ok(5);
354 break;
355 case 6: //接收警情的功能码子程序************************************************************
356
357
358 break;
359
360 //状态上传
C51 COMPILER V7.50 ZIJIAN_TASK 06/10/2007 23:11:23 PAGE 7
361 // 10:发生 车辆熄火
362 //11:发生 车辆点火
363
364 case 7: //***********************************
365
366 break;
367
368 //车辆的当前状态(布防,撤防, 修车)变化上传送
369 case 8: //***********************************
370
371 break;
372 case 16: //***********************************
373 Ying_da_ok(16);
374 break;
375 case 17: //********************************
376 Ying_da_ok(17);
377 break;
378 case 18: //****************************
379
380 break;
381 default: ;
382
383 break;
384 } // switch (GPRS_F76_RX_Buff[0]) de
385 } //if de
386 else {
387
388 Ying_da_error(F76_RX_Buff[0]);
389
390 }
391 }
392 }
393
394
395 */
396
397
398
399 //=====================================================================================
400 //------以上是对上位机的485命令进行处理------------------------------
401 //=====================================================================================
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421 /**********************************************************************
422 **函数原型: void Ying_da_error(uchar)
C51 COMPILER V7.50 ZIJIAN_TASK 06/10/2007 23:11:23 PAGE 8
423 **入口参数: 485的功能码uchar fun
424 **出口参数: 无
425 **返 回 值: 无
426 **说 明: 485应答出错信息的子程序。
427 ************************************************************************/
428 void Ying_da_error(uchar fun)
429 {
430 1
431 1 //========== get fa 232 right=============================
432 1 while(F76_TX_is_over_B==0) { //TX所完标志位,没发完再发时要等待
433 2 os_wait2(K_TMO, 25); //50ms
434 2 }
435 1 F76_TX_is_over_B=0; //抢到标志,处暑、延时100MS再发, 串间隔
436 1 os_wait2(K_TMO, 5); //10ms
437 1 //==========get fa 232 right=============================
438 1 Fa_F76_buffer(0,&fun,1);
439 1 }
440 //===============================================================================
441
442
443
444
445
446 /**********************************************************************
447 **函数原型: void Ying_da_ok(uchar fun)
448 **入口参数: 485的功能码uchar fun
449 **出口参数: 无
450 **返 回 值: 无
451 **说 明: 485应答正确信息的子程序。
452 ************************************************************************/
453 void Ying_da_ok(uchar fun)
454 {
455 1
456 1
457 1 //========== get fa 232 right=============================
458 1 while(F76_TX_is_over_B==0) { //TX所完标志位,没发完再发时要等待
459 2 os_wait2(K_TMO, 25); //50ms
460 2 }
461 1 F76_TX_is_over_B=0; //抢到标志,处暑、延时100MS再发, 串间隔
462 1 os_wait2(K_TMO, 5); //10ms
463 1 //==========get fa 232 right=============================
464 1 Fa_F76_buffer(1,&fun,1);
465 1
466 1 }
467 //===============================================================================
468
469
470
471
472
473
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 544 ----
CONSTANT SIZE = 71 ----
XDATA SIZE = 2 2
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = 2 2
END OF MODULE INFORMATION.
C51 COMPILER V7.50 ZIJIAN_TASK 06/10/2007 23:11:23 PAGE 9
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -