人人范文网 范文大全

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

发布时间:2020-03-02 15:50:22 来源:范文大全 收藏本文 下载本文 手机版

/****************************************************// //***************************************************// // 智能小车控制器基于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单片机的智能小车设计

毕业设计任务书(智能小车)

51单片机控制交通灯

智能小车单片机课程设计报告

毕业设计论文基于单片机的循迹智能小车的设计与实现

基于单片机设计智能小车的参考文献

基于89C51单片机的智能小车设计

51单片机毕业论文

51单片机论文

基于51单片机的交通灯控制电路设计

基于51单片机的智能小车控制源代码(毕业设计)
《基于51单片机的智能小车控制源代码(毕业设计).doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档