• 大小: 17KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-21
  • 语言: C/C++
  • 标签: 步进  伺服  C语言  

资源简介

简易式步进伺服电机加减速控制程序,加减速各分成三个梯度,开始运行时 到一定位置开始加速,再检测第二个加速位置加速,到第三个位置正常运行, 减速时检测结束运行距离,到设定值开始减速,再判断第二个位置,再减速, 再判断第三个位置,再减速,程序提供加减速控制的模块。实际控制可视现场情况 作出调整。

资源截图

代码片段和文件信息

/***2017 8 15 PAST  08:10 13775061792******/
/*步进伺服电机加减速测试 L76 CODE406 ******/
  #include     
              #include     
              #include     
              #include     
              #include     
  #define      uchar unsigned char
              #define      uint  unsigned int
  uint         valmt;               /*电机运行参数寄存器*/
  uint         val_mtspeed;           /*电机运行速度寄存器*/
  uint         MtAdDc_mtspeed;       /*电机加减速寄存器*/
  uint         val10;               /*电机运行缓冲寄存器*/
  sbit         MTORCP=P2^4;               // 
  bit        MtAdDc_FLAG;               /*电机加减速标志01*/
/*------------------延时子程序------------------------*/ 
               void delay10ms(uint x) 
               {
               int i;
               for (i=0; i    ;
               }
/*----------电机前进自动加速------------*/
   void   Motor_Run10()          /**/
               { 
    uchar k;
    MtAdDc_FLAG=1;    //加减速标志置一
    for(val10>0;val10--;)
{
 if(MtAdDc_FLAG==1)
 {
 if(valmt-val10<10)   //电机运行总值减缓冲器值
                 MtAdDc_mtspeed=val_mtspeed*4P0=MtAdDc_mtspeed; //4倍定时设定值
 else if(valmt-val10<30&valmt-val10>10)
                 MtAdDc_mtspeed=val_mtspeed*2P0=MtAdDc_mtspeed; //2倍定时设定值
 else if(valmt-val10<50&valmt-val10>30)
 {  //定时设定值
                 MtAdDc_mtspeed=val_mtspeed;
 P0=MtAdDc_mtspeed;
 MtAdDc_FLAG=0;  //加减速标志置零,判断结束
 }
 }
 else if(MtAdDc_FLAG==0)
 {
 if(val10<50&val10>30)    //缓冲器值余50
 {
 MtAdDc_mtspeed=val_mtspeed*2;
 P0=MtAdDc_mtspeed; //2倍设定时间
 }
 else if(val10<30&val10>10)     //缓冲器值余30
 {
 MtAdDc_mtspeed=val_mtspeed*3;
 P0=MtAdDc_mtspeed; //4倍设定时间
 }
 else if(val10<10)     //缓冲器值余10
 {
 MtAdDc_mtspeed=val_mtspeed*4;
 P0=MtAdDc_mtspeed; //8倍设定时间
 }
 }
 for(k=0;k<2;k++) //
     { 
     MTORCP=0;                      /*子函数开始*/
    delay10ms(MtAdDc_mtspeed);    //
 MTORCP=1;
   delay10ms(MtAdDc_mtspeed);
     }
 P1=val10;
}
}  
void main()
{
val_mtspeed=8;
valmt=val10=110;
Motor_Run10();
                }

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       8723  2017-08-15 08:19  电机加减速控制\test\test

     文件       2465  2017-08-15 08:19  电机加减速控制\test\test.c

     文件       1228  2017-08-15 08:19  电机加减速控制\test\test.hex

     文件         40  2017-08-15 08:19  电机加减速控制\test\test.lnp

     文件       6174  2017-08-15 08:19  电机加减速控制\test\test.LST

     文件       5801  2017-08-15 08:19  电机加减速控制\test\test.M51

     文件       9498  2017-08-15 08:19  电机加减速控制\test\test.OBJ

     文件       5143  2017-08-15 08:19  电机加减速控制\test\test.plg

    .......     55558  2017-08-15 08:20  电机加减速控制\test\test.uvopt

    .......     13256  2017-08-15 08:20  电机加减速控制\test\test.uvproj

    .......         0  2017-08-14 22:19  电机加减速控制\test\test_uvproj.bak

     目录          0  2017-08-15 08:20  电机加减速控制\test

     目录          0  2017-08-14 22:19  电机加减速控制

----------- ---------  ---------- -----  ----

               107886                    13


评论

共有 条评论