c语言程序控制小车拼装,单片机控制的智能小车的C语言程序.doc

#include

#define sense P1 /*宏定义光电传感器端口*/

#define input1 P0 /*左电机的IN1,IN2定义在P0口*/

#define input2 P2 /*右电机的IN3,IN4及ENA,ENB定义在P2口*/

//宏定义电机的具体端口

sbit MOTO1_INT1=P0^0;

sbit MOTO1_INT2=P0^1;

sbit MOTO1_ENA=P2^0;

sbit MOTO2_INT3=P2^5;

sbit MOTO2_INT4=P2^4;

sbit MOTO2_ENB=P2^2;

//宏定义传感器的具体端口

sbit sense_L=P1^3;

sbit sense_R=P1^6;

//宏定义金属传感器端口

sbit METAL=P1^1;

//宏定义DELAY函数中的一些变量

int Dtime1=20000;

int Dtime2=2000;

int i=0;

unsigned char SIGNAL(void); //传感器信号分析函数

void DELAY(void); //延时函数

void main()

{

int a;

MOTO1_INT1=1; //使车开始时运动

MOTO1_INT2=0;

MOTO1_ENA=1;

MOTO2_INT3=1;

MOTO2_INT4=0;

MOTO2_ENB=1;

while(1)

{

if(METAL==1) //有金属时车停止

DELAY();

else

{

a=SIGNAL();

switch(a)

{

case 1:input2=0x25;break; //前进

case 2:input2=0x24;break; //左转

case 3:input2=0x21;break; //右转

default:break;

}

}

}

}

void DELAY() //延时函数

{

input2=0x20; //使驱动芯片的两个使能端为0, 使两个电机停转

for(i=0;i

input2=0x25; //使驱动芯片的两个使能端为1,使两个电机重新转

for(i=0;i

}

unsigned char SIGNAL()

{

unsigned char Re;

Re=sense&0x28;

if(Re==40)return 1;//前进

else if(Re==8)return 2;//左转

else if(Re==32)return 3;//右转

else return 1;//有错时前进

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值