(论文)迷宫小车系统的设计最新优秀毕业论文资料搜集呕血奉献_第1页
(论文)迷宫小车系统的设计最新优秀毕业论文资料搜集呕血奉献_第2页
(论文)迷宫小车系统的设计最新优秀毕业论文资料搜集呕血奉献_第3页
(论文)迷宫小车系统的设计最新优秀毕业论文资料搜集呕血奉献_第4页
(论文)迷宫小车系统的设计最新优秀毕业论文资料搜集呕血奉献_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科生毕业论文(设计)打印专用纸目 录摘要.3ABSTRACT .31. 绪论.41.1迷宫小车的作用与意义.41.2迷宫小车的发展现状.42. 设计任务及要求.42.1 设计任务.42.2 技术基本要求.53. 系统方案的论证.53.1单片机控制模块.53.2电机控制模块.53.3光电监测模块.63.4显示模块.64. 总体设计方案.74.1系统模块.74.2系统方案.75. 硬件电路设计.75.1电动机驱动模块的电路设计与实现.75.2单片机控制模块的电路设计与实现.86. 系统的软件设计.86.1程序流程框图.106.2光电检测程序.106.3电机转动程序.126.3.1电机前进程序.126.3.2电机后退程序.126.3.3电机左转程序.126.3.4电机右转程序.126.3.5电机停止程序.126.4显示程序.137. 系统测试与分析.137.1测试工具.137.2测试结果.14参考文献.15附录.16致谢.22迷宫小车系统设计摘要:设计了一个基于单片机控制的迷宫小车系统。该系统采用AT89S52单片机为主控制核心,实现信号采集,路线判断,行驶总时间的显示,以控制小车的运动;利用光电开关感应墙体的存在,结合L298N芯片驱动减速电机运转,从而实现小车走迷宫。该系统有单片机控制模块和光电监测模块两个主要功能模块。单片机控制模块主要利用单片机接受到光电开关输出的高低电平后再输出信号去控制小车的运动;光电监测模块则利用光电传感器对墙体的感应,然后输出相应的高低电平并传送给单片机。这样就可以实时监测小车在迷宫中所处的位置,并进行相应的运动,最终经判断让小车停止在迷宫出口指定的位置上。关键词:单片机;电机驱动;光电开关The System Design of Maze Trolley SystemYi YinxueSchool of Physics and Electronic Information, Grade 2006, Instructor:LaiChunhongAbstract:Microcontroller AT89S52 is used to this maze trolley system to achieve signal acquisition ,line judge and the display of the driving total time.The principle of this system is that use photoelectric sensors which senses the presence of wall combined with the L298N chip to drive the DC Motor,achieve the purpose of making the trolley move and locate, Then achieve the goal that trolley move in the maze!This system composed of modules such as SCM Control Module,Photoelectricity Monitoring Module,and so on.The SCM Control Module uses the SCM to output singnal after receiving the high-low output of photoelectric switches in order to control the move of trolley. Then the Photoelectricity Monitoring Module uses photoelectric sensors to judge the presence of wall ,then output corresponding high-low voltage to transmit to the microcontroller .This allows real-time monitoring of car position in the maze, and the corresponding movement,at last achieve the goal of making the trolley stop at the specified location.Key word: microcontroller; motor drive; photoelectric switch1. 绪论1.1迷宫小车的作用与意义进入21世纪,伴随着电子、信息技术的应用与迅速普及,人们对电子技术的要求越来越高。迷宫小车的出现对今后更好地用机器来代替人的工作垫定更扎实的基础。经过完善后的迷宫小车可以广泛用于抢险,救灾,有害气体中毒的抢救等。随着技术的发展智能迷宫机器人将替代小车工作,在危险场合迷宫机器人起着不可替代的作用,如在失火情况下迷宫机器人可以在最短的时间找到最优的路径将受困人员救出。迷宫小车的发展为智能机器人的开发提供了理论依据。1.2迷宫小车的发展现状当今社会,科学技术日新月异,时代前进的步伐越迈越宽,应用自动化设备,计算机处理,现代化通讯,数字化信息,现代化显示设备等高新技术而建立的现代化智能,监控等系统已经得到充分的发展与应用,智能小车也就应运而生。同时,在建设以人为本的和谐社会的过程中,迷宫小车能够完成抢救火灾,有害气体中毒等危险作业,以保证人身安全。2. 设计任务及要求2.1设计任务设计并制作一小车走迷宫系统,示意图如图1所示。 图2.1 迷宫示意图图中所示迷宫有两处支路,小车在运行到A处时会进行自行判断,此时光电传感器经判断后输出的高低电平传送到单片机,单片机控制电机驱动小车左转向A里面前进,但走到一定程度发现前方是墙体时小车会自行退出原路,继续向前行进,前进过程中会随时判断条件;当小车继续前进到B处时,此时光电传感器经判断后输出的高低电平传送到单片机,单片机控制电机驱动小车右转向B里面前进,但走到一定程度发现前方是墙体时小车会自行退出原路;继续前行,运行到转弯处时根据相应条件转弯,最后到达出口。小车可以从迷宫的任意口进,不会影响小车的判断,最后都可以从另一口出来。2.2 技术基本要求(1)小车可以从迷宫的任意一口进,顺利地从另外一口出来。(2)小车在迷宫运行的过程中能随时判断所处的位置是否有其他路口并试探前进,遇到不能前进的支路能按原路返回。(3)小车能顺利在拐弯处能顺利前进。(4)小车在转弯过程中转弯角度误差应小于10度。(5)小车在迷宫出口能停在指定位置。(6)显示行驶的总时间。(7)功耗低,性价比高。3. 系统方案论证 根据题目的要求,系统主要可分为单片机控制模块、光电监测模块、电机驱动模块。3.1单片机控制模块方案一:利用CPLD可编程逻辑器件作为主控制器。CPLD可实现各种复杂的逻辑功能,规模大、密度高、稳定性高、IO资源丰富、易于进行功能扩展,并可应用EDA软件仿真、调试,适合作为大规模控制系统的控制核心,但迷宫小车系统并没有复杂的逻辑运算,且数据处理速度的要求也不高,不能完全发挥CPLD的优势,同时,由于其集成度较高,硬件成本偏高,同时由于芯片引脚较多,实物硬件电路布线复杂,加重了电路设计和焊接的工作。方案二:采用Atmel公司的AT89S52单片机作为控制器。该单片机扩展功能强,软件编程灵活,自由度大,可通过软件编程实现各种算法和逻辑控制,并具有功耗低、体积小、技术成熟等优点,使其广泛应用于各个电子控制系统,完全能满足本系统的功能需求。基于以上分析,本设计选用方案二。3.2电机控制模块方案一:选用直流电机作为系统动力装置。直流电机体积相对较小,易于安装,有较好的应用性能。但本系统对小车行进的速度要进行控制,使用直流电机时,如果要控制速度,在程序设计的时候就必有使用PWM波来实现,而PWM实现的方式有两种,一种是采用定时器输出一个固定频率的方波信号,这样的产生的PWM波形稳定,精确,不足之处在于,它要占用一个MCU定时器,这使得程序在后面的设计中会遇到困难。另一种实现PWM波的方式是采用延时程序,产生一定频率方波信号,但由于C语言程序运行时,对时间的不确定,所以会造成延时误差,也就给系统的运行带来误差,汇编程序对时间的掌控很精确,但这又会造成C与汇编混编的情况,这对程序设计者在存储空间这一知识上要求较高。方案二:采用减速电机作为系统的动力设备。减速电机是在直流电机的基础上前置一个减速箱制成的,减速箱的作用是将直流电机的速度固化在一定的范围内,从而达到降速的目的,这样一来,在程序设计方面就没有直流电机那么复杂。综上所诉,本设计采用减速电机。3.3 光电监测模块方案一:用红外对管作为光电监测模块的主要器件。红外线发射管和红外线接受管称为红外对管。外形和发光二极管LED相似,发出红外光(近红外线约0.93m )。管压降约1.4V ,工作电流一般小于20mA。为了适应不同的工作电压,回路中常串有限流电阻。在工作过程中其各项参数均不得超过极限值,且必须将红外发光二极管与红外接收二极管配对使用,否者将影响灵敏度,甚至失控。由于其封装材料硬度低,耐高温性能差,因此焊接时温度不能过高,焊接时间也不能太长。方案二:用光电传感器作为光电监测模块的主要器件。光电开关是通过把光强度的变化转换成电信号的变化来实现控制的它是利用被检测物体对红外光束(区分点)的遮光或反射,由同步回路选通而检测物体的有无,其物体不限于金属,对所有能反射光线的物体均可检测。有三部分构成,它们分为:发送器、接收器和检测电路。使用过程中可随时调节反射的距离。经过以上分析,本系统采用光电传感器。3.4显示模块在小车运行过程中,系统需要对运行的时间做必要的显示。我们考虑以下两种方案。方案一:使用液晶显示屏显示小车的运行时间。液晶显示屏具有轻薄短小,低耗电量,无辐射危险,平面直角显示以及影象稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强等优点。但由于只需要显示数字,信息量比较少,且由于液晶是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器的资源占用较多,起成本也偏高。在使用时,不能有静电干扰,否则易烧坏液晶的显示芯片,不易维护。方案二:使用传统的数码管显示。数码管具有:低能耗,低损耗,低压,寿命长,防晒,防潮,防火,防高(底)温,对外界环境要求底,易于维护,同时起精度比较高,精确可靠,操作简单。数码管采用BCD编码显示数字,程序编译容易,资源占用较少。综上所述,采用方案二。本系统中,我们采用了数码管的静态显示,节省单片机的内部资源。4. 总体设计方案4.1系统模块系统模块主要是由光电检测模块、驱动模块、控制模块和显示模块四个组成。系统框图如下所示:光电开关AT89S522L298N减速电机显示模块 图4.14.2系统方案:单片机控制模块主要利用单片机接受到光电开关输出的高低电平后再输出信号去控制小车的运动;光电监测模块则利用光电传感器对墙体的感应,然后输出相应的高低电平并传送给单片机。这样就可以实时监测小车在迷宫中所处的位置,并进行相应的运动,最终经判断让小车停止在迷宫出口指定的位置上。显示模块则主要负责对小车行驶时间的计时,在小车停止时能显示小车行驶的总时间。5. 硬件电路设计5.1电动机驱动模块的电路设计与实现 L298N是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片L298N可以分别控制两个直流电机,而且还带有控制使能端。用该芯片作为电机驱动,操作方便,稳定性好,性能优良。 电机驱动电路如图5.1所示: 图5.1 电机驱动电路图5.2单片机控制模块的电路设计与实现单片机控制模块由单片机最小系统实现。单片机最小系统包括89C51单片机,电源电路,LED显示电路等。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。在单芯片上,AT89S52拥有灵巧的8 位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有8k字节Flash,256字节RAM,32 位I/O 口线,三个16位定时器/计数器,片内晶振及时钟电路。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最小系统原理图5.2所示:6. 系统的软件设计图5.2 单片机控制电路图开始直走是否有其他通路?左/右转一定时间直走是否是绝路?后退是否是否图6.1 程序流程框图6.1程序流程框图如图6.1所示:6.2光电检测程序 if(z2=0&z3=0)/前进 yundong(2); delay(100); /yundong(5); if(z2=0&z3=1)/左转 delay(1000); if(z2=0&z3=1) delay(500); yundong(3); delay(2050); yundong(2); delay(5500); if(z1=0&z2=0&z3=0) yundong(1); delay(5500); yundong(4); delay(2050); yundong(2); delay(6000); /*if(z1=1&z2=1&z3=0) delay(1500); yundong(4); delay(2050); delay(5000); */ if(z2=1&z3=0)/右转 delay(1000); if(z2=1&z3=0) delay(500); yundong(4); delay(2050); yundong(2); delay(5500); if(z1=0&z2=0&z3=0) yundong(1); delay(5500); yundong(3); delay(2050); yundong(2); delay(6000); /* if(z1=1&z2=0&z3=1) delay(1500); yundong(3); delay(2100); */ /*if(z1=0&z2=0&z3=0)/后退 delay(2000); yundong(1); /delay(2000); */if(z1=1&z2=1&z3=1)/停止 yundong(5); 6.3电机转动程序6.3.1电机前进程序Void qianjin()a1=1; a2=0; b1=1; b2=0; 6.3.2电机后退程序Void houtui()a1=0; a2=1; b1=0; b2=1; 6.3.3电机左转程序Void zuozhuan()a1=0; a2=1; b1=1; b2=0; 6.3.4电机右转程序Void youzhuan() a1=1; a2=0; b1=0; b2=1; 6.3.5电机停止程序Void tingzhi()a1=0; a2=0; b1=0; b2=0; 6.4显示程序定时器初始化void timerstart(void)TMOD=0x01; /定时器0模式1IE=0x82;TH0=0x3C; /赋初值TL0=0xB0; /50msmiao20=20; /1秒计数TR0=1; /启动定时器数码管显示 void display() P2=0xfe; P0=DATA_7segmiaol0; delay_1(500); P2=0xfd; P0=DATA_7segmiaoh0; delay_1(500); P2=0xfb; P0=DATA_7segfenl0; delay_1(500); P2=0xf7; P0=DATA_7segfenh0; delay_1(500);7. 系统测试分析7.1测试工具4位半数字万用表,自建迷宫,6V直流电源。7.2测试结果小车能在自搭的迷宫中运动,能从迷宫的任意一个口进入,另一个口出来,并在小车停止时显示小车总的行驶时间。在小车运动的过程中,能随时判断所处位置,寻找新的路口,并进行相应的运动。在多次调试时发现,小车往前后走比较正常,但是在转弯时,转弯角度不是那么精确,主要是由于只使用了一个万向轮,所以角度会有一定偏差。电路制作的工艺也有可能影响结果。总结本次设计主要采用的是AT89S52单片机,该单片机的稳定性比较好,编程简单,功能易实现。还可以采用其它系列的单片机,比如AVR,EMC,PIC等单片机。基本完成了题目的全部要求,能正常完成各项指定任务,并且工作稳定,制作工艺方面也精益求精,使其外观尽量紧凑美观,软件方面也力求简洁可靠。本系统以AT89S52单片机芯片为核心控制部分,利用光电检测技术,传感器检测技术实现了小车的行驶,电机的方向控制,自动寻找出路。在系统设计过程中,力求硬件线路简单,充分发挥软件编程方便灵活的特点,来满足系统设计要求。因为时间有限,该系统还有很多值得改进的地方。在本设计中,我要进行硬件和软件的开发与调试。在这次设计中值得一提的就是在实际的调试中,要求软件与硬件紧密结合,从而诊断出问题出在哪里。我认为硬件电路的设计与调试,要与电路原理,实际的电压值、电流值紧密的相关,理论上通的电路还不能说明什么,还要看它在实际的电路中能否正常工作而不被损坏。首先,在电路调试方面,在老师和同学的帮助和讨论下,我先把每一个外围电路的工作原理弄懂了,对它的工作电压电流核实,然后我在实验板上把实际的电路连接起来,加上实际的电源,一个一个的调试,发现它确实能够正常工作时在做下一步。在电路印制板设计方面:我设计的是用了两个电路板来实现,一个是最小系统板,是在前期的学习中弄好的,为了不浪费资源,所以这次就用于设计中;一块电机驱动板,利用三极管的导通截止来驱动电机的转动。其中最值得提的就是我们考虑了电机在启动时电流不足,会给传感器造成影响,因此我们采用了电流较大的电源供电,用三端稳压芯片完成。使电路非常稳定,在用PROTEL99制作印制板的时候,我考虑到了小车的实际情况,我做板就尽量小。使整个电路板作到了小巧玲珑,但是线路却有些细了,只有0.8mm,制作工艺也不行,容易出现老化的现象,因此这个地方还需要改进。在程序调试方面也遇到各种问题,单独调试每个模块程序时能正常工作,但把它们组合连在一起的时候有的模块就不正常工作。经过仔细的检查和耐心的调试才发现有的出现时序的问题,所以造成有的不能工作。在这方面还要多注意程序运行的时序是否有冲突。在调试过程中我们还发现,单独让定时器显示时间的时候就正常,但结合整个系统的程序一起时问题就出现了:小车启动时只有一个数码管点亮,其他的都处于熄灭状态。当时我就想,明明设计的程序是让小车在运动时用四个数码管显示小车的行驶时间,到底是什么原因呢?而且我还发现小车停止时四个数码管都有显示,显示的就是小车行驶的总时间。后来,经过思考,我终于找到是什么原因了,原来是因为在扫描数码管的时候是从右到左依次扫描四个数码管的,由于判断程序执行得太久了,所以数码管的显示就停留在最后扫描的那个数码管上,也就是最左边的那个数码管,以至于只能显示最后一个数码管。这次定时器使用用的时单片机的定时器0(T0),T0由两个8位特殊功能寄存器TH0和TL0构成,每个定时器都可由软件设置为定时工作方式或计数工作方式以及其他灵活多样的可控功能方式。这些功能都由特殊功能寄存器TMOD和TCON所控制。设置为计数工作方式时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数。当输入脉冲信号产生由1至0的下降沿时,定时器的值加1。不管是定时还是计数工作方式,定时器T0或T1在对内部时钟或对外部事件计数时,不占用CPU时间,除非定时/计数器溢出,才可能中断CPU的当前操作。我这次使用的T0的工作模式1,即一个16位的定时/计数器,在该模式下,寄存器TH0和TL0是以全部16位参与操作。虽然我们的小车实现的功能还比较多,但是我们的主要部分采用了AT89S52芯片,还可以增加很多的功能,这也是我们设计中需要改进的。然而本设计仍然存在不少不完善和有待改进的地方,因此在今后的各种设计中,都会继续考虑这些问题并力图解决。参考文献1徐锡存,曹国华编著.单片机原理及接口技术M.西安:西安电子科技大学出版社,2007. 2钟富昭编著.8051单片机典型模块设计与应用M.北京:人民邮电出版社,2007.3黄智伟编著.全国大学生电子设计竞赛电路设计M.北京:北京航空航天大学出版社,2006.4楼然苗,李光飞编著.单片机课程设计指导M. 北京:北京航空航天大学出版社,2007.5 苏家健等编.单片机原理及应用技术M. 北京:高等教育出版社,2004.11 6 徐惠民,安德宁.单片微型计算机原理接口与应用第1版M.北京:北京邮电大学出版,1996附录:源程序清单#include#define uint unsigned int#define uchar unsigned charvoid timerstart();void qianjin();void delay_1(uint i);void display();void panduan();uint miaol,fenl,miao20,miaoh,fenh;uint miaol0,fenl0,miaoh0,fenh0;sbit a1=P34;sbit a2=P35;sbit b1=P36;sbit b2=P37;sbit z1=P10;sbit z2=P11;sbit z3=P12;uchar code DATA_7seg=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void main() timerstart(); P2=0xc0; P0=0xc0; miaoh=0; fenl=0; miaol=0; fenh=0; while(1) miaol0=miaol; miaoh0=miaoh; fenl0=fenl; fenh0=fenh; display(); panduan(); void display() P2=0xfe; P0=DATA_7segmiaol0; delay_1(500); P2=0xfd; P0=DATA_7segmiaoh0; delay_1(500); P2=0xfb; P0=DATA_7segfenl0; delay_1(500); P2=0xf7; P0=DATA_7segfenh0; delay_1(500);void delay_1(uint i)while(i)-i;void timerstart(void) TMOD=0x01; /定时器0模式1 IE=0x82; TH0=0x3C; /赋初值 TL0=0xB0; /50ms miao20=20; /1秒计数 TR0=1; /启动定时器void timer0() interrupt 1 using 1 TR0=0; /关闭定时器 TH0=0x3C; /赋初值 TL0=0xB0; TR0=1; if(miao20-)=0) miao20=20;if(miaol+)8) miaol=0; if(miaoh+)4) miaoh=0; if(fenl+)8) fenl=0; if(fenh+)4) fenh=0; void delay(uint xsm)uint i,j; for(i=xsm;i0;i-) for(j=110;j0;j-);void yundong(uchar m)if(m=1)/后退 a1=0; a2=1; b1=0; b2=1; if(m=2)/前进 a1=1; a2=0; b1=1; b2=0; if(m=3)/左转 a1=0; a2=1; b1=1; b2=0; if(m=4)/右转 a1=1; a2=0; b1=0; b2=1; if(m=5)/停止 a1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论