您的位置 首页 汽车

51单片机IO模仿PWM操控舵机转向

本例程晶振为32Mincludereg52h>defineuintunsignedintvoiddrive();voiddelay(uint);sbitpwm=P2^0;uintset;set为

本例程晶振为32M

#include
#define uint unsigned int

void drive();
void delay(uint);

sbit pwm=P2^0;

uint set; //set为舵机转角标志位
unsigned char angle;//angle为舵机PWM改动打角

void Time0_Init() //中止初始化
{
TMOD=0X01;
IE=0X82;
TH0=(65536-58)/256;
TL0=(65536-58)%6;
TR0=1;
}

void main()//主函数
{
set=0;
angle=23; // 改动angle的值能够改动舵机的占空比

Time0_Init();

for(;;)
{
drive();
}
}

void drive() //电机驱动例程,改动占空比
{

angle=12;
delay(800);

angle=52;
delay(800);

angle=135;
delay(800);
}

void delay(uint x)
{
uint i,j;
for(i=x;i>0;i–)
for(j=110;j>0;j–);
}

void T0_time()interrupt 1 //100HZ,10MS
{

TH0=(65536-58)/256;
TL0=(65536-58)%6;

if(set pwm=1;
else
pwm=0;
set++;
if(set>385) set=0; //舵机占空比

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/261963.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部