《基于单片机的多功能智能小车毕设.doc》由会员分享,可在线阅读,更多相关《基于单片机的多功能智能小车毕设.doc(70页珍藏版)》请在三一办公上搜索。
1、摘要智能作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途。智能电动车就是其中的一个体现。本次设计的简易智能电动车,采用AT89S52单片机作为小车的检测和控制核心;采用金属感应器TL-Q5MC来检测路上感应到的铁片,从而把反馈到的信号送单片机,使单片机按照预定的工作模式控制小车在各区域按预定的速度行驶,并且单片机选择的工作模式不同也可控制小车顺着S形铁片行驶;采用霍尔元件A44E检测小车行驶速度;采用1602LCD实时显示小车行驶的时间,小车停止行驶后,轮流显示小车行驶时间、行驶距离、平均速度以及各速度区行驶的时间
2、。本设计结构简单,较容易实现,但具有高度的智能化、人性化,一定程度体现了智能。关键词:智能车;AT89S52;单片机 ;金属感应器;霍尔元件;1602LCDABSTRACTSmart as a modern invention, the direction of development in the future, he can in an environment where automatic operation in accordance with the pre-set pattern, no human management can be applied to the use of s
3、cientific exploration. Smart electric car is one of expression. The simplicity of the design of intelligent electric car, using AT89S52 MCU core as the detection and control of the car; metal sensor TL-Q5MC to detect the way the sensor to the iron plates, so that the feedback signal to send to the m
4、icrocontroller, so that microcontroller in accordance with predetermined operating mode to control the car traveling in the regions according to a predetermined speed, and the operating mode selected by the microcontroller to control the car traveling along the S-shaped iron plates; Hall element A44
5、E detect car speed; using 1602LCD real-time display car traveling car to stop driving, take turns to car travel time, travel distance, average speed and velocity zone traveling time. This design is simple, more easy to implement, but are highly intelligent, humane, to some extent reflects the intell
6、igent.Keywords: smart car; AT89S52 is; microcontroller; metal sensors; Hall element; 1602LCD目录摘要ABSTRACT第1章设计任务11.1要求1第二章 方案比较与选择22.1路面检测模块22.2LCD显示模块32.3测速模块32.4控速模块32.5模式选择模块4第3章 程序框图5第4章 系统的具体设计与实现74.1路面检测模块74.2LCD显示模块74.3测速模块74.4控速模块74.5复位电路模块74.6模式选择模块8第5章 最小系统图8第6章 最终PCB板图10总结12参考文献13致14附录151
7、设计任务设计并制作了一个智能电动车,其行驶路线满足所需的要求。1.1 要求1.1.1 基本要求1分区控制:如图1所示:1.1 车辆从起跑线出发出发前,车体不得超出起跑线。在第一个路程CD区36米以低速行驶,通过时间不低于10s;第二个路程DE区2米以高速行驶,通过时间不得多于4秒;第三个路程EF区36米以低速行驶,通过时间不低于10s。 2小车能自动记录、显示行驶时间、行驶距离以及行驶速度,还能记录每段所走的时间,从而判断是否符合课程设计要求。记录显示装置要求安装在车上。1.1.2 发挥部分S型控制:如图2所示:图2车辆沿着S形铁片行驶,自动转弯,自动寻找正确方向和铁片。当离开S型铁片跑道或者
8、感应不到铁片一段时间的时候,小车自动停止,并记录行驶时间,路程,平均速度并通过LCD显示出来。第2章 方案比较与选择根据设计任务要求,并且根据我们自己的需要而附加的功能,该电路的总体框图可分为几个基本的模块,框图如图3所示:图32.1 路面检测模块采用铁片感应器TL-Q5MC来检测路面上的铁片从而给单片机中断脉冲。原理图接线如图4所示:图42.2 LCD显示模块采用1602LCD,由单片机的总线模式连接。为节约电源电量并且不影响LCD的功能,LCD的背光用单片机进行控制,使LCD的背光在小车行驶的过程中不亮,因为我们不必看其显示;在其它我们需要看显示的容的时候LCD背光亮。2.3 测速模块2.
9、3.1 方案1采用采用霍尔开关元器件A44E检测轮子上的小磁铁从而给单片机中断脉冲,达到测量速度的作用。霍尔元件具有体积小,频率响应宽度大,动态特性好,对外围电路要求简单,使用寿命长,价格低廉等特点,电源要求不高,安装也较为方便。霍尔开关只对一定强度的磁场起作用,抗干扰能力强,因此可以在车轮上安装小磁铁,而将霍尔器件安装在固定轴上,通过对脉冲的计数进行车速测量。2.3.2 方案2采用红外传感器进行测速。但无论是反射式红外传感器还是对射式红外传感器,他们对都对外围环境要求较高,易受外部环境的影响,稳定性不高,且价格较为昂贵。通过对方案1、方案2的比较其优缺点,综合多方面因素决定选用方案1,其原理
10、图接线如图5所示:图52.4 控速模块:2.4.1 方案1使用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,成本低,加速能力强,但功率损耗大,特别是低速大转距运行时,通过电阻R的电流大,发热厉害,损耗大,对于小车的长时间运行不利。2.4.2 方案2采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整.此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高。2.4.3 方案3采用由双极性管组成的H桥电路。用单片机控制晶体管使之工作在占空比可调的开关状态,精确调整电机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高
11、;H桥电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也很高,是一种广泛采用的调速技术。综合3种方案的优缺点,决定选择方案3,其电路原理图如图6所示:图62.5 模式选择模块模式选择模块通过一个74LS00与非门和两个不带锁按钮来控制单片机单片机的两个中断口,从而按动按钮来选择小车走动的路型、来选择小车的速度是快速、中速、慢速;走完路程小车停止后还可以通过按钮选择想要在LCD上想看的信息,比如总时间、走过各段路程的时间、平均速度、总路程等。小车走动的模式选择有:1 直线型:满足设计任务的基本要求,能稳定的走完全程。之后按顺序循环不断的显示走完全程所用的时间、走完高速区所用的
12、时间和走完低速区所用的时间这三个时间;或者可以通过两个按钮以及LCD显示的菜单选择所要看的容如平均速度、全程距离以及那三个时间。2 S型:满足设计任务的发挥部分的要求,小车能自动的感应到在前面或在后面铁片,即第一次转弯后若感应到的是错误的方向,则小车会后退自动调整方向,沿着S型的铁片走。当走完S型铁片后的一定时间里,小车自动停止。之后自动进入菜单由我们自己选择要看的容时间、平均速度和所走的距离。3自动型:小车先以一定的速度走完全程,之后再以一定的速度倒退回起点,再调整速度在一定的时间走完全程。走完后LCD显示的容与直线型显示的容一样。第3章 程序框图:单片机主程序框图、速度感应程序框图和铁片感
13、应程序框图分别如图7所示。第4章 系统的硬件设计与实现4.1 路面检测模块 应用一个金属感应器,安装在车盘下,离地略小于或约四毫米。当金属传感器检测到铁片时将对单片机发送中断信号,单片机运行中断,改变输给电机驱动信号的电压占空比来控制小车的速度。4.2 LCD显示模块采用1602LCD,由单片机的总线模式连接。为节约电源,LCD的背光用单片机进行控制。4.3 测速模块通过霍尔元件感应磁铁来产生脉冲,一个车轮均匀放四个小磁铁,计算一秒所得的脉冲数,从而计算出一秒小车轮子转动圈数,再测量出小车车轮周长即可计算出小车当前速度,累加可得到当前路程。4.4 控速模块考虑到元器件的缺少以及我们所用的电路的
14、驱动电机的电路原理图和和小车自带的电路的电机驱动原理图一样,所以暂时使用小车自带的电机驱动电路图。4.5 复位电路模块单片机的复位电路通过手动来实现,复位电路图如图8所示。图84.6 模式选择模块:两个中断口使用和感应铁片、感应速度所使用的中断口一样,通过一个与非门和按钮控制。原理图如图9所示:图9第5章 最小系统图 该系统主要用到的是单片机,所以主要的部分是最小系统图,该最小系统图如图10所示:第6章 系统调试与仿真该最小系统的最终PCB板图包括LCD接口以及其他的外部扩展电路部分,考虑到最小系统的简洁以及容易看懂,外部扩展电路不在最小系统图上显示。分别如图11、图12所示:图11图12总结
15、在本次设计中,我学到了很多没有接触到的电子知识,使我的知识有了进一步提升,这次的毕业设计,对我今后参加工作是受益匪浅的,特别是老师们的精心指导,以及同学们的耐心帮助,让我觉得做毕业设计是一件可遇而不可求的事情,我也希望,在我今后的工作中能发扬我们在学校做毕业设计的这种精神,能互相帮助,做事能细心细致,在此,我也感剑老师以及实验室的老师在设计中对我们的指导和帮助,十分感!参考文献1胡乾斌等单片微型计算机原理与应用华中科技大学2阎石.数字电子技术基础.高等教育.20063 皮大熊等.单片机课程设计实例指导,理工大学,2010.4红卫.单片机应用系统设计实例与分析,:航空航天大学.20035 志海,
16、黄玉清,连鑫单片机原理及应用电子工业6楼然苗,光飞51系列单片机设计实例M航空航天大学,20037余家春Protel 99 SE电路设计实用教程M中国铁道,20048王为青.单片机Keil Cx51应用开发技术.人民邮电,2007.9 Li gang.51 series microcomputer application skills and system design. Beijing aerospace 11Zhou Jian.microcontroller easy primer. Beijing aerospace university press, 2004.12 胡汉才 单片机原理
17、及其接口技术M清华大学,20XX13 琳琳 单片机原理及其接口技术M 国防科技大学,20XX14 许惠民 单片微型计算机原理、接口及应用M 邮电,20XX15 康华光 电子技术基础M 高等教育,20XX16 传友 测控电路及装置 航空航天,20XX17 华成英 童诗白 模拟电子技术基础 第四版 高等教育 20XX18 MaximDS1629 data release bookZ2002致经过三个月的学习和试验,终于完成了我的毕业设计。看着自己辛勤的成果,心里非常高兴。在这期间遇到了很多从来都没有遇到过的问题,但是通过自己的努力和老师、同学的帮助最后把它们一一解决了。其中在剑老师的精心安排和指导
18、下,对题目有了较深入的理解,也尝到了电路系统设计的艰辛。在本次设计中我在各个环节中都做到了深入实际,动手实践,不仅对我们学过的理论知识进行了一次全面的复习和巩固,而且还在电子电路、单片机等方面拓展了我们的知识面,为将来的实际工作打下良好的基础,特别是在分析问题,解决问题的方面得到了良好的锻炼机会,受益匪浅。由于本人水平和经验有限,在设计的过程中难免存在一些不足甚至一些错误,敬请各位老师和同学批评指正。最后,向我的指导教师剑老师表示诚挚的感,同时,也向帮助过我的同学们表示感!附录附录A元件清单:元件数量AT89S52 单片机1片霍尔元件A44E1个铁片感应器TL-Q5MC1个1602LCD1片小
19、车1部小磁铁片4片发光二极管2个带锁按钮2个不带锁按钮3个12MHz晶振1个排阻5101个74ls002个16位排线1条排针若干电阻若干电容若干导线若干附录B按照预定的功能,系统实现预定的功能的程序如下所示:#include #include /* 宏定义区*/*- LCD模块 -*/#define LCD_RW P2_6 /读写控制端#define LCD_RS P2_7/数据命令选择端#define LCD_E P2_5/执行使能端#define LCD_DataP1 /P1口#define Write0x00/低电平写入#define Read0x01/高电平读出#define Data
20、0x01/高电平选择数据#define Cmd0x00/低电平选择命令#define Enable0x00/跃变到低电平时执行命令#define Disable0x01 #define True0x01#define False0x00#define LCD_Init0x38/初始化模式#define LCD_DispCtr 0x0C/开显示及光标设置#define LCD_CloseCtr0x08/关显示#define LCD_CLS 0x01/清屏幕#define LCD_EnterSet 0x06/显示光标 #define BusyP1_7/忙信号/*- 测速/测距/测时模块 -*/#d
21、efine CircleLength0.132/小车转一轮的长度为.132m/*- 控速模块 -*/#define P03P0_3 /后电机#define P04P0_4 /后电机#define P01 P0_1 /前电机#define P02P0_2 /前电机#define P31P0_5 /控制液晶背光#define P33P3_3/*- 菜单选择模块-*/#define Line0x00/0代表直线模式#define Curve0x01/1代表S型模式#define Normal0x00/0 代表正常速度#define Low0x01/1 代表低速#define High0x02/2 代
22、表高速/* 全局函数声明区 */*- LCD模块 -*/void LCDInit;/LCD初始化void SetWriteCmd;/设置写命令模式void SetReadCmd;/设置读命令模式void SetWriteData;/设置写数据模式void WriteCmd;/写命令void WriteData;/写数据void ExecuteCmd;/执行命令void SetXY;/定位显示地址void DisplaySingleChar;/显示单个字符void DisplayString; /显示一段字符串void Delay;/延时主程序void DelayUs;/延时子程序bit IsB
23、usy;/判断忙标志函数void DisplayTime;/显示时间void DisplayAVGSpeed;/显示平均速度void DisplayDistance;/显示路程/*- 测速/测距/测时模块 -*/ void INTInit; /所有中断初始化void SpeedINT; /测速中断void ComputeTime;void ComputeSpeedANDDistance;/计算速度和距离/*- 控速模块 -*/void CtrSpeedINT; /控速中断void Time0INT; void Time1INT; /控速单位时间中断void Clock0_Init;/时钟中断初
24、始化void Clock1_Init; /时钟中断初始化void CtrSpeed;/* 全局变量区*/float SpeedCount = 0; /测速计数脉冲float Speed = 0.0;float Distance = 0.0; char Time1INTCount=0;/T1中断时间计时float PassTime=0.00;/小车行走的时间short IsT0INT=1;bit IsT1INT;/判断T1是否已经响应中断short IsT0INT2=1;char Thx5=0xf4,0xf4,0xc5,0xf4,0xff; /3ms,3ms,15ms,3mschar Tlx5=
25、0x48,0x48,0x68,0x48,0xff;char Thx0=0xd8;char Tlx0=0xf0;char Thx1=0xb1; /20mschar Tlx1=0xe0;short Round=0;short Back=0;short Back0=0;bit Backid;bit Stop=0;char Area0=0;char Area1=0;/区域变量char LowSpeedArea1StartTime;char LowSpeedArea1EndTime;char HighSpeedAreaEndTime;char LowSpeedArea2EndTime;char LowS
26、peedArea1PassTime=0; /第一个低速区通过时间char HighSpeedAreaPassTime=0;/高速区通过时间char LowSpeedArea2PassTime=0;/第二个低速区通过时间char ReadyToGo=4;/倒计时char flag;bit Roundid=0;char Nocurve=0; char ChangeFlag;char Mode; bit Running;bit SelectedAll;/模式和速度是否选择完毕标志bit IsSelectingMode;/模式选择标志bit IsSelectingSpeed;/速度选择标志bit Mo
27、deSelected;/已经被选择的模式标志char SelectedMode=10;/模式选择是否完毕标志bit Next;/Next键标志bit SpeedSelected;/已经被选中的速度方案标志char SelectedSpeed;/速度选择是否完毕标志bit ChoosingDisplay;/人工选择菜单开始标志bit SelectedShow;/显示选择标志bit SelectedReturn;/返回选择标志bit Selected;/确定/返回键选择标志bit ReturnSelection;/返回键启用标志bit AVGSpeedShow;/平均速度显示标志bit Total
28、DistanceShow;/总路程显示标志bit ReturnMain;/返回主菜单标志bit AutoDisplay;/自动显示标志bit GoToChoosingDisplay;/人工选择标志bit AutoMode=0;char PassLineID=0;char PassLine=0;float PrepareDistance;float FirstDistance;float SecondDistance;float ThirdDistance;int FirstHigh;int SecondHigh;int ThirdHigh;float Rate=1.25; /5ms时的速度fl
29、oat Count=4;/时间的倍数/* 全局函数实现区*/*-主函数 -*/void main P01=0;P02=0;P03=0;P04=0;P31=1;/单片机复位,背光开Delay;/延时等待LCD启动LCDInit;/初始化LCDDisplayString;DisplayString;Delay;WriteCmd;EA=1; /开总中断EX0=1;/开INT0中断IT0=1;/INTO边沿触发EX1=1; /开INT1中断IT1=1; /INT1边沿触发SelectedAll=False; /开始模式和速度选择/*- 模式选择 -*/DisplayString;DisplayStri
30、ng;Delay;WriteCmd;IsSelectingMode=True;while WriteCmd;DisplayString;DisplayString;Delay;/延时消除抖动while /不断检测中断,直到按确定键或是NEXT键if /如果按Next键则直接跳出break;if /如果按确定键则设置模式为Line并跳出SelectedMode=Line;break;/如果什么键都没有按下,那么一直显示等待if /按下了确定键,退出模式选择IsSelectingMode=False;break;if /按下了Next键,显示下一个菜单项Next=False;WriteCmd;Di
31、splayString;DisplayString;Delay;/延时消除抖动while/不断检测中断,直到按确定键或是Next键 if /如果再一次按下Next键,则跳出break;if /如果按下确定键,则设置模式为Curve,并跳出SelectedMode=Curve;break;if /按下了确定键,退出模式选择IsSelectingMode=False;break;if /再一次按下了Next键,则循环模式选择Next=False;WriteCmd;DisplayString;DisplayString;Delay; /延时消除抖动whileif break;if AutoMode=1;break;if IsSelectingMode=False;break;if Next=False;continue;Delay;WriteCmd; /*- 速度选择 -*/if DisplayString;DisplayString;Delay;WriteCmd;IsSelectingSpeed=True;whileWriteCmd;DisplayString;DisplayString;Delay; /延时消除抖动whileif /如果按Next键则直接跳出break;if