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

📄 sifu_keyokbak.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 = P3^4;
sbit  KEY = P3^7;
sbit  QUENSHU = P3^5;

unsigned int Counter;
void Delayms(unsigned char ms);

//----------------------------------------
void time0(void) interrupt 1
{
	Counter++;
	TH0 = 0xFC;
	TL0 = 0x18;
}

void time1(void) interrupt 3
{
	QUENSHU = ~QUENSHU;
	Counter++;
	TH1 = 0xFF;
	TL1 = 0xE0;
}

//----------------------------------------
void main(void)
{  
 //   bit Flag;
	P1 = 0XFF;
    P3 = 0XFF;
    QUENSHU = 0;
    TMOD = 0x11;
	IT0 = 1; 
	PCON=0X00;
	ET0 = 1;
	ET1 = 1;
								
    TH0 = 0xFC;
	TL0 = 0x18;      //time0=1ms 
    TH1 = 0xFF;
	TL1 = 0xE0;

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

 while(1)
  {
	Sig = 0;
/****************/
	KEY = 1;
	while(1)
	{while(KEY!=0);
	 Delayms(5);
	 if(KEY==0) break;
	}
	while(KEY==0);
/***************/
	do
		{TR1 = 1;
	 	}while(Counter<12636);
    Counter = 0;
	TR1 = 0;
/****************/
	KEY = 1;
	while(1)
	{while(KEY!=0);
	 Delayms(5);
	 if(KEY==0) break;
	}
	while(KEY==0);
/***************/
	do
		{TR1 = 1;
	 	}while(Counter<454);
	TR1 = 0;
	Counter = 0;
/****************/
	KEY = 1;
	while(1)
	{while(KEY!=0);
	 Delayms(5);
	 if(KEY==0) break;
	}
	while(KEY==0);
/***************/
	do
		{TR1 = 1;
	 	}while(Counter<1364);
	Counter = 0;
	TR1 = 0;


   Sig = 1;
/****************/
	KEY = 1;
	while(1)
	{while(KEY!=0);
	 Delayms(5);
	 if(KEY==0) break;
	}
	while(KEY==0);
/***************/
  	do
		{TR1 = 1;
	 	}while(Counter<1364);
	Counter = 0;
	TR1 = 0;
/****************/
	KEY = 1;
	while(1)
	{while(KEY!=0);
	 Delayms(5);
	 if(KEY==0) break;
	}
	while(KEY==0);
/***************/
	do
		{TR1 = 1;
	 	}while(Counter<1546);
	TR1 = 0;
	Counter = 0;
/****************/
	KEY = 1;
	while(1)
	{while(KEY!=0);
	 Delayms(5);
	 if(KEY==0) break;
	}
	while(KEY==0);
/***************/
	do
		{TR1 = 1;
		}while(Counter<1456);
	TR1 = 0;
	Counter = 0;

	/****************/
	KEY = 1;
	while(1)
	{while(KEY!=0);
	 Delayms(5);
	 if(KEY==0) break;
	}
	while(KEY==0);
/***************/
  	do
		{TR1 = 1;
	 	}while(Counter<1546);
	Counter = 0;
	TR1 = 0;
/****************/
	KEY = 1;
	while(1)
	{while(KEY!=0);
	 Delayms(5);
	 if(KEY==0) break;
	}
	while(KEY==0);
/***************/
	do
		{TR1 = 1;
	 	}while(Counter<1456);
	TR1 = 0;
	Counter = 0;
/****************/
	KEY = 1;
	while(1)
	{while(KEY!=0);
	 Delayms(5);
	 if(KEY==0) break;
	}
	while(KEY==0);
/***************/
	do
		{TR1 = 1;
		}while(Counter<1818);
	TR1 = 0;
	Counter = 0;

	/****************/
	KEY = 1;
	while(1)
	{while(KEY!=0);
	 Delayms(5);
	 if(KEY==0) break;
	}
	while(KEY==0);
/***************/
	do
		{TR1 = 1;
		}while(Counter<5268);
	TR1 = 0;
	Counter = 0;

  }
	
/*	Flag = 0;
	while(1)
	{
	KEY = 1;
	while(KEY)
	{
	 Delayms(5);
	 if(KEY==1) break;
	 Flag = ~Flag;
	 if(Flag==1) TR1 =1;
	 else TR1 = 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 + -