①PWM脉宽控制:本设计中采用定时器0产生定时中断来控制P1.0与P1.1的输出从而生成PWM波。中断程序如下:
void time0(void)interrupt 1 { i++; j++;
if(i<=pro_right) {en1=1;} else en1=0;
if(i==40) {en1=~en1;i=0;} if(j<=pro_left) {en2=1;} else en2=0;
if(j==40) {en2=~en2;j=0;} TH0=(65536-100)/256; TL0=(65536-100)%6; }
②左右转向子程序:通过改变左右PWM波的占空比,来实现电机的速度控制;当小车需要左转弯时,将控制左侧电机的PWM波占空比设置为0,右侧设置为20;当小车需要右转时则相反。
左转弯子程序: void turn_left(){ pro_right=0; pro_left=20; left1=1; left2=0; right1=1; right2=0; }
右转弯子程序: void turn_right() {
pro_right=40; pro_left=0; left1=1; left2=0; right1=1; right2=0; }
③小车在遇到障碍物时将首先运行后退程序,之后转向;后退子程序是通过改变电机正反转控制位而实现的。程序如下:
void turn_back() {
10
left1=0; left2=1; right1=0; right2=1; pro_right=20; pro_left=20; }
第五章 结束语
本系统采用MSC-51系列单片机STC89C52、L298N电机控制芯片和红外传感器来设计智能小车,实现了小车的自动避障与检测黑线。系统不足之处为避障的检测距离较短。这是由于所选红外传感器的检测距离所限,若要进行提高需更换检测距离更远的传感器即可;除此之外,可见光对于本系统也有影响,不过一般影响不大,但是若要精确的采集数据,可以利用滤波器将红外光之外的其他频率的光线滤除。
11
参考文献:
[1] 徐友春,王荣本,世界智能车辆近况综述, 汽车工程[J], Vol.23, No.5, 2001.10 [2] 国防科大研制出第四代无人驾驶汽车,计算机自动测量与控制[J]第8卷,p22
[3] 郭天祥.新概念51单片机C语言教程——入门、提高、开发、拓展全攻略[M].北京:电子工业出版社,2009
[4] 蔡美琴 MCS-51系列单片机系统及其应用[M].北京:高等教育出版社,2002 [5] 冯建华,赵亮 单片机应用系统设计与产品开发[M].北京:人民邮电出版社 2004 [6] 胡汉才,单片机原理及接口技术[M].北京:清华大学出版社,1996
[7] 童诗白,华成,模拟电子技术基础(第四版)[M].高等教育出版社,2006.5 [8] 阎石.数字电子技术基础(第五版)[M].北京:高等教育出版社,2005 [9] http://ishare.iask.sina.com.cn/f/15395661.html?from=like
12
致 谢
历时三个月的毕业设计已经告一段落。经过自己不断的搜索努力以及老师的耐心指导和热情帮助,本设计已经基本完成。在这个过程中老师以及曾做过此类设计的同学给予了我很大的帮助,给我提供了大量的硬件和软件资料,也给我的设计提出了宝贵的意见和建议。在此,对大家表示衷心的感谢!
这次设计不仅是对我们大学四年专业知识的一次集中地检验,同时也为我们提供了一个进入职场前的实战机会;通过这次在老师指导下做设计的机会,我对于技术实践方面有了更深刻的认识,也进一步夯实了所学的专业知识。虽然在设计中对于知识的运用和衔接还不够熟练。但是我将在以后的工作和学习中继续努力、不断完善。这三个月的设计是对过去所学知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。
由于自身水平有限,设计中一定存在很多不足之处,敬请各位老师批评指正。 最后,再次向给予我指导和帮助的老师和各位同学表示最诚挚的谢意!
13
附录1:
附录2:
#include
#define uchar unsigned char #define uint unsigned int
uchar pro_left=35,pro_right=35,i,j; //左右占空比标志 sbit left1=P2^1; sbit left2=P2^0; sbit right1=P2^3; sbit right2=P2^2; sbit pleft=P2^7; sbit pright=P2^6; sbit en1=P1^0; sbit en2=P1^1;
//循迹口 三个红外传感器 sbit left_red=P1^2; //白线位置 sbit right_red=P1^4; //白线位置
void delay(uint z) {
uchar i;
14