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

📄 servo.c

📁 单片机控制多路舵机的源码
💻 C
字号:
/******************************************************************************
标题:多路舵机控制电路C语言版
说明:AT8951改变脉冲宽度控制舵机位置(C语言版)
作者:kaka000      论坛:http://www.proteus.com.cn
日期:2007年11月11日
******************************************************************************/

/******************************************************************************
分辨率:100 (即每增减1等于增减1.8°)
常用角度:  
98=-90°;
	115=-59.4°;
		123=-45°;
			131=-30.6°;
				148=0°;
			165=+30.6°;
		173=+45°;
	181=+59.4°;
198=+90°
******************************************************************************/
 
#include"at89x51.h" 
//延时10ms子程序*********************************************************************

void delay10ms(void)	
{ 
	unsigned char i,j; 
	for(i=20;i>0;i--) 
	for(j=248;j>0;j--);
} 

//延时2s子程序***********************************************************************

void delay1s(void)		
{ 
	unsigned char i; 
	for(i=100;i>0;i--)  
	delay10ms();
} 

//各舵机转动子函数*******************************************************************

void P00(int i)    
{ 
	P0_0=0;
	P0_0=1;
	for(;i>=0;i--){} 
	P0_0=0;   
}
void P01(int i)    
{ 
	P0_1=0;
	P0_1=1;
	for(;i>=0;i--){} 
	P0_1=0;   
}
void P02(int i)    
{ 
	P0_2=0;
	P0_2=1;
	for(;i>=0;i--){} 
	P0_2=0;   
}
void P03(int i)    
{ 
	P0_3=0;
	P0_3=1;
	for(;i>=0;i--){} 
	P0_3=0;   
}
void P04(int i)    
{ 
	P0_4=0;
	P0_4=1;
	for(;i>=0;i--){} 
	P0_4=0;   
}
void P05(int i)    
{ 
	P0_5=0;
	P0_5=1;
	for(;i>=0;i--){} 
	P0_5=0;   
}
void P06(int i)
{ 
	P0_6=0;
	P0_6=1;
	for(;i>=0;i--){} 
	P0_6=0;   
}
void P07(int i)    
{ 
	P0_7=0;
	P0_7=1;
	for(;i>=0;i--){} 
	P0_7=0;   
}
void P10(int i)    
{ 	
	P1_0=0;
		P1_0=1;
	 for(;i>=0;i--){} 
	P1_0=0;
}
void P11(int i)    
{ 	
	P1_1=0;
	P1_1=1;
	for(;i>=0;i--){} 
	P1_1=0;
}
void P12(int i)    
{ 	
	P1_2=0;
	P1_2=1;
	for(;i>=0;i--){} 
	P1_2=0;
}
void P13(int i)    
{ 	
	P1_3=0;
	P1_3=1;
	for(;i>=0;i--){} 
	P1_3=0;
}
void P14(int i)    
{ 
	P1_4=0;
	P1_4=1;
	for(;i>=0;i--){} 
	P1_4=0;
}
void P15(int i)    
{ 
	P1_5=0;
	P1_5=1;
		for(;i>=0;i--){} 
	 P1_5=0;   
}
void P16(int i)    
{ 
	P1_6=0;
	P1_6=1;
	for(;i>=0;i--){} 
	P1_6=0;   
}
void P17(int i)    
{ 
	P1_7=0;
	P1_7=1;
	for(;i>=0;i--){} 
	P1_7=0;
}

void P20(int i)    
{ 	
	P2_0=0;
	P2_0=1;
	for(;i>=0;i--){} 
	P2_0=0;
}
void P21(int i)    
{ 	
	P2_2=0;
	P2_2=1;
	for(;i>=0;i--){} 
	P2_2=0;
}
void P22(int i)    
{ 	
	P2_2=0;
	P2_2=1;
	for(;i>=0;i--){} 
	P2_2=0;
}
void P23(int i)    
{ 	
	P2_3=0;
	P2_3=1;
	for(;i>=0;i--){} 
	P2_3=0;
}
void P24(int i)    
{ 
	P2_4=0;
	P2_4=1;
	for(;i>=0;i--){} 
	P2_4=0;
}
void P25(int i)    
{ 
	P2_5=0;
	P2_5=1;
	for(;i>=0;i--){} 
	P2_5=0;   
}
void P26(int i)    
{ 
	P2_6=0;
	P2_6=2;
	for(;i>=0;i--){} 
	P2_6=0;   
}
void P27(int i)    
{ 
	P2_7=0;
	P2_7=1;
	for(;i>=0;i--){} 
	P2_7=0;
}
void P30(int i)    
{ 	
	P3_0=0;
	P3_0=1;
	for(;i>=0;i--){} 
	P3_0=0;
}
void P31(int i)    
{ 	
	P3_3=0;
	P3_3=1;
	for(;i>=0;i--){} 
	P3_3=0;
}
void P32(int i)    
{ 	
	P3_2=0;
	P3_2=1;
	for(;i>=0;i--){} 
	P3_2=0;
}
void P33(int i)    
{ 	
	P3_3=0;
	P3_3=1;
	for(;i>=0;i--){} 
	P3_3=0;
}
void P34(int i)    
{ 
	P3_4=0;
	P3_4=1;
	for(;i>=0;i--){} 
	P3_4=0;
}
void P35(int i)    
{ 
	P3_5=0;
	P3_5=1;
	for(;i>=0;i--){} 
	P3_5=0;   
}
void P36(int i)    
{ 
	P3_6=0;
	P3_6=3;
	for(;i>=0;i--){} 
	P3_6=0;   
}
void P37(int i)    
{ 
	P3_7=0;
	P3_7=1;
	for(;i>=0;i--){} 
	P3_7=0;   
}

//所有舵机转动子函数*****************************************************************
void PALL(int a,int b,int c,int d,int e,int f,int g,int h,int i)
{
	P10(a);
	P11(b);
	P12(c);
	P13(d);
	P14(e);
	P15(f);
	P16(g);
	P17(h);
	//可以继续增加到32路!!!!!!P0口要加上拉电阻!

⌨️ 快捷键说明

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