📄 main.lst
字号:
709 8 T0_stop();
710 8 cAutoScan=0; //自动扫描标志
711 8 }
712 7 CameraStop();
713 7 Zoom_tele();
714 7 break;
715 7
716 7 case 0x0008: //向上 上下由T1控制
717 7 if(cAutoScan==1)
718 7 {
719 8 T0_stop();
720 8 cAutoScan=0; //自动扫描标志
721 8 }
722 7 cDirectVertical=1 ;
723 7 T0_stop();
724 7 if(cDirectVerticalLim==1 )
725 7 break;
726 7 cDirectVerticalLim=0;
727 7 T1_start();
728 7 break;
729 7 case 0x0010: //向下
730 7 if(cAutoScan==1)
731 7 {
732 8 T0_stop();
733 8 cAutoScan=0; //自动扫描标志
734 8 }
735 7 cDirectVertical=-1 ;
736 7 T0_stop();
C51 COMPILER V7.50 MAIN 11/03/2008 11:24:32 PAGE 13
737 7 if(cDirectVerticalLim==-1 )
738 7 break;
739 7 cDirectVerticalLim=0;
740 7 T1_start();
741 7 break;
742 7 case 0x001f: //自动扫描 1 pattern start
743 7
744 7 cAutoScan=1; //自动扫描标志
745 7 cDirectHorizon=1;
746 7 T0_start();
747 7 break;
748 7 case 0x0023: //自动扫描 2 run pattern
749 7
750 7 cAutoScan=1; //自动扫描标志
751 7 cDirectHorizon=1;
752 7 T0_start();
753 7 break;
754 7 case 0x0007: //自动扫描 3 preset类功能
755 7
756 7 cAutoScan=1; //自动扫描标志
757 7 cDirectHorizon=1;
758 7 T0_start();
759 7 break;
760 7 /*
761 7 case 0x0021: //自动扫描关闭
762 7 T1_stop();
763 7 T0_stop();
764 7 Focus_stop();
765 7 Zoom_stop();
766 7 cAutoScan=0; //自动扫描标志
767 7 break;
768 7 */
769 7 case 0x0004: //向左 左右由T0控制
770 7 if(cAutoScan==1)
771 7 {
772 8 T0_stop();
773 8 cAutoScan=0; //自动扫描标志
774 8 }
775 7 cDirectHorizon=1;
776 7 T1_stop();
777 7 if(cDirectHorizonLim ==1 )
778 7 break;
779 7 cDirectHorizonLim =0;
780 7 T0_start();
781 7 break;
782 7 case 0x0002: //向右
783 7 if(cAutoScan==1)
784 7 {
785 8 T0_stop();
786 8 cAutoScan=0; //自动扫描标志
787 8 }
788 7 cDirectHorizon=-1;
789 7 T1_stop();
790 7 if(cDirectHorizonLim ==-1 )
791 7 break;
792 7 cDirectHorizonLim =0;
793 7 T0_start();
794 7 break;
795 7 case 0: //结束所有运动 1标准
796 7 T1_stop();
797 7 T0_stop();
798 7 CameraStop();
C51 COMPILER V7.50 MAIN 11/03/2008 11:24:32 PAGE 14
799 7
800 7 break;
801 7
802 7 default :break;
803 7 }
804 6
805 6 break;
806 6 }
807 5 else
808 5 { //不是本球机的接收码ID不正确或者是一误码都必须会结束
809 6 cKeyCodeReceiveState=0;
810 6 break; //处理并且清除接收标志
811 6 }
812 5
813 5 default: break;
814 5 }
815 4
816 4 }
817 3 }
818 2 break;
819 2
820 2
821 2 case 12: //PELCO-D协议
822 2
823 2 while(1)
824 2 {
825 3 WDT_cls();
826 3
827 3 if(12!=cProtocal) // 利用协议出错处理
828 3 {
829 4 goto ERRor;
830 4 }
831 3
832 3 if(cKeyCodeReceiveState)
833 3 {
834 4 cKeyCodeReceiveState=0; //取走第一个码
835 4 switch(cKeyCodeReceive)
836 4 {
837 5 case 0xff: //防误码先接收一个FF后接下来进行 判断是否下个码
838 5
839 5
840 5 while(!cKeyCodeReceiveState) //对于键盘发出的选择球机也是七位FF开始的码
841 5 {
842 6 _nop_();
843 6 }
844 5 // cKeyCodeReceiveState=0;
845 5 if(cKeyCodeReceive==0xff) //判断是否是误码,FF说明是误码
846 5 { //不进行处理转入从头开始的循环
847 6 //不清标志
848 6 break;
849 6 }
850 5 else if( cKeyCodeReceive==id) //说明是正确的键盘码转入处理程序
851 5 {
852 6
853 6 x=2;
854 6 pKeyCode=sKeyCode;
855 6 *pKeyCode=0xff; //起始同步码
856 6 ++pKeyCode;
857 6 *pKeyCode=id; //ID码
858 6 cKeyCodeReceiveState=0;//已取走第二个码
859 6 do
860 6 {
C51 COMPILER V7.50 MAIN 11/03/2008 11:24:32 PAGE 15
861 7 // x=x + *pKeyCode ; //从第二个开始累加校验
862 7 while(!cKeyCodeReceiveState) //读码等待
863 7 {
864 8 _nop_();
865 8 }
866 7 ++pKeyCode;
867 7 *pKeyCode=cKeyCodeReceive;
868 7 cKeyCodeReceiveState=0; //取走键盘码
869 7 ++x ;
870 7 }while( x!=7); //读码结束进入译码处理程序,取低位
871 6
872 6
873 6 /*-------------------------
874 6 ---------------------------
875 6 下面是译码控制主程序
876 6 --------------------------------------------------------------------------*/
877 6
878 6 if( sKeyCode[3]==0x55)
879 6 break;
880 6 x= ((unsigned int)sKeyCode[2]<<8)+sKeyCode[3]; //构造一译码关键字
881 6 WDT_cls();
882 6
883 6
884 6 switch(x)
885 6 {
886 7 case 0x0200:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -