下载此文档

智能小车电机驱动代码电路.doc


文档分类:通信/电子 | 页数:约14页 举报非法文档有奖
1/14
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/14 下载此文档
文档列表 文档介绍
驱动两路电机,可以实现电机的正转,反转,开始, 停止, 左拐, 右拐, 加速, 减速。 U4 C4 C5 U1 C1 C2 C3 X1 R1 正反转减速加速停止左拐右拐代码#include <> #include <> #include <> #define uchar unsigned char #define uint unsigned int sbit ma1=P2^5; //电机控制位 sbit mb1=P2^4; sbit pwm1=P2^6; sbit key1=P3^0; //减速 sbit key2=P3^1; //加速 sbit key3=P3^2; //前进后退 sbit key4=P3^3; //停止 sbit key5=P3^4; //左拐 sbit key6=P3^5; //右拐 sbit ma2=P2^2; sbit mb2=P2^1; sbit pwm2=P2^3; //占空比控制位 bit flag=0,flag0=0,flag1=0,flag2=0; // 电机转动控制标志位。 uchar num=0; void delay(uchar xms) //简单的延时{ uint i; uchar j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } void turn_around() //电机转动占空比控制函数{ pwm1=0; pwm2=0; delay(num); pwm1=1; pwm2=1; delay(100-num); } void Rotational_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 //电机停止控制{ ma1=0; ma2=0; mb1=0; mb2=0; }} void turn_left() // 电机左转,使两个电机的占空比不同,电机就会有不同的转动模式。{ pwm1=0; pwm2=1; delay(60); pwm1=1; pwm2=0; delay(40); } void turn_right() //电机右转{ pwm1=0; pwm2=1; delay(40); pwm1=1; pwm2=0; delay(60); } void keyscan() //按键检测部分{ 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) { delay(5); if(key2==0) //key2 按下后, num-- ,电机加速。{ while(!key2); num-=20; if(num<0) num=0; flag1=0; flag2=0; }} if(key3==0) { delay(5); if(key3==0) //key3 按下后, flag 的值发生改变,从而,改变电机的转动放向。{ while(!key3); flag=~flag; flag1=0; flag2=0; } } if(key4==0) { delay(5); if(key4==0) //key4 按下后电机停止工作, 再次按下后电机开始工作。{ while(!key4); flag0=~flag0; flag1=0; flag2=0; }} if(key5==0) { delay(5); //key5 按下后电机左转。 if(key5==0) { while(!key5); flag1=1; //flag1=1 ,按左转模式转动。 flag2=0; }} if(key6==0) { delay(5); //key6 按下后电机右转。 if(key6==0) { while(!key6); flag2=1; flag1=0; //flag2=1 , 按右转模式转动。然后每次按按完 key5 和 key6 后, // 要保证 flag1 , flag2 都复位为 0,因此每次有键按下后, //都有 flag1 , flag2 为0。}

智能小车电机驱动代码电路 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数14
  • 收藏数0 收藏
  • 顶次数0
  • 上传人fy3986758
  • 文件大小0 KB
  • 时间2016-06-13