关于舵机#学习#的问题,如何解决?

在学习舵机时,角度控制不精准,通电就开始抖,Proteus里仿真可以产生20ms周期波,示波器也可以测出20ms周期波形,但是舵机无反应,有时候抖舵,不知道如何改进了。

请帮看看有什么问题.共同学习共同进步

#include "REG52.H"
unsigned char count;
unsigned char jd;

sbit dz=P2^0;
sbit jia=P3^7;
sbit jian=P3^6;

void Delay1ms()        //@12.000MHz
{
    unsigned char i, j;

    i = 12;
    j = 169;
    do
    {
        while (--j);
    } while (--i);
}


void Timer0()//定时器0开始初始化函数
{
    TMOD=0x01;
    IE=0x82;
    TH0=0xfe;
    TL0=0x0c;
      TF0=1;
    TR0=1;//开始计数
}
void timer0_() interrupt 1
{
    TH0=0xfe;
    TL0=0x0c;
      TF0=0;
    if(count<jd)
        dz=1;
    else
        dz=0;
        
    count++;
    if(count==39)
    count=0;
}
void keyscan()
{
    if(jia==0)
        {
           Delay1ms();
            if(jia==0)
            {
                jd++;
                count=0;
                if (jd==6)
                {
                    jd=5;
                }
                while (jia==0);
            }
        }
        if(jian==0)
        {
            Delay1ms();
            if(jian==0)
            {
                jd--;
                count=0;
                if (jd==0)
                {
                    jd=1;
                }
                while (jian==0);
            }
        }
}
void main()
{
    jd=1;count=0;
    Timer0();
    while(1)
    {
        keyscan();
    }
}

用PWM设置方波的产生。