Proteus仿真PMW舵机时不知为何舵机不动

2019-07-15 12:40发布

RT,资料上说PWM舵机是通过脉冲信号来控制的,一个周期是20ms,所以用12Mhz的晶振定时器应该比较准吧...每0.5ms控制舵机一个角度,所以我设置定时器65536-500=65035=fe0cH
那么...为何舵机就是不转呢?求老师能解答一下。
#include<reg52.h>
typedef unsigned char uchar;
typedef unsigned int uint;
sbit pwd=P2^0;
sbit s1=P3^1;
sbit s2=P3^2;
uchar count,jd=1;

void delay(uchar z)
{
        uchar a;
        for(z=z;z>0;z--)
                for(a=114;a>0;a--);
}

void init()
{
        TMOD=0x01;
        TH0=0xfe;
        TL0=0x0c;
        ET0=1;
        EA=1;
        TR0=1;
}

void key()
{
        if(!s1)
        {
                delay(5);
                if(!s1)
                {
                        count=0;
                        jd++;
                        if(jd>5)
                                jd=5;       
                        while(!s1);
                }
        }
        if(!s2)
        {
                delay(5);
                if(!s2)
                {
                        count=0;
                        jd--;
                        if(jd<1)
                                jd=1;
                        while(!s2);
                }
        }
}

void main()
{
        init();
        while(1)
        {
                key();
        }
}

void time0() interrupt 1
{
        TH0=0xfe;
        TL0=0x0c;
        if(count<jd)
                pwd=1;
        else
        {
                pwd=0;
                count++;
                count=count%40;       
        }       

}


捕获.PNG
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。