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

📄 motor.c

📁 通过键盘能分别给步进电机单独运行的速度,同时也能进行差补运行,画直线段,并能返回原点
💻 C
📖 第 1 页 / 共 2 页
字号:
	dingshi1ms(2);
	displayxy(7,z);
	dingshi1ms(2);
	displayxy(8,q);
	dingshi1ms(2);
   }
////////////////////////////////////////////
  if(n==11)
   {
    if(timeF2==0)
	{
	 displayxy(1,i);
    dingshi1ms(2);
     displayxy(2,j);
     dingshi1ms(2);
     displayxy(3,k);
     dingshi1ms(2);
     displayxy(4,m);
     dingshi1ms(2);
     displayxy(5,x);
     dingshi1ms(2);
	 displayxy(6,y);
	 dingshi1ms(2);
	 displayxy(7,z);
	 dingshi1ms(2);
	 displayxy(8,q);
	 dingshi1ms(2); }
   if(timeF2==1)
	{
	 displayxy(1,i);
     dingshi1ms(2);
     displayxy(2,j);
    dingshi1ms(2);
     displayxy(3,k);
     dingshi1ms(2);
     displayxy(14,m);
     dingshi1ms(2);
     displayxy(5,x);
	 dingshi1ms(2);
	 displayxy(6,y);
	 dingshi1ms(2);
	 displayxy(7,z);
	 dingshi1ms(2);
	 displayxy(8,q);
	dingshi1ms(2);}
   }
///////////////////////////////////////
  if(n==12)
   {
   if(timeF2==0)
	{
	 displayxy(1,i);
     dingshi1ms(2);
     displayxy(2,j);
     dingshi1ms(2);
     displayxy(3,k);
     dingshi1ms(2);
     displayxy(4,m);
     dingshi1ms(2);
     displayxy(5,x);
	 dingshi1ms(2);
	 displayxy(6,y);
	 dingshi1ms(2);
	 displayxy(7,z);
	 dingshi1ms(2);
	 displayxy(8,q);
	 dingshi1ms(2); }
  if(timeF2==1)
	{
	 displayxy(1,i);
     dingshi1ms(2);
     displayxy(2,j);
     dingshi1ms(2);
     displayxy(13,k);
     dingshi1ms(2);
     displayxy(4,m);
     dingshi1ms(2);
     displayxy(5,x);
	 dingshi1ms(2);
	 displayxy(6,y);
	 dingshi1ms(2);
	 displayxy(7,z);
	 dingshi1ms(2);
	 displayxy(8,q);
	 dingshi1ms(2);}
   }
////////////////////////////////////////////
  if(n==13)
   {
   if(timeF2==0)
	{
	 displayxy(1,i);
     dingshi1ms(2);
     displayxy(2,j);
     dingshi1ms(2);
     displayxy(3,k);
     dingshi1ms(2);
     displayxy(4,m);
     dingshi1ms(2);
     displayxy(5,x);
	 dingshi1ms(2);
	 displayxy(6,y);
	 dingshi1ms(2);
	 displayxy(7,z);
	 dingshi1ms(2);
	 displayxy(8,q);
	 dingshi1ms(2); }
  if(timeF2==1)
	{
	 displayxy(1,i);
     dingshi1ms(2);
     displayxy(12,j);
     dingshi1ms(2);
     displayxy(3,k);
     dingshi1ms(2);
     displayxy(4,m);
     dingshi1ms(2);
     displayxy(5,x);
	 dingshi1ms(2);
	 displayxy(6,y);
	 dingshi1ms(2);
	 displayxy(7,z);
	 dingshi1ms(2);
	 displayxy(8,q);
	 dingshi1ms(2);}
    }
/////////////////////////////////////////////
  if(n==14)
    {
	if(timeF2==0)
	  {
	   displayxy(1,i);
       dingshi1ms(2);
       displayxy(2,j);
       dingshi1ms(2);
       displayxy(3,k);
       dingshi1ms(2);
       displayxy(4,m);
       dingshi1ms(2);
       displayxy(5,x);
	   dingshi1ms(2);
	   displayxy(6,y);
	   dingshi1ms(2);
	   displayxy(7,z);
	   dingshi1ms(2);
	   displayxy(8,q);
	   dingshi1ms(2); }
  if(timeF2==1)
	{
	 displayxy(1,i);
     dingshi1ms(2);
     displayxy(2,j);
     dingshi1ms(2);
     displayxy(3,k);
     dingshi1ms(2);
     displayxy(4,m);
     dingshi1ms(2);
     displayxy(5,x);
	 dingshi1ms(2);
	 displayxy(6,y);
	 dingshi1ms(2);
	 displayxy(7,z);
	 dingshi1ms(2);
	 displayxy(18,q);
	 dingshi1ms(2);}
   }
