求问单片机控制舵机连续来回转动而不停下来的C程序怎么写
2个回答
滑翔世界
2023-06-13 广告
2023-06-13 广告
舵机的型号还有1、HS-785HB舵机:该舵机具有高精度、超强的阻尼力,可以准确定位。2、MG996R舵机:该舵机具有较高的力矩,可承受大负荷。3、SG90舵机:该舵机是一种小型舵机,具有良好的操作性能。4、MG995舵机:该舵机具有较大的...
点击进入详情页
本回答由滑翔世界提供
展开全部
AT89C52控制
#include<reg52.h>
sbit PWM=P1^0;
unsigned char angle=0;
unsigned char count;
unsigned char flage;
void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=114;y>0;y--);
}
void Time0_Init()
{
TMOD=0x01;
IE=0x82;
TH0=0xfe;
TL0=0x33;
TR0=1;
}
void keyscan1()
{
if(flage==0)
{
delay(10);
angle=2;
}
}void keyscan2()
{
if(flage==1)
{
delay(10);
angle=3;
}
}
void main()
{
flage=1;
count=0;
Time0_Init();
while(1)
{
if(flage==1)
{
keyscan2();
delay(10);
}
flage=!flage;
delay(1000);
if(flage==0)
{
keyscan1();
delay(10);
}
flage=!flage;
delay(200);
}
}
void Time0_Int() interrupt 1
{
TH0=0xfe;
TL0=0x33;
if(count<angle)
PWM=1;
else
PWM=0;
count=(count+1);
count=count%40;
}
#include<reg52.h>
sbit PWM=P1^0;
unsigned char angle=0;
unsigned char count;
unsigned char flage;
void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=114;y>0;y--);
}
void Time0_Init()
{
TMOD=0x01;
IE=0x82;
TH0=0xfe;
TL0=0x33;
TR0=1;
}
void keyscan1()
{
if(flage==0)
{
delay(10);
angle=2;
}
}void keyscan2()
{
if(flage==1)
{
delay(10);
angle=3;
}
}
void main()
{
flage=1;
count=0;
Time0_Init();
while(1)
{
if(flage==1)
{
keyscan2();
delay(10);
}
flage=!flage;
delay(1000);
if(flage==0)
{
keyscan1();
delay(10);
}
flage=!flage;
delay(200);
}
}
void Time0_Int() interrupt 1
{
TH0=0xfe;
TL0=0x33;
if(count<angle)
PWM=1;
else
PWM=0;
count=(count+1);
count=count%40;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询