ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:508.13KB ,
资源ID:16987014      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16987014.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(x循迹小车+电路+程序Word格式文档下载.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

x循迹小车+电路+程序Word格式文档下载.docx

1、7 系统程序138 致谢469 参考文献4710 附录481. 设计任务:设计并制作了一个智能电动车,其行驶路线满足所需的要求。1.1 要求:1.1.1 基本要求:1)分区控制:如图1)所示:图1) 车辆从起跑线出发出发前,车体不得超出起跑线)。在第一个路程CD区36M)以低速行驶,通过时间不低于10s;第二个路程DE区2M)以高速行驶,通过时间不得多于4秒;第三个路程EF区36M)以低速行驶,通过时间不低于10s。p1EanqFDPw 2)小车能自动记录、显示行驶时间、行驶距离以及行驶速度,还能记录每段所走的时间,从而判断是否符合课程设计要求。记录显示装置要求安装在车上)。DXDiTa9E3

2、d1.1.2 发挥部分:S型控制:图2)所示:图2)车辆沿着S形铁片行驶,自动转弯,自动寻找正确方向和铁片。当离开S型铁片跑道或者感应不到铁片一段时间的时候,小车自动停止,并记录行驶时间,路程,平均速度并通过LCD显示出来。RTCrpUDGiT2. 方案比较与选择:根据设计任务要求,并且根据我们自己的需要而附加的功能,该电路的总体框图可分为几个基本的模块,框图如图3)所示:5PCzVD7HxA图3)2.1 路面检测模块:采用铁片感应器TL-Q5MC来检测路面上的铁片从而给单片机中断脉冲。原理图接线如图4)所示:图4)2.2 LCD显示模块:采用1602LCD,由单片机的总线模式连接。为节约电源

3、电量并且不影响LCD的功能,LCD的背光用单片机进行控制,使LCD的背光在小车行驶的过程中不亮,因为我们不必看其显示;在其它我们需要看显示的内容的时候LCD背光亮。jLBHrnAILg2.3 测速模块:2.3.1 方案1:采用采用霍尔开关元器件A44E检测轮子上的小磁铁从而给单片机中断脉冲,达到测量速度的作用。霍尔元件具有体积小,频率响应宽度大,动态特性好,对外围电路要求简单,使用寿命长,价格低廉等特点,电源要求不高,安装也较为方便。霍尔开关只对一定强度的磁场起作用,抗干扰能力强,因此可以在车轮上安装小磁铁,而将霍尔器件安装在固定轴上,通过对脉冲的计数进行车速测量。xHAQX74J0X2.3.

4、2 方案2:采用红外传感器进行测速。但无论是反射式红外传感器还是对射式红外传感器,他们对都对外围环境要求较高,易受外部环境的影响,稳定性不高,且价格较为昂贵。LDAYtRyKfE通过对方案1、方案2的比较其优缺点,综合多方面因素决定选用方案1,其原理图接线如图5)所示:图5)2.4 控速模块:2.4.1 方案1:使用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,成本低,加速能力强,但功率损耗大,特别是低速大转距运行时,通过电阻R的电流大,发热厉害,损耗大,对于小车的长时间运行不利。Zzz6ZB2Ltk2.4.2 方案2:采用继电器对电动机的开或关进行控制,通过开关

5、的切换对小车的速度进行调整.此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高。dvzfvkwMI12.4.3 方案3:采用由双极性管组成的H桥电路。用单片机控制晶体管使之工作在占空比可调的开关状态,精确调整电机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高;H桥电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也很高,是一种广泛采用的调速技术。rqyn14ZNXI综合3种方案的优缺点,决定选择方案3,其电路原理图如图6)所示:图6)2.5 模式选择模块:模式选择模块通过一个74LS00与非门和两个不带锁按钮来控制单片机单片机的两个中

6、断口,从而按动按钮来选择小车走动的路型、来选择小车的速度是快速、中速、慢速;走完路程小车停止后还可以通过按钮选择想要在LCD上想看的信息,比如总时间、走过各段路程的时间、平均速度、总路程等。EmxvxOtOco小车走动的模式选择有:1) 直线型:满足设计任务的基本要求,能稳定的走完全程。之后按顺序循环不断的显示走完全程所用的时间、走完高速区所用的时间和走完低速区所用的时间这三个时间;或者可以通过两个按钮以及LCD显示的菜单选择所要看的内容如平均速度、全程距离以及那三个时间。SixE2yXPq52) S型:满足设计任务的发挥部分的要求,小车能自动的感应到在前面或在后面铁片,即第一次转弯后若感应到

7、的是错误的方向,则小车会后退自动调整方向,沿着S型的铁片走。当走完S型铁片后的一定时间里,小车自动停止。之后自动进入菜单由我们自己选择要看的内容时间、平均速度和所走的距离。6ewMyirQFL3)自动型:小车先以一定的速度走完全程,之后再以一定的速度倒退回起点,再调整速度在一定的时间内走完全程。走完后LCD显示的内容与直线型显示的内容一样。kavU42VRUs3. 程序框图:单片机主程序框图、速度感应程序框图和铁片感应程序框图分别如4系统的具体设计与实现:4.1 路面检测模块:应用一个金属感应器,安装在车盘下,离地略小于或约四毫M。当金属传感器检测到铁片时将对单片机发送中断信号,单片机运行中断

