智能小车电机驱动代码电路Word下载.docx

上传人:b****4 文档编号:16497092 上传时间:2022-11-24 格式:DOCX 页数:8 大小:29.61KB
下载 相关 举报
智能小车电机驱动代码电路Word下载.docx_第1页
第1页 / 共8页
智能小车电机驱动代码电路Word下载.docx_第2页
第2页 / 共8页
智能小车电机驱动代码电路Word下载.docx_第3页
第3页 / 共8页
智能小车电机驱动代码电路Word下载.docx_第4页
第4页 / 共8页
智能小车电机驱动代码电路Word下载.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

智能小车电机驱动代码电路Word下载.docx

《智能小车电机驱动代码电路Word下载.docx》由会员分享,可在线阅读,更多相关《智能小车电机驱动代码电路Word下载.docx(8页珍藏版)》请在冰豆网上搜索。

智能小车电机驱动代码电路Word下载.docx

//减速

sbitkey2=P3^1;

//加速

sbitkey3=P3^2;

//前进后退

sbitkey4=P3^3;

//停止

sbitkey5=P3^4;

//左拐

sbitkey6=P3^5;

//右拐

sbitma2=P2^2;

sbitmb2=P2^1;

sbitpwm2=P2^3;

//占空比控制位

bitflag=0,flag0=0,flag1=0,flag2=0;

//电机转动控制标志位。

ucharnum=0;

voiddelay(ucharxms)//简单的延时

{

uinti;

ucharj;

for(i=xms;

i>

0;

i--)

for(j=110;

j>

j--);

}

voidturn_around()//电机转动占空比控制函数

pwm1=0;

pwm2=0;

delay(num);

pwm1=1;

pwm2=1;

delay(100-num);

voidRotational_mode()//电机转动模式选择,正转,反转,停止,开启

if(flag0==0)

{

if(flag==0)//flag用来控制电机的正反转,flag=0时电机正转,否则电机反转。

ma1=1;

ma2=1;

mb1=0;

mb2=0;

}

else

ma1=0;

ma2=0;

mb1=1;

mb2=1;

else//电机停止控制

ma2=0;

mb1=0;

voidturn_left()//电机左转,使两个电机的占空比不同,电机就会有不同的转动模式。

delay(60);

delay(40);

voidturn_right()//电机右转

voidkeyscan()//按键检测部分

if(key1==0)

delay(5);

if(key1==0)//key1按下后,num++,电机减速。

while(!

key1);

num+=20;

if(num>

100)

num=100;

flag1=0;

flag2=0;

if(key2==0)

if(key2==0)//key2按下后,num--,电机加速。

key2);

num-=20;

if(num<

0)

num=0;

if(key3==0)

if(key3==0)//key3按下后,flag的值发生改变,从而,改变电机的转动放向。

{

key3);

flag=~flag;

flag1=0;

if(key4==0)

if(key4==0)//key4按下后电机停止工作,再次按下后电机开始工作。

key4);

flag0=~flag0;

if(key5==0)

//key5按下后电机左转。

key5);

flag1=1;

//flag1=1,按左转模式转动。

if(key6==0)

//key6按下后电机右转。

key6);

flag2=1;

//flag2=1,按右转模式转动。

然后每次按按完key5和key6后,

//要保证flag1,flag2都复位为0,因此每次有键按下后,

//都有flag1,flag2为0。

voidmain()

//EA=1;

//定时器的控制语句。

//ET0=1;

//TMOD=0X01;

//TH0=-50000/256;

//TL0=-50000%256;

//TR0=1;

while

(1)

keyscan();

Rotational_mode();

if(flag1==0&

&

flag2==0)

turn_around();

elseif(flag1==1)

turn_left();

elseif(flag2==1)

turn_right();

//voidtimer_0()interrupt1//定时器中断用来控制PWM的输出。

//{

//if(flag==0)//flag用来控制电机的正反转,flag=0时电机正转,否则电机反转。

//{

//ma1=1;

//ma2=1;

//mb1=0;

//mb2=0;

//}

//else

//

//ma1=0;

//ma2=0;

//mb1=1;

//mb2=1;

//pwm1=0;

//pwm2=0;

//delay(num);

//pwm1=1;

//pwm2=1;

//delay(100-num);

//}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 天文地理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1