#include <reg51.h> #define uchar unsigned char #define uint unsigned int sbit motorL1=P2^2; uint widthL1; void delay(time) uint time; { TMOD = 0x01; TH0 = -(time / 256); TL0 = -(time % 256); TR0 = 1; while(!TF0); TF0 = 0; } void main() { uint time; while(1) { for (time=500; time<=2500; time=time+10) { motorL1 = 1; delay(time); motorL1 = 0; delay(20000-time); } for (time=2500; time>=500; time=time-10) { motorL1 = 1; delay(time); motorL1 = 0; delay(20000-time); } } } 请问可以用上面的程序来让舵机左右来回转吗?我正在调试舵机,看了很多资料。不过还是不能让舵机动起来,我直接用AT89C51的口来发脉冲的。希望能够得到达人帮助。上面程序,仅仅是写来调试的FOR中的数值可能差点,请勿见怪。我用的是MG945舵机。谢谢了。如果您不闲烦,可以帮我写一段很小的C51或者8051汇编程序。只要能动起来就行。THANKS ^_^ |