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

📄 sifu.c

📁 伺服马达控制的C51程序。 文件: sifu*.c sifu*.Uv2 sifu*.hex 等相关文件。
💻 C
字号:
/****************************************************************/
/*Module: New technic
/*Creator: lianghaodang
/*Date: 11/19/2007   
/*Description: creat a pulse
/****************************************************************/
#include<AT892051.h>
#include<stdio.h>
#include<math.h>
#include<intrins.h>

sbit  Sig_x = P3^4;
sbit  Sig_y = P3^2;
sbit  KEY = P3^7;
sbit  PULS_x = P3^5;
sbit  PULS_y = P3^3;
unsigned int Counter_x,Counter_y;
void Delayms(unsigned char ms);

//----------------------------------------
void time0(void) interrupt 1
{	PULS_x = ~PULS_x;
	Counter_x++;
	TH0 = 0xFE;
	TL0 = 0x18;
}

void time1(void) interrupt 3
{
	PULS_y = ~PULS_y;
	Counter_y++;
	TH1 = 0xFE;
	TL1 = 0x18;
}

//----------------------------------------
void main(void)
{  
 //   bit Flag;
	P1 = 0XFF;
    P3 = 0XFF;
    PULS_x = 0;
	PULS_y = 0;
    TMOD = 0x11;
	IT0 = 1; 
	PCON=0X00;
	ET0 = 1;
	ET1 = 1;
								
    TH0 = 0xFE;
	TL0 = 0x18; 
    TH1 = 0xFE;
	TL1 = 0x18;

    TR0 = 0;								
	TR1 = 0;
	EA = 1;

 while(1)
  {
	Sig_x = 0;

/****************/
	KEY = 1;
	while(1)
	{while(KEY!=0);
	 Delayms(5);
	 if(KEY==0) break;
	}
	while(KEY==0);
/***************/
	do   //x action 1
		{
		TR0 = 1;
		}while(Counter_x<12636);
    TR0 = 0;
	Counter_x = 0;

Delayms(5);	
/**************************************************/
	Sig_y = 1;
	/***************/
	do   //y action 1
		{
		TR1 = 1;		
		}while(Counter_y<1000);
    	TR1 = 0;
		Counter_y = 0;
	
Delayms(250);
Delayms(250);
	/***************/
	do   //y action 2
		{
		TR1 = 1;		
		}while(Counter_y<1000);
	TR1 = 0;
    Counter_y = 0;
Delayms(250);
Delayms(250);
	/***************/
	do   //y action 3
		{
		TR1 = 1;		
		}while(Counter_y<1000);
	TR1 = 0;
    Counter_y = 0;
Delayms(250);
Delayms(250);
	/***************/
	do   //y action 4
		{
		TR1 = 1;		
		}while(Counter_y<1500);
	TR1 = 0;
    Counter_y = 0;
/*********************************************/



/****************/
/*	KEY = 1;
	while(1)
	{while(KEY!=0);
	 Delayms(5);
	 if(KEY==0) break;
	}
	while(KEY==0);*/
/***************/
	do	//x action 2
		{//TR1 = 1;
		TR0 = 1;
	 	}while(Counter_x<454);
	//TR1 = 0;
	TR0 = 0;
	Counter_x = 0;
Delayms(5);	
/********************************************/
	Sig_y = 1;
	/***************/
	do   //y action 5
		{
		TR1 = 1;		
		}while(Counter_y<1500);
	TR1 = 0;
    Counter_y = 0;
/********************************************/

/****************/
/*	KEY = 1;
	while(1)
	{while(KEY!=0);
	 Delayms(5);
	 if(KEY==0) break;
	}
	while(KEY==0);*/
/***************/
	do	//x action 3
		{//TR1 = 1;
		TR0 = 1;
	 	}while(Counter_x<1364);
	//TR1 = 0;
	TR0 = 0;
	Counter_x = 0;
Delayms(5);	
/********************************************/
	Sig_y = 1;
	/***************/
	do   //y action 6
		{
		TR1 = 1;		
		}while(Counter_y<1500);
	TR1 = 0;
    Counter_y = 0;
/********************************************/

   Sig_x = 1;
/****************/
/*	KEY = 1;
	while(1)
	{while(KEY!=0);
	 Delayms(5);
	 if(KEY==0) break;
	}
	while(KEY==0);*/
/***************/
  	do	//x action 4
		{//TR1 = 1;
		TR0 = 1;
	 	}while(Counter_x<1364);

	TR0 = 0;
	Counter_x = 0;
Delayms(5);	
	/********************************************/
	Sig_y = 0;
	Delayms(5);	
	/***************/
	do   //y action 7
		{
		TR1 = 1;		
		}while(Counter_y<1500);
	TR1 = 0;
    Counter_y = 0;
/********************************************/
/****************/
/*	KEY = 1;
	while(1)
	{while(KEY!=0);
	 Delayms(5);
	 if(KEY==0) break;
	}
	while(KEY==0);*/
/***************/
	do	//x action 5
		{//TR1 = 1;
		TR0 = 1;
	 	}while(Counter_x<1546);
	//TR1 = 0;
	TR0 = 0;
	Counter_x = 0;
	Delayms(5);	
/********************************************/
	Sig_y = 1;
	Delayms(5);	
	/***************/
	do   //y action 8
		{
		TR1 = 1;		
		}while(Counter_y<1500);
	TR1 = 0;
    Counter_y = 0;
/********************************************/
/****************/
/*	KEY = 1;
	while(1)
	{while(KEY!=0);
	 Delayms(5);
	 if(KEY==0) break;
	}
	while(KEY==0);*/
/***************/
	do	//x action 6
		{//TR1 = 1;
		TR0 = 1;
		}while(Counter_x<1456);
	//TR1 = 0;
	TR0 = 0;
	Counter_x = 0;
	Delayms(5);	
/********************************************/
	Sig_y = 0;
	Delayms(5);	
	/***************/
	do   //y action 9
		{
		TR1 = 1;		
		}while(Counter_y<1500);
	TR1 = 0;   
	Counter_y = 0;
Delayms(250);
Delayms(250);
/********************************************/
/********************************************/
	Sig_y = 0;
	/***************/
	do   //y action 10
		{
		TR1 = 1;		
		}while(Counter_y<1000);
   TR1 = 0;
   Counter_y = 0;
Delayms(250);
Delayms(250);
/********************************************/
/********************************************/
	Sig_y = 0;
	/***************/
	do   //y action 11
		{
		TR1 = 1;		
		}while(Counter_y<1000);
	TR1 = 0;
    Counter_y = 0;
Delayms(250);
Delayms(250);
/********************************************/
/********************************************/
	Sig_y = 0;
	/***************/
	do   //y action 12
		{
		TR1 = 1;		
		}while(Counter_y<1000);
	TR1 = 0;
    Counter_y = 0;
Delayms(250);
Delayms(250);
/********************************************/
/********************************************/
	Sig_y = 0;
	/***************/
	do   //y action 13
		{
		TR1 = 1;		
		}while(Counter_y<1000);
	TR1 = 0;
    Counter_y = 0;
Delayms(250);
Delayms(250);
/********************************************/
/********************************************/
	Sig_y = 0;
	/***************/
	do   //y action 14
		{
		TR1 = 1;		
		}while(Counter_y<1000);
	TR1 = 0;
    Counter_y = 0;
Delayms(250);
Delayms(250);
/********************************************/
/********************************************/
	Sig_y = 0;
	/***************/
	do   //y action 15
		{
		TR1 = 1;		
		}while(Counter_y<1000);
	TR1 = 0;
    Counter_y = 0;
/********************************************/

	/****************/
/*	KEY = 1;
	while(1)
	{while(KEY!=0);
	 Delayms(5);
	 if(KEY==0) break;
	}
	while(KEY==0);*/
/***************/
  	do	//x action 7
		{//TR1 = 1;
		TR0 = 1;
	 	}while(Counter_x<1546);
	//TR1 = 0;
	TR0 = 0;
	Counter_x = 0;
Delayms(5);	
/****************/
/*	KEY = 1;
	while(1)
	{while(KEY!=0);
	 Delayms(5);
	 if(KEY==0) break;
	}
	while(KEY==0);*/
/***************/
	do	//x action 8
		{//TR1 = 1;
		TR0 = 1;
	 	}while(Counter_x<1456);
	//TR1 = 0;
	TR0 = 0;
	Counter_x = 0;
	Delayms(5);	
/********************************************/
	Sig_y = 1;
	Delayms(5);	
	/***************/
	do   //y action 16
		{
		TR1 = 1;		
		}while(Counter_y<1000);
	TR1 = 0;
    Counter_y = 0;
Delayms(250);
Delayms(250);
/********************************************/
/********************************************/
	Sig_y = 1;
	/***************/
	do   //y action 17
		{
		TR1 = 1;		
		}while(Counter_y<1000);
	TR1 = 0;
    Counter_y = 0;
Delayms(250);
Delayms(250);
/********************************************/
/********************************************/
	Sig_y = 1;
	/***************/
	do   //y action 18
		{
		TR1 = 1;		
		}while(Counter_y<1000);
	TR1 = 0;
    Counter_y = 0;
Delayms(250);
Delayms(250);
/********************************************/
/********************************************/
	Sig_y = 1;
	/***************/
	do   //y action 19
		{
		TR1 = 1;		
		}while(Counter_y<1500);
	TR1 = 0;
    Counter_y = 0;
/********************************************/


	Sig_x = 0;
/****************/
/*	KEY = 1;
	while(1)
	{while(KEY!=0);
	 Delayms(5);
	 if(KEY==0) break;
	}
	while(KEY==0);*/
/***************/
	do	//x action 9
		{//TR1 = 1;
		TR0 = 1;
	 	}while(Counter_x<1456);
	//TR1 = 0;
	TR0 = 0;
	Counter_x = 0;
	Delayms(5);	
/********************************************/
	Sig_y = 1;
	/***************/
	do   //y action 20
		{
		TR1 = 1;		
		}while(Counter_y<1500);
	TR1 = 0;
    Counter_y = 0;
/********************************************/
	Sig_x = 1;
	/****************/
/*	KEY = 1;
	while(1)
	{while(KEY!=0);
	 Delayms(5);
	 if(KEY==0) break;
	}
	while(KEY==0);*/
/***************/
	do	//x action 10
		{//TR1 = 1;
		TR0 = 1;
	 	}while(Counter_x<1456);
	//TR1 = 0;
	TR0 = 0;
	Counter_x = 0;
	Delayms(5);	
/********************************************/
	Sig_y = 1;
	/***************/
	do   //y action 21
		{
		TR1 = 1;		
		}while(Counter_y<1500);
	TR1 = 0;
    Counter_y = 0;
/********************************************/

/****************/
/*	KEY = 1;
	while(1)
	{while(KEY!=0);
	 Delayms(5);
	 if(KEY==0) break;
	}
	while(KEY==0);*/
/***************/
	do	//x action 11
		{//TR1 = 1;
		TR0 = 1;
		}while(Counter_x<1818);
	//TR1 = 0;
	TR0 = 0;
	Counter_x = 0;
	Delayms(5);	
/********************************************/
	Sig_y = 0;
	Delayms(5);	
	/***************/
	do   //y action 22
		{
		TR1 = 1;		
		}while(Counter_y<1500);
	TR1 = 0;
    Counter_y = 0;
Delayms(250);
Delayms(250);
/********************************************/
/********************************************/
	Sig_y = 0;
	/***************/
	do   //y action 23
		{
		TR1 = 1;		
		}while(Counter_y<1500);
	TR1 = 0;
    Counter_y = 0;
/********************************************/
	/****************/
/*	KEY = 1;
	while(1)
	{while(KEY!=0);
	 Delayms(5);
	 if(KEY==0) break;
	}
	while(KEY==0);*/
/***************/
	do	//x action 12
		{//TR1 = 1;
		TR0 = 1;
		}while(Counter_x<5268);
	//TR1 = 0;
	TR0 = 0;
	Counter_x = 0;
	Delayms(5);	
/********************************************/
	Sig_y = 0;
	/***************/
	do   //y action 24
		{
		TR1 = 1;		
		}while(Counter_y<4500);
	TR1 = 0;
    Counter_y = 0;
/********************************************/
  }
}
void Delayms(unsigned char ms)	
// relay ms
{	unsigned char i;
	while(ms--)
	{
		for(i = 0; i < 120; i++);
	}
}



	
			
	





	



⌨️ 快捷键说明

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