简单循迹小车实验心得_新人刚刚接触单片机,求教一个简单的循迹小车程序(实在看不懂)...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

程序如下:

#include

#define uint unsigned int

#define uchar unsigned char

sbit P10=P1^0; //控制左电机前进

sbit P11=P1^1;//控制左电机后退

sbit P12=P1^2;//控制右电机前进

sbit P13=P1^3;//控制右电机后退

sbit LED=P0^0;

sbit zuobian=P3^2; //左边传感器

sbit youbian=P3^3; //右边传感器

//************************************************

//延时函数,在12MHz的晶振频率下

//大约50us的延时

//************************************************

voiddelay_50us(uint t)

{

uchar j;

for(;t>0;t--)

for(j=19;j>0;j--);

}

//************************************************

//延时函数,在12MHz的晶振频率下

//大约50ms的延时

//************************************************

voiddelay_50ms(uint t)

{

uint j;

for(;t>0;t--)

for(j=6245;j>0;j--);

}

void qianjin()//小车前进

{ P10=0;P11=1;

delay_50us(25);

P10=1;P11=1;

delay_50us(10);

P12=0;P13=1;

delay_50us(25);

P12=1;P13=1;

delay_50us(10);

}

void tingzhi() //小车停止

{ P10=1;P11=1;P12=1;P13=1;}

void youguai() //小车右拐

{ P10=0;P11=1;

delay_50us(25);

P10=1;P11=1;

delay_50us(10);

P12=1;P13=1;

delay_50us(10);

}

void zuoguai() //小车左拐

{

P12=0;P13=1;

delay_50us(25);

P12=1;P13=1;

delay_50us(10);

P10=1;P11=1;

delay_50us(10);

}

void zhuanwan()//小车转弯

{

P10=1;P11=0;P12=0;P13=1;

delay_50ms(15);

{P10=1;P11=1;P12=1;P13=1;}

delay_50ms(100);

LED=1;

}

voidmain(void)

{

LED=0;

while(1)

{

if(zuobian==1&&youbian==0) //右边检测到黑线

zuoguai();

if(zuobian==0&&youbian==1) // 左边检测到黑线

youguai();

if(zuobian==1&&youbian==1) // 在黑线外

qianjin();

if(zuobian==0&&youbian==0) //到终点

zhuanwan();

}

}

请教一下这个程序用的电机驱动硬件是什么?是L298N吗?如果是,那么此程序中的P1^0一直到P1^3是接到L298N的 IN1 IN2 IN3 IN4吗?如果说如果是的话那么为什么小车前进函数,右拐函数,左拐函数我看不太懂,就拿前进函数来说:

void qianjin()//小车前进

{ P10=0;P11=1; //这是什么意思? 是IN1 IN2一个为高一个为低,左电机正转吗?(如果是P1^0接到IN1, P1^1接到IN2的话)

delay_50us(25);

P10=1;P11=1; //意思是IN1 IN2全为高电平,OUT1为0?所以停止?

delay_50us(10);

P12=0;P13=1; //同上

delay_50us(25);

P12=1;P13=1; //同上

delay_50us(10);

}

求各位大神显神通,本人感激不尽!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值