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

📄 download.lst

📁 51写的单片机控制松下伺服电机正反转程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 205   2                       mDelay(3);
 206   2              //      mDelay(2);      
 207   2              }
 208   1      }   
 209          
 210          //***************************************************************************
 211          
 212          //伺服电机左转程序
 213          
 214          //***************************************************************************
 215          
 216          void LEFT_MOVE_SERVO(uint Pluse2_num)
 217          {       
 218   1      //      SERVO_ON        =       0;
 219   1      //      mDelay(100);
 220   1              SERVO_DIR       =       0;
 221   1              mDelay(33);
 222   1              SERVO_PULSE1    =       1;//脉冲负
 223   1                      
 224   1              for(;Pluse2_num>0;Pluse2_num--)
 225   1              {
 226   2                      SERVO_PULSE1    =       ~SERVO_PULSE1;//脉冲负
 227   2                      //Delay();
 228   2                      mDelay(3);
 229   2                      SERVO_PULSE1    =       ~SERVO_PULSE1;//脉冲负
 230   2                      //Delay();//
 231   2                      mDelay(3);      
 232   2              }
 233   1      }   
 234          
 235          //***************************************************************************
 236          
 237          //伺服电机停止程序
 238          
 239          //***************************************************************************
 240          
 241          void SERVO_PULSE1_Stop()
C51 COMPILER V7.50   DOWNLOAD                                                              03/09/2009 17:03:12 PAGE 5   

 242          {
 243   1                      SERVO_DIR=0;
 244   1                      SERVO_PULSE1    =       1;//脉冲负
 245   1                      mDelay(20);             
 246   1      }
 247          //***************************************************************************
 248          
 249          //键盘处理程序
 250          
 251          //***************************************************************************
 252          
 253          uchar Key()
 254          {       
 255   1              uchar KValue;
 256   1              uchar tmp;
 257   1              P3|=0x3c;                       //将P3口的接键盘的中间四位置1
 258   1              KValue=P3;
 259   1              KValue|=0xc3;           //将未接键的4位置1
 260   1              if(KValue==0xff)        //中间4位均为1,无键按下        
 261   1                      return(0);              //返回
 262   1              mDelay(10);             //延时10ms,去键抖
 263   1              KValue=P3;
 264   1              KValue|=0xc3;           //将未接键的4位置1
 265   1              if(KValue==0xff)        //中间4位均为1,无键按下        
 266   1                      return(0);              //返回
 267   1      //如尚未返回,说明一定有1或更多位被按下
 268   1              for(;;)
 269   1              {       tmp=P3;         
 270   2                      if((tmp|0xc3)==0xff)
 271   2                              break;          //等待按键释放
 272   2              }
 273   1              return(KValue);
 274   1      }
 275          
 276          void KProce(uchar KValue)       //键值处理
 277          {       
 278   1              if((KValue&0x04)==0)
 279   1              
 280   1              LEFT_MOVE_SERVO(10000);
 281   1      
 282   1              //RIGHT_MOVE_DOWNLOAD_HS30806_X(2000);
 283   1              //QIGANG=0;
 284   1              if((KValue&0x08)==0)
 285   1              
 286   1                      RIGHT_MOVE_SERVO(10000);
 287   1              //LEFT_MOVE_DOWNLOAD_HS30806_X(2000);
 288   1              //QIGANG=1;
 289   1              if((KValue&0x10)==0)
 290   1              SERVO_ON        =       0;
 291   1              mDelay(100);
 292   1      //      RIGHT_MOVE_DOWNLOAD_HS30806_Y(2000);
 293   1              if((KValue&0x20)==0)
 294   1              SERVO_ON        =       1;
 295   1              mDelay(100);
 296   1              //LEFT_MOVE_DOWNLOAD_HS30806_Y(2000);
 297   1      }
 298          
 299          //***************************************************************************
 300          
 301          //初始化程序
 302          
 303          //***************************************************************************
C51 COMPILER V7.50   DOWNLOAD                                                              03/09/2009 17:03:12 PAGE 6   

 304          
 305          void    init()
 306          {
 307   1      //      P0=0xFF;
 308   1      //      P1=0xFF;
 309   1      //      P2=0xFF;
 310   1      //      P3=0xFF;
 311   1              P3=0xFD;
 312   1              mDelay(1000);
 313   1              while(S2==1)
 314   1              {
 315   2                              LEFT_MOVE_DOWNLOAD_HS30806_Y(1);
 316   2              }
 317   1              RIGHT_MOVE_DOWNLOAD_HS30806_Y(1600);
 318   1                      while(S3==1)
 319   1              {
 320   2                              LEFT_MOVE_DOWNLOAD_HS30806_X(1);
 321   2              }
 322   1              RIGHT_MOVE_DOWNLOAD_HS30806_X(1600);
 323   1      }
 324          
 325          //***************************************************************************
 326          
 327          //主函数
 328          
 329          //***************************************************************************
 330          
 331          /*
 332          void main()
 333          {
 334                  uchar KValue,m;//,n,flag;                               //存放键值;
 335          //g     init();//
 336          //SERVO_ON      =       0;
 337          //mDelay(100);//延时0.00111300s
 338          mDelay(1);
 339          mDelay(2);
 340          mDelay(3);
 341          mDelay(4);
 342          mDelay(10);
 343          mDelay(20);
 344          for(m=0;m<100;m++)
 345          {
 346          RIGHT_MOVE_SERVO(25000);
 347          //mDelay(20);//延时0.00023s
 348          LEFT_MOVE_SERVO(25000);
 349          mDelay(20);
 350          }
 351          while(1)
 352          {
 353          //      for(m=0;m<100;m++)
 354          //      {
 355          //      RIGHT_MOVE_DOWNLOAD_HS30806_Y(800);
 356          //      }
 357                  
 358                  for(;;)
 359                  {       KValue=Key();                   //调用键盘程序并获得键值
 360                          if(KValue)                              //如果该值不等于0
 361                          {
 362                                  KProce(KValue); //调用键盘处理程序
 363                          }
 364                  }
 365          
C51 COMPILER V7.50   DOWNLOAD                                                              03/09/2009 17:03:12 PAGE 7   

 366          }
 367          
 368           }
 369          
 370          */
 371          void Initia()
 372          {
 373   1              LEFT_MOVE_SERVO(1);     
 374   1              mDelay(6);
 375   1      }
 376          
 377          void main()
 378          {
 379   1              Initia();
 380   1              RIGHT_MOVE_SERVO(100);
 381   1              while(SERVO_POINT==0)
 382   1                      while(1)
 383   1                      {
 384   2                              while(S2==0)
 385   2                              {
 386   3                                      while(1)
 387   3                                      {       
 388   4                                              RIGHT_MOVE_SERVO(100);
 389   4                                              mDelay(20);
 390   4                                              LEFT_MOVE_SERVO(100);   
 391   4                                              mDelay(20);
 392   4                                      }
 393   3                              }
 394   2                      }
 395   1      }
 396           
 397          
 398          
 399          
 400          
 401          
 402          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    484    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   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 + -