📄 main.lst
字号:
C51 COMPILER V7.20 MAIN 09/15/2005 21:50:42 PAGE 9
488 case 1:
489 EditMsSendCount =Tempdata;
490 EditMsSendSave =Tempdata;
491 DispBuf[1]=0x05;
492 DispBuf[2]=0x0d;
493 FunckeyCount++;
494 ClearDispAttr();
495 MoveFlag=0;
496 break;
497 default:
498 break;
499 }
500 }
501 if((DispBuf[1]==0x05)&&(DispBuf[2]==0x0d)) //设定
502 {
503 SendFrq =Tempdata;
504 AutoSendFlag =1;
505 DispBuf[3]=0;
506 DispBuf[4]=0;
507 MoveFlag=0;
508 FlightLed3=1;
509 FlightLed4=0;ClearLed4=0;
510 }
511 }
512 }
513
514 //按确认键后进入下一小项处理
515 void EnterNext(void)
516 {
517 unsigned char i;
518 FlightLed3=1;
519 FlightLed4=0;ClearLed4=0;
520 MoveFlag=0;
521 i=ReadSjaReg(REG_TxBuffer1+DispBuf[2]);
522 DispBuf[2]++;
523 DispBuf[3]=i>>4;
524 DispBuf[4]=i&0x0f;
525 }
526
527 //发送键处理
528 void CanSendKey(void) //发送键
529 {
530 if((ReadSjaReg(REG_CONTROL)&0x01)==0)
531 {
532 BCAN_CMD_PRG(TR_CMD);
533 }
534 else
535 {
536 Write_DispBuf(0,0x0E,0x12,0x0f,0x0d);//在复位模式
537 }
538 }
539 ji*/
540 //
541 void InitCPU(void)
542 {
543 1 EA =1;
*** ERROR C202 IN LINE 543 OF MAIN.C: 'EA': undefined identifier
544 1 IT0 =1;
*** ERROR C202 IN LINE 544 OF MAIN.C: 'IT0': undefined identifier
545 1 //ji EX0 =1;
546 1 PX0 =1;
*** ERROR C202 IN LINE 546 OF MAIN.C: 'PX0': undefined identifier
C51 COMPILER V7.20 MAIN 09/15/2005 21:50:42 PAGE 10
547 1 //ji InitUart(); //初始化串口
548 1 }
549
550 ////
551
552 //
553 void CanRcv_Prg(void)
554 {
555 1 uchar data buf[10],status;
556 1 if(BCAN_DATA_RECEIVE(buf)) //接收数据
557 1 {status=0xe9;
558 2 for(;;); //Error_disp(status);
559 2 }
560 1 else
561 1 {
562 2 if(BCAN_CMD_PRG(0x04))
563 2 for(;;); //Error_disp(0xe8);
564 2
565 2 if((buf[1]&0x10)!=0)
566 2 {
567 3 switch(buf[1]&0x0f){ //远程帧处理
568 4 case 0: //请求发送命令字为0c1h的命令帧
569 4 buf[1]=(buf[1]&0xe0)|0x06;
570 4 buf[2]=0xc1;
571 4 BCAN_DATA_WRITE(buf); //将编辑的数据发送到can总线
572 4 BCAN_CMD_PRG(TR_CMD);
573 4 break;
574 4 case 1:
575 4 buf[1]=(buf[1]&0xe0)|0x06;
576 4 buf[2]=0xc2;
577 4 BCAN_DATA_WRITE(buf); //将编辑的数据发送到can总线
578 4 BCAN_CMD_PRG(TR_CMD);
579 4 break;
580 4 case 2:
581 4 buf[1]=(buf[1]&0xe0)|0x06;
582 4 buf[2]=0xc3;
583 4 BCAN_DATA_WRITE(buf); //将编辑的数据发送到can总线
584 4 BCAN_CMD_PRG(TR_CMD);
585 4 break;
586 4 case 3:
587 4 buf[1]=(buf[1]&0xe0)|0x06;
588 4 buf[2]=0xc4;
589 4 BCAN_DATA_WRITE(buf); //将编辑的数据发送到can总线
590 4 BCAN_CMD_PRG(TR_CMD);
591 4 break;
592 4 case 4:
593 4 buf[1]=(buf[1]&0xe0)|0x06;
594 4 buf[2]=0xc5;
595 4 BCAN_DATA_WRITE(buf); //将编辑的数据发送到can总线
596 4 BCAN_CMD_PRG(TR_CMD);
597 4 break;
598 4 case 5:
599 4 buf[1]=(buf[1]&0xe0)|0x06;
600 4 buf[2]=0xc6;
601 4 BCAN_DATA_WRITE(buf); //将编辑的数据发送到can总线
602 4 BCAN_CMD_PRG(TR_CMD);
603 4 break;
604 4 case 6:
605 4 case 7:
606 4 case 8:
607 4 case 9:
608 4 default:
C51 COMPILER V7.20 MAIN 09/15/2005 21:50:42 PAGE 11
609 4 break;
610 4 }
611 3 }
612 2 /*ji
613 2 else
614 2 switch(buf[2])
615 2 {
616 2 case 0xc1: //直通显示
617 2 DrecDisplay(&buf[3]);
618 2 break;
619 2 case 0xc2: //消隐命令
620 2 ClearDispPrg(&buf[3]);
621 2 break;
622 2 case 0xc3: //测试命令
623 2 TestDispPrg();
624 2 break;
625 2 case 0xc4: //左循环命令
626 2 LiftCrcDispPrg(&buf[3]);
627 2 break;
628 2 case 0xc5: //右循环命令
629 2 RightCrcDispPrg(&buf[3]);
630 2 break;
631 2 case 0xc6: //闪烁
632 2 FlightDispPrg(&buf[3]);
633 2 break;
634 2 case 0xc9: //改变总线波特率命令
635 2 default:
636 2 break;
637 2 }
638 2 ji*/
639 2 }
640 1 }
641
642 //
643 /*ji
644 void DrecDisplay(uchar *databuf) //直通显示
645 {
646 ClearDispAttr();
647 memcpy(&DispBuf[1],&databuf[1],4);
648 switch(databuf[0])
649 {
650 case 0:
651 DispFlag|=0xe0;
652 break;
653 case 1:
654 DispFlag|=0xd0;
655 break;
656 case 2:
657 DispFlag|=0xb0;
658 break;
659 case 3:
660 DispFlag|=0x70;
661 break;
662 case 4:
663 DispFlag|=0xc0;
664 break;
665 case 5:
666 DispFlag|=0xa0;
667 break;
668 case 6:
669 DispFlag|=0x60;
670 break;
C51 COMPILER V7.20 MAIN 09/15/2005 21:50:42 PAGE 12
671 case 7:
672 DispFlag|=0x90;
673 break;
674 case 8:
675 DispFlag|=0x50;
676 break;
677 case 9:
678 DispFlag|=0x30;
679 break;
680 case 10:
681 DispFlag|=0x80;
682 break;
683 case 11:
684 DispFlag|=0x40;
685 break;
686 case 12:
687 DispFlag|=0x10;
688 break;
689 case 13:
690 DispFlag|=0x20;
691 break;
692 case 14:
693 DispFlag=0;
694 break;
695 default:
696 break;
697 }
698
699 }
700
701 //测试处理函数
702 void TestDispPrg(void) //测试处理函数
703 {
704 uchar i;
705 DispFlag=0;
706 DispFlag|=0x0f;
707 for(i=1;i<5;i++) DispBuf[i]=0x08;
708
709 }
710 //消隐处理函数
711 void ClearDispPrg(uchar *databuf) //消隐处理函数
712 {
713 ClearDispAttr();
714 memcpy(&DispBuf[1],&databuf[1],4);
715 DispFlag=0;
716 switch(databuf[0])
717 {
718 case 0:
719 DispFlag|=0x10;
720 break;
721 case 1:
722 DispFlag|=0x20;
723 break;
724 case 2:
725 DispFlag|=0x40;
726 break;
727 case 3:
728 DispFlag|=0x80;
729 break;
730 case 4:
731 DispFlag|=0x30;
732 break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -