51单片机舵机使用的程序,其中为什么设置time设上限175,为什么要让angle=13,和5,这些数字是怎么来的
unsigned int Time=0;
unsigned char Angle=5;
void main()
{
TMOD=0x02;
TH0=0x9c;
TL0=0x9c;
TR0=1;
ET0=1;
EA=1;
while(1){
if(ren==0||ren2==0)
{Angle=13;
led=0;}
else
{
Angle=5;
}
}
void T_0() interrupt 1
{
TH0=0x9c;
TL0=0x9c;
if(Time<Angle)
{
dj=1;
}
else
{
dj=0;
}
Time++;
if(Time==175)
{
Time=0;
}
}
这就是一个软件PWM。
175决定了PWM的周期,是175个Timer0中断周期的长度,这个值要根据舵机的参数决定。Angle参数决定了在一个周期中,多少个周期输出1,1占比越高,角度越大,这个值也需要根据舵机的参数来确定。
你用的这种舵机就是PWM驱动的,占空比越高,角度越大。
任何机械设备必须有运动范围,所有范围都有最大值,最小值,因此会有很多上限值,下限值一般为0
https://blog.csdn.net/m0_51972555/article/details/120789303
循环或者条件判断一般需要一个边界的。。。