AT89S51单片机全地形八足机器人机械手的设计(16)
时间:2017-01-17 19:45 来源:毕业论文 作者:毕业论文 点击:次
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) |