📄 mds-100-77e58.lst
字号:
422 1
423 1 for(i=0;i<9;i++) /**发送数组的前9位数据**/
424 1 {
425 2 SBUF1=Send_Buf[i];
426 2 SendSum+=Send_Buf[i];
427 2 while(TI1==0);TI1=0;
C51 COMPILER V7.06 MDS_100_77E58 03/22/2006 19:49:08 PAGE 8
428 2 }
429 1
430 1 SBUF1=SendSum; /**发送此帧数据校验和**/
431 1 while(TI1==0);TI1=0; /**等待数据发送出去**/
432 1
433 1 ES1=1; /**串口1中断允许**/
434 1
435 1 FC_Tran=1;
436 1
437 1 }
438
439 /***********************************************************************/
440 /** 函数名称: SP0_ISR() **/
441 /** 功能描述: 串口0中断接收子程序,接受来自蓝牙模块的数据 **/
442 /** 输 入: **/
443 /** 输 出: **/
444
445 /** 作 者: Hunter **/
446 /** 日 期: 2006年03月 **/
447
448 /***********************************************************************/
449 /** 修 改 人: **/
450 /** 日 期: **/
451 /***********************************************************************/
452 void SP0_ISR() interrupt 4 using 2
453 {
454 1 unsigned char ReceSum,Recv_Buf,i;
455 1 ReceSum=0;
456 1 Recv_Buf=0;
457 1 BT_Rece=0;
458 1
459 1 if(SBUF==0xFF) /**判断缓冲区数区是否为起始位**/
460 1 {
461 2 for(i=0;i<9;i++) /**如果接收的为起始位,则连续接收后面的8位数据**/
462 2 {
463 3 while(RI==0);RI=0;
464 3 Rece_Data_BT[i]= SBUF; /**将接收缓冲区数据存入接收数据存储数组**/
465 3 ReceSum+=Rece_Data_BT[i]; /**计算接收数据校验和**/
466 3 }
467 2 while(RI==0);RI=0;
468 2 Recv_Buf = SBUF;
469 2
470 2 /**判断如果接收数据为帧测信号则发送应答信息**/
471 2 if(ReceSum == Recv_Buf)
472 2 { RBT_Flag = 0xFA; }
473 2 else
474 2 { RBT_Flag = 0xFB; }
475 2
476 2 }
477 1
478 1 else{RBT_Flag = 0;}
479 1
480 1 BT_Rece=1;
481 1
482 1 }
483
484 /***********************************************************************/
485 /** 函数名称: Intrup_Serial_Com1() **/
486 /** 功能描述: 串口1中断接收子程序,接收来自桩考监控机数据 **/
487 /** 输 入: **/
488 /** 输 出: **/
489
C51 COMPILER V7.06 MDS_100_77E58 03/22/2006 19:49:08 PAGE 9
490 /** 作 者: Hunter **/
491 /** 日 期: 2006年03月 **/
492
493 /***********************************************************************/
494 /** 修 改 人: **/
495 /** 日 期: **/
496 /***********************************************************************/
497 void SP1_ISR()interrupt 7 using 3
498 {
499 1 unsigned char ReceSum,Recv_Buf,Answ_Flag,i;
500 1
501 1 FC_Rece=0;
502 1
503 1 ReceSum=0;
504 1 Recv_Buf=0;
505 1
506 1 if(SBUF1 == 0xFF) /**判断缓冲区数区是否为起始位**/
507 1 {
508 2 for(i=0;i<9;i++) /**如果接收的为起始位,则连续接收后面的8位数据**/
509 2 {
510 3 while(RI1==0);RI1=0;
511 3 Rece_Data_FC[i]= SBUF1; /**将接收缓冲区数据存入接收数据存储数组**/
512 3 ReceSum+=Rece_Data_FC[i]; /**计算接收数据校验和**/
513 3 }
514 2 while(RI1==0);RI1=0;
515 2 Recv_Buf=SBUF1;
516 2
517 2 Answ_Flag=Rece_Data_FC[3];
518 2
519 2 /**判断如果接收数据为帧测信号则发送应答信息**/
520 2 if (ReceSum==Recv_Buf)
521 2 {
522 3 if(Answ_Flag==0xFA)
523 3 {RFC_Flag=0xFA;}
524 3 else if(Answ_Flag==0xFB)
525 3 {RFC_Flag=0xFB;}
526 3 }
527 2 else{RFC_Flag=0x00;}
528 2 }
529 1 else{RFC_Flag=0x00;}
530 1 FC_Rece=1;
531 1
532 1 }
533
534 /***********************************************************************/
535 /** 函数名称: TR0_ISR **/
536 /** 功能描述: 定时器0中断子程序。 **/
537 /** 输 入: **/
538 /** 输 出: **/
539
540 /** 作 者: Hunter **/
541 /** 日 期: 2006年03月 **/
542
543 /***********************************************************************/
544 /** 修 改 人: **/
545 /** 日 期: **/
546 /***********************************************************************/
547 void TR0_ISR() interrupt 1 using 1
548 {
549 1
550 1 TH0=0x4C;
551 1 TL0=0xF7; /**定时器初值**/
C51 COMPILER V7.06 MDS_100_77E58 03/22/2006 19:49:08 PAGE 10
552 1
553 1 if(N==50)
554 1 {
555 2 N=1;
556 2 /**判断右脚端口状态是否有变化**/
557 2 if(R_State==0&&Right_Sig==1)
558 2 {RG_Flag=1;}
559 2 else
560 2 {RG_Flag=0;}
561 2
562 2 /**判断左脚端口状态是否有变化**/
563 2 if(L_State==0&&Left_Sig==1)
564 2 {LF_Flag=1;}
565 2 else
566 2 {LF_Flag=0;}
567 2 /**判断熄火端口状态是否有变化**/
568 2 if(S_State==0&&Shart_Sig==1)
569 2 {SH_Flag=1;}
570 2 else
571 2 {SH_Flag=0;}
572 2
573 2 /**保存本次的端口状态**/
574 2 R_State=Right_Sig;
575 2 L_State=Left_Sig;
576 2 S_State=Shart_Sig;
577 2 }
578 1 else
579 1 N=N+1;
580 1 }
581
582 /***********************************************************************/
583 /** 函数名称: **/
584 /** 功能描述: 看门狗设置与喂狗子程序 **/
585 /** 输 入: **/
586 /** 输 出: **/
587
588 /** 作 者: Hunter **/
589 /** 日 期: 2006年03月 **/
590
591 /***********************************************************************/
592 /** 修 改 人: **/
593 /** 日 期: **/
594 /***********************************************************************/
595
596 /*看门狗设置子程序*/
597 void WDT_Init()
598 {
599 1 CKCON |= 0xc0;
600 1 TA = 0xaa;
601 1 TA = 0x55;
602 1 WDCON |= 3;
603 1
604 1 }
605
606 /*喂狗子程序*/
607 void WDT_Clr()
608 {
609 1
610 1 TA = 0xaa;
611 1 TA = 0x55;
612 1 WDCON &= 0xfe;
613 1
C51 COMPILER V7.06 MDS_100_77E58 03/22/2006 19:49:08 PAGE 11
614 1 TA = 0xaa;
615 1 TA = 0x55;
616 1 WDCON |= 1;
617 1
618 1 }
619
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 777 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 59 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -