标题: at89c51单片机驱动舵机SG90时,舵机会不按程序走,希望大佬能指问题所在 [打印本页]

作者: 超级无敌菜    时间: 2020-4-13 13:55
标题: at89c51单片机驱动舵机SG90时,舵机会不按程序走,希望大佬能指问题所在
一个时间后舵机会抽风(乱转)。
然后就正常程序执行。

程序:
#include<reg52.h>
sbit SG_PWM1=P2^0;
sbit SG_PWM2=P2^1;
sbit key=P3^2;                                 //开关

unsigned char PWM0=2;                  //1--0度,2--45度,3--90度,4--135度,5--180度
unsigned char PWM1=2;                  //1--0度,2--45度,3--90度,4--135度,5--180度
unsigned char count0=0;        
unsigned char count1=0;                        
unsigned char out0;
unsigned char out1;

void timer_init()
{
        TMOD = 0x11;//TMOD设置
    TH0 = (65536-500)/256;
    TL0 = (65536-500)%256;//初值           0.5ms
        ET0=1;        

        TH1= (65536-500)/256;
    TL1 = (65536-500)%256;//初值           0.5ms
        ET1=1;

        EA=1;
        TR0=1;
        TR1=1;        
}
void timer0() interrupt 1
{
        TR0=0;
        TH0=(65536-500)/256;
    TL0=(65536-500)%256;//初值           0.5ms
        if(count0>40)
        {        
                count0=0;
        }
        else        count0++;
        if(count0<=PWM0)
        {
                SG_PWM1=1;
        }
        else SG_PWM1=0;        
        TR0=1;
}
void timer1() interrupt 3
{
        TR1=0;
        TH1=(65536-500)/256;
    TL1=(65536-500)%256;//初值           0.5ms
        if(count1>40)
        {        
                count1=0;
        }
        else        count1++;
        if(count1<=PWM1)
        {
                SG_PWM2=1;
        }
        else SG_PWM2=0;        
        TR1=1;               
}
void delay_ms(unsigned char z)
{
        unsigned int i,j;
        for(i=0;i<z;i++)
        {
                for(j=0;j<1000;j++);
        }        
}
void main()
{               
        delay_ms(1);
        timer_init();
        while(1)
        {               
                PWM1=4;        
                PWM0=2;
                delay_ms(255);
                PWM0=4;
                PWM1=2;        
                delay_ms(255);                        
        }        
}



作者: cyg0528    时间: 2020-4-13 14:54
应该是主函数延时少了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1