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

上传人:scccc 文档编号:13715232 上传时间:2022-01-22 格式:DOC 页数:10 大小:15.41KB
返回 下载 相关 举报
基于51单片机的智能小车控制源代码(毕业设计).doc_第1页
第1页 / 共10页
基于51单片机的智能小车控制源代码(毕业设计).doc_第2页
第2页 / 共10页
基于51单片机的智能小车控制源代码(毕业设计).doc_第3页
第3页 / 共10页
基于51单片机的智能小车控制源代码(毕业设计).doc_第4页
第4页 / 共10页
基于51单片机的智能小车控制源代码(毕业设计).doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《基于51单片机的智能小车控制源代码(毕业设计).doc》由会员分享,可在线阅读,更多相关《基于51单片机的智能小车控制源代码(毕业设计).doc(10页珍藏版)》请在三一文库上搜索。

1、文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. /*/ /*/ / 智能小车控制器基于51单片机实现前进后退转弯与智能采样控制功能 #include #include unsigned int tata8; unsigned char flag=0,flag2=0,flag3=0,n,m; unsigned int Angle,q,length,temp1; sbit A1=P32; sbit A2=P33; sbit B1=P34; sbit B2=P35; sbit ENA=P36; sbit ENB=P37; sbit red1=P13; sbit red2=P16; v

2、oid 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;b0;b-) for(a=38;a0;a-); void delay1(void) /转角延时函数 unsigned char w,y,c; for(c=1;c0;c-) for(y=97;y0;y-) for(w=3;w0;w-); vo

3、id delay3(void) /避障延时函数 文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. unsigned char a,b,c; for(c=98;c0;c-) for(b=100;b0;b-) for(a=40;a0;a-); void delay2(void) /手动控制延时函数 unsigned char a,b,c; for(c=98;c0;c-) for(b=15;b0;b-) for(a=17;a0;a-) if(m) break; void qianjin() /前进 unsigned char f; A1=1;A2=0;B1=1;B2=0; for(f=

4、0;f155;f+) A1=0;A2=0;B1=0;B2=1; /直线校准语句 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; 文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. void main() unsigned char temp; InitUART(); while(1) i

5、f(flag) flag=0; for(temp=2;temp8;temp+) /字符型转成整型函数 tatatemp=tatatemp_x0016_; / 执行转角指令 Angle=10*(tata2*100+tata3*10+tata4); m=0; if(Angle10) /地面小角度摩擦校正函数 Angle+; if(tata1=L) for(q=0;qAngle;q+) zuozhuan(); delay1(); if(m) break; else if(tata1=R) for(q=0;qAngle;q+) youzhuan(); delay1(); if(m) break; 文档

6、来源为:从网络收集整理.word版本可编辑.欢迎下载支持. tingzhi(); delay(); for(temp=2;temp8;temp+) /字符型转成整型函数 tatatemp=tatatemp_x0016_; / 执行前进指令 length=100*(tata5*100+tata6*10+tata7); / m=0; if(!m) for(q=0;qlength;q+) qianjin(); delay(); delay(); if(m) break; if(!red1) delay1(); if(!red1) youzhuan(); delay3(); while(!red1);

7、 if(!red2) delay1(); if(!red2) zuozhuan(); delay3(); while(!red2); if(!red1)|(!red2) houtui(); delay3(); 文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. while(!red1)|(!red2); if(flag3) m=0; flag3=0; if(tata1 =W)qianjin(); else if(tata1=A)A1=0;A2=0;B1=0;B2=1; else if(tata1=S)houtui(); else if(tata1=D)A1=0;A2=1;B1=0;B2=0; else if(tata1=T)tingzhi(); delay2(); tingzhi(); void UARTInterrupt(void) interrupt 4 if(RI) m=1; RI = 0; if(SBUF=$) flag2=1; if(flag2) tatan=SBUF; n+; if(n=9&tata8=*) n=0; flag=1; flag2=0; if(n=3&tata2=#) n=0; flag3=1; flag2=0; 文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1