//////////////////////////////////////////
  if(n==15)
   {
   if(timeF2==0)
	{
	 displayxy(1,i);
     dingshi1ms(2);
     displayxy(2,j);
     dingshi1ms(2);
     displayxy(3,k);
     dingshi1ms(2);
     displayxy(4,m);
     dingshi1ms(2);
     displayxy(5,x);
	 dingshi1ms(2);
	 displayxy(6,y);
	 dingshi1ms(2);
	 displayxy(7,z);
	 dingshi1ms(2);
	 displayxy(8,q);
	 dingshi1ms(2); }
  if(timeF2==1)
	{
	 displayxy(1,i);
     dingshi1ms(2);
     displayxy(2,j);
     dingshi1ms(2);
     displayxy(3,k);
     dingshi1ms(2);
     displayxy(4,m);
     dingshi1ms(2);
     displayxy(5,x);
	 dingshi1ms(2);
	 displayxy(6,y);
	 dingshi1ms(2);
	 displayxy(17,z);
	 dingshi1ms(2);
 	 displayxy(8,q);
	 dingshi1ms(2);}
   }
///////////////////////////////////////
  if(n==16)
   {
   if(timeF2==0)
	{
	 displayxy(1,i);
     dingshi1ms(2);
     displayxy(2,j);
     dingshi1ms(2);
     displayxy(3,k);
     dingshi1ms(2);
     displayxy(4,m);
     dingshi1ms(2);
     displayxy(5,x);
	 dingshi1ms(2);
	 displayxy(6,y);
	 dingshi1ms(2);
	 displayxy(7,z);
	 dingshi1ms(2);
	 displayxy(8,q);
	 dingshi1ms(2); }
  if(timeF2==1)
	{
	 displayxy(1,i);
     dingshi1ms(2);
     displayxy(2,j);
     dingshi1ms(2);
     displayxy(3,k);
     dingshi1ms(2);
     displayxy(4,m);
     dingshi1ms(2);
     displayxy(5,x);
	 dingshi1ms(2);
	 displayxy(16,y);
	 dingshi1ms(2);
	 displayxy(7,z);
	 dingshi1ms(2);
	 displayxy(8,q);
	 dingshi1ms(2);}
   }
 
}
//-------------------------------------------------------------------------------------------------------
////////////////////////////////////////////////////////////////////////
void control(void)
{    
      setX_value=0;
      setY_value=0;
	  setX_Z_value=0;
      setY_Z_value=0;
      displayXY_data(0,g,h,p,0,t,u,r,0);
      while(setX_F==1||setY_F==1||setX_value==1||setY_value==1)
	  { 
        set_sure_F=0;
        displayXY_data(0,a,b,c,0,d,e,f,0);
////////////////////////////////////////////////////////////////
//XY轴速度设置
////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////设X轴速度
      if(setX_F==1)
	  {  flagx=1;
	     setX_value=0;
	     set_sure_F=0;
		 setX_F=0;
		 while(1)
		 {  flagx=1;
		    displayXY_data(1,a,b,c,0,d,e,f,11);///////////////////循环闪射个位加一
		    if(set_add_F==1)
			{
				set_add_F=0;
				c+=1;
				if(c>9)
				c=0;
				
		    }
			else if(setX_F==1)
			{			     
			    setX_F=0;
			    while(1)
				{flagx=1;
				   displayXY_data(1,a,b,c,0,d,e,f,12);//////////////循环显示闪动十位加一
				   if(set_add_F==1)
				   {
				      set_add_F=0;
				      b+=1;
					  if(b>9)
				      b=0; 
					  
				   }
				   else if(setX_F==1)
			       {
				      setX_F=0;
				      while(1)
				      {  flagx=1;
					     setX_value=1;
                         displayXY_data(1,a,b,c,0,d,e,f,13);////////循环显示百位加一
				         if(set_add_F==1)
				         {  
                            set_add_F=0;
							a+=1;
							if(a>9)
				            a=0; 
							                       //电机X速度设置完标志位
				         }
                         else if(set_sure_F==1)            //确认键按下退出底层循环
					            break;
			          }
				   }
                   else if(setX_value==1||set_sure_F==1)                   //退出第二层循环
		                  break;
			    }
		    }
            else if(setX_value==1||set_sure_F==1)                          //退出第三层循环
		          break;
		   
     	}	
	  }
/////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////设Y轴速度
	  else if(setY_F==1)
	  {  
	     setY_value=0;
	     set_sure_F=0;
		 setY_F=0;
		 while(1)
		 {  flagy=1;
		    displayXY_data(0,a,b,c,2,d,e,f,14);/////////////个位加一
		    if(set_add_F==1)
			{
				set_add_F=0;
				f+=1;
				if(f>9)
				f=0;
				//flagx=0;
							
		    }
			else if(setY_F==1)
			{			     
			    setY_F=0;
			    while(1)
				{flagy=1;
				   displayXY_data(0,a,b,c,2,d,e,f,15);/////////////十位加一
				   if(set_add_F==1)
				   {
				      set_add_F=0;
				      e+=1;
					  if(e>9)
				      e=0;
 					  //flagx=0;
							
				   }
				   else if(setY_F==1)
			       {
				      setY_F=0;
				      while(1)
				      {  flagy=1;
					     setY_value=1;
                         displayXY_data(0,a,b,c,2,d,e,f,16);/////////百位加一
				         if(set_add_F==1)
				         {
                            set_add_F=0;
							d+=1;
							if(d>9)
				            d=0;
  						    //flagx=0;
							
				         }
                         else if(set_sure_F==1)
					            break;
			          }
				   }
                   else if(setY_value==1||set_sure_F==1)
		                  break;
			    }
		    }
            else if(setY_value==1||set_sure_F==1)
		          break;
     	 }
	  }
	  else if(setX_Z==1||setY_Z==1||start==1||back==1)
	          break;
    }
////////////////////////////////////////////////////////////// 
//XY坐标轴设置
////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////设X轴坐标
   while(setX_Z==1||setY_Z==1||setX_Z_value==1||setY_Z_value==1)
   { 
      set_sure_F=0; 
      displayXY_data(0,g,h,p,0,t,u,r,0);
      if(setX_Z==1)
	  {  FX=1;
         setX_Z_value=0;
	     set_sure_F=0;
	     setX_Z=0;
		 while(1)
		 {	FX=1;
		    displayXY_data(1,g,h,p,0,t,u,r,11);
			if(set_add_F==1)
			{
				set_add_F=0;
				p+=1;
				if(p>9)
				p=0;
			
		    }
            else if(setX_Z==1)
            {   
			    setX_Z=0;
			    while(1)
				{  FX=1;
				   displayXY_data(1,g,h,p,0,t,u,r,12);
				   if(set_add_F==1)
				   {
				      set_add_F=0;
				      h+=1;
					  if(h>9)
				      h=0;
 					  
				   }
				   else if(setX_Z==1)
				   {
				      setX_Z=0;
			          while(1)
				      {  FX=1;
				         displayXY_data(1,g,h,p,0,t,u,r,13);
						 setX_Z_value=1;
				         if(set_add_F==1)
				         {  XE=g*100+h*10+p;
				            set_add_F=0;
				            g+=1;
					        if(g>9)
				            g=0;
                            
				         }
                         else if(set_sure_F==1)
                                break;
					  }       
		           }
				   else if(setX_Z_value==1||set_sure_F==1)
		                break;
                } 
	        }
		    else if(setX_Z_value==1||set_sure_F==1)
		           break;
		  }
	   }
/////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////设Y轴坐标
      else if(setY_Z==1)
	  {  
	     FY=1;
         setY_Z_value=0;
	     set_sure_F=0;
	     setY_Z=0;
		 while(1)
		 {FY=1;
		    displayXY_data(0,g,h,p,2,t,u,r,14);
			if(set_add_F==1)
			{
				set_add_F=0;
				r+=1;
				if(r>9)
				r=0;
				
		    }
            else if(setY_Z==1)
            {   
			    setY_Z=0;
			    while(1)
				{  FY=1;
				   displayXY_data(0,g,h,p,2,t,u,r,15);
				   if(set_add_F==1)
				   {
				      set_add_F=0;
				      u+=1;
					  if(u>9)
				      u=0;
 					  
				   }
				   else if(setY_Z==1)
				   {
				      setY_Z=0;
			          while(1)
				      {  FY=1;
				         displayXY_data(0,g,h,p,2,t,u,r,16);
						 setY_Z_value=1;
				         if(set_add_F==1)
				         {  YE=t*100+u*10*r;
				            set_add_F=0;
				            t+=1;
					        if(t>9)
				            t=0; 
                            
				         }
                         else if(set_sure_F==1)
                                break;
					  }       
		           }
				   else if(setY_Z_value==1||set_sure_F==1)
		                break;
                } 
	        }
		    else if(setY_Z_value==1||set_sure_F==1)
		           break;
		 }
	   } 
 	   else if(setX_F==1||setY_F==1||start==1||back==1) 
	             break; 
	}
/////////////////////////////////////////////////////////单独运行X电机
	while(start==1&&flagx==1&&flagy==0&&FX==0&&FY==0)                //当启动键按下和电机X速度设完标志为一和
		{                                              //电机Y未设速度同时满足时进入电机X单独直线运行
		   start=0;
		   runX();
		   break;
		}
////////////////////////////////////////////////////////////单独运行Y电机
	while(start==1&&flagx==0&&flagy==1&&FX==0&&FY==0)                   //当启动键按下和电机Y速度设完标志为一和
	    {                                                 //电机X未设速度同时满足时进入电机Y单独直线运行  
		    start=0;
			runY();
			break;
		}
///////////////////////////////////////////////////////////差补运行
    while(start==1&&flag==0&&flagx==1&&flagy==1&&FX==1&&FY==1)         //当启动键按下与回零标志位为0与速度,坐标都设置   
	{                                                    //完整时进入步进电机插补运行
	    flag=1;
	    start=0;
		chabu();

	}
//////////////////////////////////////////////////////////回零运行
	while(back==1&&flag==1)                              //回零键按下与回零标志为一时进入回零运行
	{
	    flag=0;
	    back=0;
		runback();
        g=0;
		h=0;
		p=0;
		t=0;
		u=0;
		r=0;
	}
/////////////////////////////////////////////////////////////	
}

⌨️ 快捷键说明

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