目 录
摘 要 I
Abstract II
1绪论 1
1.1课题研究背景 1
1.2国内外发展现状 1
1.3汽车自动停车器的研究目的 2
1.4课题研究的意义 2
2汽车停车器的功能设计 3
2.1汽车自动停车器的设计要求 3
2.2停车器的主要功能 3
3汽车自动停车器的硬件设计 5
3.1汽车自动停车器的硬件组成 5
3.2 STC89C52RC单片机的电路以及引脚介绍 5
3.3电机驱动模块 7
3.4传感器模块 8
3.5 电源供电系统 11
3.6 LCD1602液晶显示模块 11
4汽车自动停车器的软件设计 13
4.1开发软件KeiluVision5与STC-ISP的介绍 13
4.2跟踪系统主程序分析 15
4.3电机驱动程序 16
4.4红外传感器程序 16
4.5 LCD1602液晶显示程序 17
5汽车自动停车器功能测试 19
5.1汽车自动停车器的功能测试 19
5.2发现问题与解决问题的方案 19
6结论和展望 20
6.1结论 20
6.2展望 20
参考文献 21
致 谢 22
附录:红外遥控程序 23
2汽车停车器的功能设计
2.1汽车自动停车器的设计要求
该系统以STC89C52单片机作为系统的核心,通过红外线传感器来检测到被跟踪对象所处的位置,将信号反馈给单片机,单片机根据STC软件下载到其中的程序作出相应的反应,并将指令下达至电机驱动模块然后电机驱动轮胎作出相应的动作实现跟踪的功能。在下载红外避障跟踪程序的hex文件到单片机之前,应当做好充分的准备工作。首先应当安装好开发板的驱动以及STC烧写软件,在设备管理器中查看USB端口的号码如COM6。然后安装KeiluVision4软件为编程做准备。最后在使用红外避障程序之前先将调用函数编译好以备调用,所用的函数有停车器左转函数、停车器右转函数、电机后退函数、停车器前进函数。这样停车器的功能函数就不会显得过于冗长,而且不影响跟踪功能的实现。将程序下载到单片机之后,检测停车器能否按照要求对目标进行跟踪实现功能,总结实验中发现的不足,进行总结与改进,尽最大可能满足毕业设计的要求。
2.2停车器的主要功能
汽车自动停车器的主要功能有:1、实现对指定物体的红外感应跟踪。2、延时50msK4确认是按下之后,蜂鸣器发出“滴”声响,然后启动停车器。3、超声波测距,测量停车器与被跟踪物体之间的距离。4、LCD1602液晶距离显示:在液晶屏上显示测得的距离。5、蜂鸣报警器还可以对危险情况进行报警等。对于汽车自动停车器更广泛的更高级的功能来说主要有以下几点:(1)智能家居的控制辅助:在家庭中,可以用汽车自动停车器进行家具、远程控制家中的家用电器,控制室温等等。(2)工程安全检测与受损评估:在工程建设领域,可对高速公路自动,进行道路质量检测和破坏分析检测;对水库堤坝、海岸护岸堤、江河大坝进行质量和安全性检测。在制造领域,可用于工业管道中机械损伤,裂纹等缺陷的探寻,对输油和输气管线的泄漏和破损点的查找和定位等。(3)探测危险与排除险情:在战场上或工程中,常常会遇到各种各样的意外。这时,智能化探测停车器就会发挥很好的作用。战场上,可以使用汽车自动驾驶扫除路边炸弹、寻找和销毁地雷。民用方面,可以探测化学泄漏物质,可以进行地铁灭火,以及在强烈地震发生后到废墟中寻找被埋人员等。(4)辅助驾驶系统:利用智能感知系统的信息进行决策规划,给驾驶员提出驾驶建议或部分地代替驾驶员进行车辆控制操作。主要包括:巡航控制、车辆跟踪系统、准确泊车系统及精确机动系统。这些高级的汽车自动停车器的功能让我们的生活更加的自动化,让人类的工作更为安全。汽车自动停车器虽然比不上它们的功能强大,但是也为我们的生活提供了便利。如商场里的自动追踪购物车、机场的自动行李运输车等。
红外遥控程序
#include<AT89x51.H>
#define Left_moto_go {P1_2=0,P1_3=1;} //左边电机向前走
#define Left_moto_back {P1_2=1,P1_3=0;} //左边电机向后转
#define Left_moto_Stop {P1_2=0,P1_3=0;} //左边电机停转
#define Right_moto_go {P1_6=1,P1_7=0;} //右边电机向前走
#define Right_moto_back {P1_6=0,P1_7=1;} //右边电机向后走
#define Right_moto_Stop {P1_6=0,P1_7=0;} //右边电机停转
#define Imax 14000 //此处为晶振为11.0592时的取值,
#define Imin 8000 //如用其它频率的晶振时,
#define Inum1 1450 //要改变相应的取值。
#define Inum2 700
#define Inum3 3000
unsigned char f=0;
unsigned char Im[4]={0x00,0x00,0x00,0x00};
unsigned char show[2]={0,0};
unsigned long m,Tc;
unsigned char IrOK;