⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main123.lst

📁 本文件用于智能云台电机控制和图像处理
💻 LST
📖 第 1 页 / 共 5 页
字号:
 136                                                                           T1_stop();
 137                                                                           T0_stop();
 138                                                                           CameraStop();
 139                                                                           break;
 140                                                                   default :break;
 141                                                                   }
 142                                                                   
 143                                           
 144                                                                   break;                            //处理程序后的分枝完成
 145                                                  
 146                                                  
 147                                                           }
 148                                                           else
 149                                                           {                                                         //不是本球机的接收码ID不正确或者是一误码都必须会结束
 150                                                                   cKeyCodeReceiveState=0;
 151                                                                   break;                                    //处理并且清除接收标志
 152                                                           }
 153                                                           
 154                                                     default:        break;
 155                                                                                            }                                                //结束协议一次接收
 156                                          
 157                                                   }                                                 //结束  if有数
 158                  
 159                                                   }                                                 //结束协议的while
 160                                                   break;                                    //结束协议的case事件
 161                    
 162                   
 163                   case 2:           //PELCO-P协议
 164                                                          
 165                                   while(1)
 166                                   {      
 167                                   
 168          
 169                                           WDT_cls();     
 170                          
 171                                  if(2!=cProtocal)   // 利用协议出错处理
 172                                  {
 173                                  goto ERRor;
 174                                  }       
C51 COMPILER V8.05a   MAIN123                                                              11/06/2008 11:08:29 PAGE 4   

 175                                           if(cKeyCodeReceiveState)
 176                                           {
 177                                                   cKeyCodeReceiveState=0; //取走第一个码
 178                                                   switch(cKeyCodeReceive)
 179                                                   {
 180                                                   case 0xa0:               //防误码先接收一个FF后接下来进行 判断是否下个码
 181                                                           while(!cKeyCodeReceiveState)  //对于键盘发出的选择球机也是七位FF开始的码
 182                                                           {
 183                                                                   _nop_();
 184                                                           }
 185                                                           //  cKeyCodeReceiveState=0;
 186                                                           if(cKeyCodeReceive==0xa0)         //判断是否是误码,FF说明是误码
 187                                                           {                                                         //不进行处理转入从头开始的循环
 188                                                                   //不清标志
 189                                                                   break;
 190                                                           }
 191                                                           else if( cKeyCodeReceive==id)  //说明是正确的键盘码转入处理程序
 192                                                           {
 193                                                                   x=2;
 194                                                                           pKeyCode=sKeyCode;     
 195                                                                   *pKeyCode=0xa0;           //起始同步码
 196                                                                   ++pKeyCode;
 197                                                                   *pKeyCode=id;     //ID码
 198                                                                   cKeyCodeReceiveState=0;//已取走第二个码
 199                                                                   do
 200                                                                   {
 201                                                                  //       x=x^*pKeyCode  ;       //从第二个开始累加校验
 202                                                                           while(!cKeyCodeReceiveState)  //读码等待
 203                                                                           {
 204                                                                                  _nop_();
 205                                                                           }
 206                                                                           ++pKeyCode;    
 207                                                                           *pKeyCode=cKeyCodeReceive;
 208                                                                           cKeyCodeReceiveState=0; //取走键盘码
 209                                                                           ++x;   
 210                                                                   }while( x!=8);  //读码结束标志
 211                                                          
 212                                                                                                                                  
 213                                                          
 214                                                                   x= ((unsigned int)sKeyCode[2]<<8)+sKeyCode[3]; //构造一译码关键字
 215                                                                   WDT_cls();
 216                                                                                   
 217                                            
 218                                           
 219                                                                   switch(x)
 220                                                                   {
 221                                                                   case   0x0400:           //光圈开
 222                                                                            if(cAutoScan==1)
 223                                                                  {
 224                                                                  T0_stop();
 225                                                                  cAutoScan=0;    //自动扫描标志
 226                                                                  }
 227                                                                           CameraStop();
 228                                                                           IrisOpen();
 229                                                                           break;
 230                                                                  case    0x0800:           //光圈关
 231                                                                            if(cAutoScan==1)
 232                                                                  {
 233                                                                  T0_stop();
 234                                                                  cAutoScan=0;    //自动扫描标志
 235                                                                  }
 236                                                                           CameraStop();
C51 COMPILER V8.05a   MAIN123                                                              11/06/2008 11:08:29 PAGE 5   

 237                                                                           IrisClose();
 238                                                                           break; 
 239                                                                   
 240                                                                   case   0x0200:           //焦距拉近
 241                                                                           if(cAutoScan==1)
 242                                                                  {
 243                                                                  T0_stop();
 244                                                                  cAutoScan=0;    //自动扫描标志
 245                                                                  }
 246                                                                           CameraStop();
 247                                                                           Focus_near();
 248                                                                           break;
 249                                                                           
 250                                                                   case   0x0100:           //焦距拉远
 251                                                                           if(cAutoScan==1)
 252                                                                  {
 253                                                                  T0_stop();
 254                                                                  cAutoScan=0;    //自动扫描标志
 255                                                                  }
 256                                                                           CameraStop();
 257                                                                           Focus_far();
 258                                                                           break;
 259                                                                           
 260                                                                   case   0x0040:           //视角宽
 261                                                                           if(cAutoScan==1)
 262                                                                  {
 263                                                                  T0_stop();
 264                                                                  cAutoScan=0;    //自动扫描标志
 265                                                                  }
 266                                                                           CameraStop();
 267                                                                           Zoom_wide();
 268                                                                           break;
 269                                                                           
 270                                                                   case   0x0020:           //视角窄
 271                                                                           if(cAutoScan==1)
 272                                                                  {
 273                                                                  T0_stop();
 274                                                                  cAutoScan=0;    //自动扫描标志
 275                                                                  }
 276                                                                           CameraStop();
 277                                                                           Zoom_tele();
 278                                                                           break;
 279                                                                           
 280                                                                   case   0x0008:           //向上        上下由T1控制
 281                                                                           if(cAutoScan==1)
 282                                                                  {
 283                                                                  T0_stop();
 284                                                                  cAutoScan=0;    //自动扫描标志

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -