51单片机按键控制舵机

怎样准确的调节舵机转动的角度,如何使舵机转动10度,5度?pwm信号的占空比应该设置为多少?编译程序软件为keil5,烧录软件为stc-ISP,求指教😣

#include <REGX52.H>
#include <INTRINS.H>
sbit moto=P2^0;

void Delay2ms() //@11.0592MHz
{
unsigned char i, j;

_nop_();
i = 4;
j = 146;
do
{
    while (--j);
} while (--i);

}

void Delay18ms() //@11.0592MHz
{
unsigned char i, j;

i = 33;
j = 66;
do
{
    while (--j);
} while (--i);

}

void main()
{
while(1)
{
Delay2ms();
moto=1;
Delay18ms();
moto=0;

    }

}

1、先看舵机的工作频率,这个可以看舵机资料,一般50Hz,所以周期是200ms。
2、利用定时器产生一个1ms中断,计数200,通过比较数字输出管教电平。
3、0-199对应0到180°,100对应90°,中间的关系可以自己计算。