8、,改变输给电机驱动信号的电压占空比来控制小车的速度。y6v3ALoS894.2 LCD显示模块:为节约电源,LCD的背光用单片机进行控制。4.3 测速模块:通过霍尔元件感应磁铁来产生脉冲(当霍尔元件在离磁场较近时输出会是高电平,其它时候是低电平,一个车轮均匀放四个小磁铁,计算一秒所得的脉冲数,从而计算出一秒小车轮子转动圈数,再测量出小车车轮周长即可计算出小车当前速度,累加可得到当前路程。M2ub6vSTnP4.4 控速模块:考虑到元器件的缺少以及我们所用的电路的驱动电机的电路原理图和和小车自带的电路的电机驱动原理图一样,所以暂时使用小车自带的电机驱动电路图。0YujCfmUCw4.5 复位电路

9、模块:单片机的复位电路通过手动来实现,复位电路图如图8)所示。图8)4.6 模式选择模块:两个中断口使用和感应铁片、感应速度所使用的中断口一样,通过一个与非门和按钮控制。原理图如图9)所示:eUts8ZQVRd图9)5最小系统图: 该系统主要用到的是单片机,所以主要的部分是最小系统图,该最小系统图如图10)所示:图12)6. 最终PCB板图:该最小系统的最终PCB板图包括LCD接口以及其他的外部扩展电路部分,考虑到最小系统的简洁以及容易看懂,外部扩展电路不在最小系统图上显示。)分别如图11)、图12)所示:sQsAEJkW5T图11)7系统程序:按照预定的功能,系统实现预定的功能的程序如下所示

10、:#includeAT89X52.h/*GMsIasNXkA* 宏定义区 */TIrRGchYzg/*- LCD模块 -*/7EqZcWLZNX#define LCD_RW P2_6 /读写控制端#define LCD_RS P2_7 /数据命令选择端#define LCD_E P2_5 /执行使能端#define LCD_Data P1 /P1口#define Write 0x00/低电平写入#defineRead 0x01/高电平读出#defineData 0x01/高电平选择数据#defineCmd 0x00/低电平选择命令#define Enable 0x00/跃变到低电平时执行命令#

11、defineDisable 0x01#define True 0x01#defineFalse 0x00#define LCD_Init 0x38/初始化模式#define LCD_DispCtr 0x0C/开显示及光标设置#define LCD_CloseCtr 0x08/关显示#define LCD_CLS 0x01/清屏幕#define LCD_EnterSet 0x06/显示光标#define Busy P1_7 /忙信号/*- 测速/测距/测时模块 -*/lzq7IGf02E#define CircleLength 0.132/小车转一轮的长度为.132m/*- 控速模块 -*/zv

12、pgeqJ1hk#define P03 P0_3 /后电机#define P04 P0_4 /后电机#define P01 P0_1 /前电机#define P02 P0_2 /前电机#define P31 P0_5 /控制液晶背光#define P33 P3_3/*- 菜单选择模块 -*/NrpoJac3v1#define Line 0x00/0代表直线模式#define Curve 0x01/1代表S型模式#define Normal 0x00/0 代表正常速度#define Low 0x01/1 代表低速#define High 0x02/2 代表高速/*1nowfTG4KI* 全局函数

13、声明区 */fjnFLDa5Zo/*- LCD模块 -*/tfnNhnE6e5void LCDInit(void。 /LCD初始化void SetWriteCmd(void /设置写命令模式void SetReadCmd(void /设置读命令模式void SetWriteData(void /设置写数据模式void WriteCmd(char cmd /写命令void WriteData(char ddata /写数据void ExecuteCmd(void /执行命令void SetXY(char x,char y /定位显示地址void DisplaySingleChar(char x,

14、char y,char cchar /显示单个字符HbmVN777sLvoid DisplayString(char x,char y,char *str /显示一段字符串V7l4jRB8Hsvoid Delay(unsignedint time /延时主程序void DelayUs(unsignedint time /延时子程序bit IsBusy(void /判断忙标志函数void DisplayTime(void /显示时间void DisplayAVGSpeed(void /显示平均速度void DisplayDistance(void /显示路程/*- 测速/测距/测时模块 -*/8

15、3lcPA59W9void INTInit(void /所有中断初始化void SpeedINT(void /测速中断void ComputeTime(voidvoid ComputeSpeedANDDistance(void /计算速度和距离/*- 控速模块 -*/mZkklkzaaPvoid CtrSpeedINT(void /控速中断void Time0INT(void void Time1INT(void /控速单位时间中断void Clock0_Init(void /时钟中断初始化void Clock1_Init(void /时钟中断初始化AVktR43bpwvoid CtrSpee

16、d(void/*ORjBnOwcEd* 全局变量区 */2MiJTy0dTTfloat 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,3msgIiSpiue7Achar Tlx5

17、=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 L

18、owSpeedArea1PassTime=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。 /速度选择标

19、志bit ModeSelected。 /已经被选择的模式标志char SelectedMode=10。 /模式选择是否完毕标志bit Next。 /Next键标志bit SpeedSelected。 /已经被选中的速度方案标志char SelectedSpeed。 /速度选择是否完毕标志bit ChoosingDisplay。 /人工选择菜单开始标志bit SelectedShow。 /显示选择标志bit SelectedReturn。 /返回选择标志bit Selected。 /确定/返回键选择标志bit ReturnSelection。 /返回键启用标志bit AVGSpeedShow。

20、/平均速度显示标志bit TotalDistanceShow。 /总路程显示标志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时的速度float Count=4。 /时间的倍数/*uEh0U1Yfmh* 全局函数实现区 */IAg9qLsgBX/*- 主函数 -*/WwghWvVhPEvoid main( P01=0。 P02=0。 P03=0。 P04=0。 P31=1。 /单片机复位,背光开 Delay(40 /延时等待LCD启动 LCDInit( /初始化LCD DisplayString(0x0,0, Starting. DisplayString(0x0,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1