标题:
51循迹小车
[打印本页]
作者:
加油鸭加油
时间:
2018-12-5 16:49
标题:
51循迹小车
在多方资料查阅下
为了能学习新的知识
希望有需要的人
也要经过自己的思考
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
//sbit deng=P2^3;
unsigned int pwm;
unsigned char zkb1,zkb2,zkb3,zkb4;
sbit IN1=P0^0; //???
sbit IN2=P0^1; //???
sbit IN3=P0^2; //???
sbit IN4=P0^3; //???
sbit IN5=P1^4; //???
sbit IN6=P1^3; //???
sbit IN7=P1^2; //???
sbit IN8=P1^1; //???
sbit ENA1=P3^2;
sbit ENB1=P3^3; //????1??????
sbit ENA2=P1^5;
sbit ENB2=P1^0; //????2??????
sbit L1=P2^6; //?????????
sbit L2=P2^7; //?????????
sbit R1=P2^5; //?????????
sbit R2=P2^4; //?????????
uint i,j;
uchar flag;
//void delayms(x)
// {
// for(i=x;i>0;i--)
// for(j=110;j>0;j--);
// }
void go()
{
IN1=0;
IN2=1;
// delayms(10);
IN3=0;
IN4=1;
// delayms(10);
IN5=0;
IN6=1;
// delayms(10);
//
IN7=0;
IN8=1;
// delayms(10);
}
//void stop()
//{
// IN1=1;
// IN2=1;
//// delayms(10);
// IN3=1;
// IN4=1;
//// delayms(10);
// IN5=1;
// IN6=1;
//// delayms(10);
// IN7=1;
// IN8=1;
//// delayms(10);
//}
void left()
{
IN1=0; //??????
IN2=1;
// delayms(10);
IN3=1; //??????
IN4=0;
// delayms(10);
IN5=0; //??????
IN6=1;
// delayms(10);
IN7=1; //????
IN8=0;
// delayms(10);
}
void right()
{
IN1=1;
IN2=0;
// delayms(10);
IN3=0;
IN4=1;
// delayms(10);
IN5=1;
IN6=0;
// delayms(10);
IN7=0;
IN8=1;
// delayms(10);
}
void init()
{
TMOD=0x01;
TH0=0xff;
TL0=0xf7;
EA=1;
ET0=1;
TR0=1;
}
void T0_time()interrupt 1
{
TR0=0;
TH0=0xff;
TL0=0xf7;
TR0=1;
pwm++;
if(pwm==100)
{
pwm=0;
}
if(pwm<=zkb1)
{
ENA1=1;
}
else
{
ENA1=0;
}
if(pwm<=zkb2)
{
ENB1=1;
}
else
{
ENB1=0;
}
if(pwm<=zkb3)
{
ENA2=1;
}
else
{
ENA2=0;
}
if(pwm<=zkb4)
{
ENB2=1;
}
else
{
ENB2=0;
}
}
void main()
{
init();
flag=3;
while(1)
{
if((L1==1)&&(R1==0))
{
flag=1;
}
// if((L2==0)&&(R1==1))
// {
// flag=1;
// }
if((L1==0)&&(R1==0))
{
flag=3;
}
// if((R2==1)&&(L2==0))
// {
// flag=1;
// }
if((R1==1)&&(L1==0))
{
flag=2;
}
// if((R1==0)&&(L2==1))
// {
// flag=2;
// }
// if((R2==0)&&(L1==1))
// {
// flag=2;
// }
// if((R2==0)&&(L2==1))
// {
// flag=2;
// }
if((R1==1)&&(L1==1))
{
flag=3;
}
switch (flag)
{
case 1:
left();
zkb1=50;
zkb2=50;
zkb3=50;
zkb4=50;
break;
case 2:
right();
zkb1=50;
zkb2=50;
zkb3=50;
zkb4=50;
break;
case 3:
go();
zkb1=20;
zkb2=20;
zkb3=20;
zkb4=20;
break;
}
}
}
复制代码
作者:
2434523118
时间:
2018-12-5 20:40
循迹是不是需要TCRT5000 模块
作者:
2434523118
时间:
2018-12-5 20:41
对于这个模块怎么编程
作者:
加油鸭加油
时间:
2019-7-9 13:26
2434523118 发表于 2018-12-5 20:40
循迹是不是需要TCRT5000 模块
红外对管就可以
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1