AT89S51单片机全地形八足机器人机械手的设计(16)_毕业论文

毕业论文移动版

毕业论文 > 机械论文 >

AT89S51单片机全地形八足机器人机械手的设计(16)


   uchar k;
   while(p--)
   {
     for(k=0; k<117; k++)
     { }
   }
}
t=1000/rate;       //rate为上位机传来的速度命令,单位为步/S    
delay(t);
下位机控制电机时,是按照腰关节,肩关节,肘关节,手爪的顺序依次控制。先通过上位机传来的命令计算出每个电机运行所需的脉冲数,程序运行时不断检查当前电机的脉冲数是否与实际设定脉冲数相等,若相等,则当前电机停止运行,接着控制下一个电机,脉冲分别是从P0口、P1口、P2口、P3口输出。另外,当上位机有新的命令时,程序立即跳出当前程序转而执行新的命令。具体程序实现如下[21]
(1)电机正转:
      number=0;                      //脉冲数
      if(onoff[i]==1)                //运行与停止标志,i为电机标识
        {
           v=0;                       
         if(direction[i]==1)            //
          {
             while(1)
             {
              if(number!=snum[i])    //脉冲数是否和设定不相等
                {
                if(point!=10)       //上位机是否有新的命令传来
                {
                if(v==8) v=0;
                else
                {
                  number++;
                  switch(i)
                  {case 0:         //腰部回转关节转动
                P0 =FFW[v];
                  delay(t);
                  v++;
                  break;
                  case 1:        //肩关节电机
                  P1 = FFW[v];
                  delay(t);
                  v++;
                  break;
                  case 2:          //肘关节电机 (责任编辑:qin)