微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 舵机转动度数问题?求大神。

舵机转动度数问题?求大神。

时间:10-02 整理:3721RD 点击:
#include <reg51.h>
sbit P1_2=P1^2;       //用来输出PWM信号
unsigned char m=9,n=0;
int time_ok=0;
void main(void)
{
  
     P1_2=1;
   TMOD = 0x11;   
   TH0 = 0xB8;    //定时20ms
   TL0 = 0x00;  
   TH1 = 0xFF;   //定时0.01ms
   TL1 = 0xF6;
      EA = 1;   
   ET0 = 1;     
   TR0 = 1;
      ET1 = 1;   
   TR1 = 1;
  while(1);
}
void Timer0Interrupt(void) interrupt 1
{  
    TH0 = 0xB8;    //定时器1产生20ms的周期
   TL0 = 0x00;
n++;
if(n==100)     //n可以控制转动的间隔时间
{ m++;
    n=0;
}
}
void Time1Interrupt(void) interrupt 3
{   TH1 = 0xFF;  
  TL1 = 0xF6;   
     ++time_ok;
   if(time_ok>=2000)     //产生脉冲,m每加1,高电平会增加一个第二个定时器的时间0.01ms
  {
    P1_2=1;
    time_ok=0;
  }
  if(time_ok>m)
  {
   P1_2=0;
  }
}
这是舵机共转180°,转一下停一下的程序,我想让舵机每次转的度数小于1°。问题是舵机每次转动的度数为5°多,无法达到1°以下。舵机是MG996R。用的是51单片机,晶振频率为11.0592MHz。求帮助啊!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top