📄 main.lst
字号:
530 7 case 0x010001: //向左 左右由T0控制
531 7 if(cAutoScan==1)
532 7 {
533 8 T0_stop();
534 8 cAutoScan=0; //自动扫描标志
535 8 }
536 7 cDirectHorizon=1;
537 7 T1_stop();
538 7 if(cDirectHorizonLim ==1 )
539 7 break;
540 7 cDirectHorizonLim =0; //可以运动则复位
541 7 T0_start();
542 7 break;
543 7 case 0x010002: //向右
544 7 if(cAutoScan==1)
545 7 {
546 8 T0_stop();
547 8 cAutoScan=0; //自动扫描标志
548 8 }
549 7 cDirectHorizon=-1;
550 7 T1_stop();
C51 COMPILER V7.50 MAIN 11/03/2008 11:24:32 PAGE 10
551 7 if(cDirectHorizonLim ==-1 )
552 7 break;
553 7 cDirectHorizonLim =0; //可以运动则复位
554 7 T0_start();
555 7 break;
556 7 case 0x031301: //自动扫描
557 7 cAutoScan=1; //自动扫描标志
558 7 cDirectHorizon=1;
559 7 T0_start();
560 7 break;
561 7 case 0x031a01: //自动扫描
562 7 cAutoScan=1; //自动扫描标志
563 7 cDirectHorizon=1;
564 7 T0_start();
565 7 break;
566 7 case 0x031b01: //自动扫描
567 7 cAutoScan=1; //自动扫描标志
568 7 cDirectHorizon=1;
569 7 T0_start();
570 7 break;
571 7 case 0x010000: //结束所有运动 2 明景工控
572 7 T1_stop();
573 7 T0_stop();
574 7 CameraStop();
575 7 break;
576 7 default :break;
577 7 }
578 6
579 6
580 6 break; //处理程序后的分枝完成
581 6
582 6
583 6 }
584 5 else
585 5 { //不是本球机的接收码ID不正确或者是一误码都必须会结束
586 6 cKeyCodeReceiveState=0;
587 6 break; //处理并且清除接收标志
588 6 }
589 5
590 5 default: break;
591 5 } //结束协议一次接收
592 4
593 4 } //结束 if有数
594 3
595 3 } //结束协议的while
596 2 break; //结束协议的case事件
597 2
598 2
599 2 case 2: //PELCO-P协议
600 2
601 2 while(1)
602 2 {
603 3
604 3
605 3 WDT_cls();
606 3
607 3 if(2!=cProtocal) // 利用协议出错处理
608 3 {
609 4 goto ERRor;
610 4 }
611 3 if(cKeyCodeReceiveState)
612 3 {
C51 COMPILER V7.50 MAIN 11/03/2008 11:24:32 PAGE 11
613 4 cKeyCodeReceiveState=0; //取走第一个码
614 4 switch(cKeyCodeReceive)
615 4 {
616 5 case 0xa0: //防误码先接收一个FF后接下来进行 判断是否下个码
617 5 while(!cKeyCodeReceiveState) //对于键盘发出的选择球机也是七位FF开始的码
618 5 {
619 6 _nop_();
620 6 }
621 5 // cKeyCodeReceiveState=0;
622 5 if(cKeyCodeReceive==0xa0) //判断是否是误码,FF说明是误码
623 5 { //不进行处理转入从头开始的循环
624 6 //不清标志
625 6 break;
626 6 }
627 5 else if( cKeyCodeReceive==id) //说明是正确的键盘码转入处理程序
628 5 {
629 6 x=2;
630 6 pKeyCode=sKeyCode;
631 6 *pKeyCode=0xa0; //起始同步码
632 6 ++pKeyCode;
633 6 *pKeyCode=id; //ID码
634 6 cKeyCodeReceiveState=0;//已取走第二个码
635 6 do
636 6 {
637 7 // x=x^*pKeyCode ; //从第二个开始累加校验
638 7 while(!cKeyCodeReceiveState) //读码等待
639 7 {
640 8 _nop_();
641 8 }
642 7 ++pKeyCode;
643 7 *pKeyCode=cKeyCodeReceive;
644 7 cKeyCodeReceiveState=0; //取走键盘码
645 7 ++x;
646 7 }while( x!=8); //读码结束标志
647 6
648 6
649 6
650 6 x= ((unsigned int)sKeyCode[2]<<8)+sKeyCode[3]; //构造一译码关键字
651 6 WDT_cls();
652 6
653 6
654 6
655 6 switch(x)
656 6 {
657 7 case 0x0400: //光圈开
658 7 if(cAutoScan==1)
659 7 {
660 8 T0_stop();
661 8 cAutoScan=0; //自动扫描标志
662 8 }
663 7 CameraStop();
664 7 IrisOpen();
665 7 break;
666 7 case 0x0800: //光圈关
667 7 if(cAutoScan==1)
668 7 {
669 8 T0_stop();
670 8 cAutoScan=0; //自动扫描标志
671 8 }
672 7 CameraStop();
673 7 IrisClose();
674 7 break;
C51 COMPILER V7.50 MAIN 11/03/2008 11:24:32 PAGE 12
675 7
676 7 case 0x0200: //焦距拉近
677 7 if(cAutoScan==1)
678 7 {
679 8 T0_stop();
680 8 cAutoScan=0; //自动扫描标志
681 8 }
682 7 CameraStop();
683 7 Focus_near();
684 7 break;
685 7
686 7 case 0x0100: //焦距拉远
687 7 if(cAutoScan==1)
688 7 {
689 8 T0_stop();
690 8 cAutoScan=0; //自动扫描标志
691 8 }
692 7 CameraStop();
693 7 Focus_far();
694 7 break;
695 7
696 7 case 0x0040: //视角宽
697 7 if(cAutoScan==1)
698 7 {
699 8 T0_stop();
700 8 cAutoScan=0; //自动扫描标志
701 8 }
702 7 CameraStop();
703 7 Zoom_wide();
704 7 break;
705 7
706 7 case 0x0020: //视角窄
707 7 if(cAutoScan==1)
708 7 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -