基于51单片机的智能小车控制源代码(毕业设计)_51单片机智能小车制作

2020-02-27 其他范文 下载本文

基于51单片机的智能小车控制源代码(毕业设计)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“51单片机智能小车制作”。

/****************************************************// //***************************************************// // 智能小车控制器基于51单片机实现前进后退转弯与智能采样控制功能 #include #include unsigned int tata[8];unsigned char flag=0,flag2=0,flag3=0,n,m;unsigned int Angle,q,length,temp1;sbit A1=P3^2;sbit A2=P3^3;sbit B1=P3^4;sbit B2=P3^5;sbit ENA=P3^6;sbit ENB=P3^7;

sbit red1=P1^3;sbit red2=P1^6;

void InitUART(void){

TMOD = 0x20;

SCON = 0x50;

TH1 = 0xFD;

TL1 = TH1;

PCON = 0x00;

ES

= 1;

TR1 = 1;EA

= 1;ENA = 1;ENB = 1;}

void delay(void)

//直线延时延时函数 {

unsigned char a,b;

for(b=255;b>0;b--)

for(a=38;a>0;a--);}

void delay1(void)

//转角延时函数 {

unsigned char w,y,c;

for(c=1;c>0;c--)

for(y=97;y>0;y--)

for(w=3;w>0;w--);}

void delay3(void)

//避障延时函数 {

unsigned char a,b,c;

for(c=98;c>0;c--)

for(b=100;b>0;b--)

for(a=40;a>0;a--);}

void delay2(void)

//手动控制延时函数 {

unsigned char a,b,c;

for(c=98;c>0;c--)

for(b=15;b>0;b--)

for(a=17;a>0;a--)

{

if(m)

{

break;

}

} } void qianjin()//前进 { unsigned char f;A1=1;A2=0;B1=1;B2=0;

for(f=0;f

A1=1;A2=0;B1=1;B2=0;}

void zuozhuan()//左转 { A1=1;A2=0;B1=0;B2=1;}

void youzhuan()//右转 { A1=0;A2=1;B1=1;B2=0;}

void houtui(){ A1=0;A2=1;B1=0;B2=1;} void tingzhi(){ A1=0;A2=0;B1=0;B2=0;}

void main(){ unsigned char temp;InitUART();while(1){

if(flag)

{

flag=0;

for(temp=2;temp

{

tata[temp]=tata[temp]%16;

}

//执行转角指令

Angle=10*(tata[2]*100+tata[3]*10+tata[4]);

m=0;

if(Angle

//地面小角度摩擦校正函数

{

Angle++;

}

if(tata[1]=='L')

{

for(q=0;q

{

zuozhuan();

delay1();

if(m)

{

break;

}

} } else if(tata[1]=='R'){ for(q=0;q

{

youzhuan();

delay1();

if(m)

{

break;

}

} } tingzhi();delay();for(temp=2;temp

{

tata[temp]=tata[temp]%16;}

//执行前进指令

length=100*(tata[5]*100+tata[6]*10+tata[7]);// m=0;if(!m){ for(q=0;q

{

qianjin();

delay();

delay();

if(m)

{

break;

}

if(!red1)

{

delay1();

if(!red1)

{

youzhuan();

delay3();

while(!red1);

}

}

if(!red2)

{

delay1();

if(!red2)

{

zuozhuan();

delay3();

while(!red2);

}

}

if((!red1)||(!red2))

{

houtui();

delay3();

while((!red1)||(!red2));

}

}

}

}

if(flag3)

{

m=0;

flag3=0;

if(tata[1]

=='W'){qianjin();}

else if(tata[1]=='A'){A1=0;A2=0;B1=0;B2=1;}

else if(tata[1]=='S'){houtui();}

else if(tata[1]=='D'){A1=0;A2=1;B1=0;B2=0;}

else if(tata[1]=='T'){tingzhi();}

delay2();

}

tingzhi();} }

void UARTInterrupt(void)interrupt 4 {

if(RI)

{

m=1;

RI = 0;

if(SBUF=='$')

{

flag2=1;

}

if(flag2)

{

}

} } tata[n]=SBUF;n++;

if(n==9&&tata[8]=='*'){ n=0;flag=1;flag2=0;} if(n==3&&tata[2]=='#'){ n=0;flag3=1;flag2=0;}

《基于51单片机的智能小车控制源代码(毕业设计).docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
基于51单片机的智能小车控制源代码(毕业设计)
点击下载文档
相关专题 51单片机智能小车制作 毕业设计 单片机 小车 51单片机智能小车制作 毕业设计 单片机 小车
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文