新手控制舵机,编写了一段51单片机程序做测试,但是舵机只是动作了一点点,不明原因,请高手指点。
代码如下:其中使用P1口的第二线控制给舵机控制线#include<reg52.h>sbitLED=P1^2;voidInit_Timer0(void){TMOD|=0x0...
代码如下:
其中使用P1口的第二线控制给舵机控制线
#include<reg52.h>
sbit LED=P1^2;
void Init_Timer0(void)
{
TMOD |= 0x01;
TH0=0xff; /* Init value ,100us*/
TL0=0x9c;
EA=1; /* interupt enable */
ET0=1; /* enable timer0 interrupt */
TR0=1;
}
int a=0;
int c=1;
main()
{
Init_Timer0();
while(1);
}
void Timer0_isr(void) interrupt 1 using 1
{
TH0=0xff; /* Init value */
TL0=0x9c;
a=a+1;
if((a==15)&&(LED==1)) /* 高电平持续时间*/
{
a=0;
LED=0;
}
if((a==185)&&(LED==0)) /* 底电平持续时间*/
{
a=0;
LED=1;
}
}
其他问题,
1。舵机控制,输出一个20ms周期的方波,高电平为1.5ms。这样的方波是持续输出,还是只输出一次,看电机的反应? 展开
其中使用P1口的第二线控制给舵机控制线
#include<reg52.h>
sbit LED=P1^2;
void Init_Timer0(void)
{
TMOD |= 0x01;
TH0=0xff; /* Init value ,100us*/
TL0=0x9c;
EA=1; /* interupt enable */
ET0=1; /* enable timer0 interrupt */
TR0=1;
}
int a=0;
int c=1;
main()
{
Init_Timer0();
while(1);
}
void Timer0_isr(void) interrupt 1 using 1
{
TH0=0xff; /* Init value */
TL0=0x9c;
a=a+1;
if((a==15)&&(LED==1)) /* 高电平持续时间*/
{
a=0;
LED=0;
}
if((a==185)&&(LED==0)) /* 底电平持续时间*/
{
a=0;
LED=1;
}
}
其他问题,
1。舵机控制,输出一个20ms周期的方波,高电平为1.5ms。这样的方波是持续输出,还是只输出一次,看电机的反应? 展开
德晟智能
2024-09-04 广告
2024-09-04 广告
舵机,也称为伺服电机,是一种能够精确控制旋转角度的驱动器。它通常由一个小型直流电机、一组变速齿轮、一个反馈可调电位器和一个控制电路板组成。舵机的工作原理是通过接收来自控制器的信号,驱动电机转动到指定的角度,并通过反馈电位器实时监测当前角度,...
点击进入详情页
本回答由德晟智能提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询