单片机小车避障.docx

上传人:牧羊曲112 文档编号:5076866 上传时间:2023-06-02 格式:DOCX 页数:22 大小:621.58KB
返回 下载 相关 举报
单片机小车避障.docx_第1页
第1页 / 共22页
单片机小车避障.docx_第2页
第2页 / 共22页
单片机小车避障.docx_第3页
第3页 / 共22页
单片机小车避障.docx_第4页
第4页 / 共22页
单片机小车避障.docx_第5页
第5页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《单片机小车避障.docx》由会员分享,可在线阅读,更多相关《单片机小车避障.docx(22页珍藏版)》请在三一办公上搜索。

1、微机原理与接口技术专用周报告(小车避障)系部:电气信息工程系班级:通信技术111指导老师:施芸雷刚杨晓艳姓名:齐 棋 201112020148姓名:付晓会 201112020121摘要本次设计的是小车避障,使小车能够较顺利的利用传感器检测障碍物穿越迷 宫。小车利用一块单片机(P89V51RD2X)作为小车的检测及控制核心和PWM技术 动态控制电动机转速。小车主要由传感器检测、硬件执行和CPU三部分组成。本 次设计我们选用的是红外线传感器来指引小车前进,用直流电机控制小车的运 行,采用PWM实现精确调速。小车主要实现自动避障功能,感知到障碍物并自动 躲避,选择正确的行进路线。关键字:小车避障迷宫

2、传感器第1章课题介绍11.1课题要求11.1.1 小车避障11.2小车线路分析11.2.1 小车线路图11.2.2小车运行线路分析21.3红外线检测值2第2章硬件电路32.1 单片机 P89V51RD2X32.1.1硬件电路图32.1.2 硬件电路功能32.2传感器42.2.1红外模块电路42.2.2传感器功能、数目及状态设定42.3小车电源52.3.1电源电路图52.3.2电源功能52.4小车驱动62.4.1驱动电路图62.4.2驱动电路分析6第3章软件电路73.1小车流程图73.1.1主程序流程图73.1.2子程序流程图83.2 PWM初始化及PWM调速原理10第4章程序清单11第5章总结

3、14附录16第1章课题介绍1.1课题要求这次单片机专用周主要是锻炼和提高我们的单片机应用能力和实际课题的 设计能力,想要很好的完成此次实训的课题,就要求我们能够熟练的掌握单片机 硬件和软件电路的基本设计方法和简单应用程序的编写和调试。1.1.1小车避障小车按照编定的程序能较好地检测到障碍物并完成方向转变沿正确路线运 行,且在运行过程中无沿原路线返回的现象。1.2小车线路分析1.2.1小车线路图1.2.2小车运行线路分析1. 迷宫中出现有“ T”字路口,所在编程时我们设定小车只有前方检测到障 碍时,小车左转;2. 小车行进道路的宽度会影响传感器的选择,所以要调整好小车上传感器的 接收距离;3.

4、小车过弯时离挡板两边的宽度会影响小车是否能正常前进,此处我们把中 间传感器接收距离灵敏度调低点,使小车前进上点再进行转变,这样小车便不会 轻易碰到挡板了。1.3红外线检测值左边 (02H)前面(01H)右边(00H)20H有无障 碍物小车运动状态小车显示 数据00000H无刖进000101H只有右侧有左转301002H只有前 面有左转(原 地打转, 快速)201103H前面和右边有左转510004H只有左 边有刖进110105H左边和右边都有刖进611006H左边和 刖边有右转411107H左、刖、右都有右转(原 地打转, 快速)7第2章硬件电路2.1 单片机 P89V51RD2X2.1.1硬

5、件电路图GND4-MRV uWDOVCCRESETGNDWDIPFIPFOIMP813L3484JCC2 104R12344-6L-910111213GNDGND1CC4 30GND +R21 目46474849 帘R22R2312000MH;30GnduNCVCCP1.0/T2P0.7/A7P1.1/T2EXP0.6/A6P1.2/ECIP0.5/A5P1.3/CEX0P0.4/A4P1.4/CEX1P0.3/A3P1.5/CEX2P0.2/A2P1.6/CEX3P0.1/A1P1.7/CEX4P0.0/A0RSTEAP3.0/RXDNCNCALEP3.1/TXDPESNP3.2/INT0P

6、2.7/A15P3.3/INT1P2.6/A14P3.4/T0P2.5/A13P3.5/T1P2.4/A12P3.6/WRP2.3/A11P3.7/RDP2.2/A10XTAL2P2.1/A9XTAL1P2.0/A8GNDNCP89V51RD2VCC 4443 42- 41 40 39 38g36 芬 344342 31 30仙_R14R13 VCCd c b a4 3 2 1 l-ll|r17=_R184LEDQ18*P23_J225-2CQ/Q17Q16Titl图 21SizeNumberRevision2.1.2硬件电路功能BDate:13-Dec-2012Sheet ofFile:F:

7、FXHFXH.ddbDrawn By:456P89V51RD2X是Philips公司生产的一款80C51微控制器内部集成64 KB Flash 程序存储器和1 KB RAM数据存储器,具有自调试(SoftICE)、在系统编程(ISP) 和在应用编程(IAP)功能,这些功能都是在RS-232标准串口下实现。采用 P89V51RD2单片机,可以通过UART标准界面在Keil Vision编程环境下用 KeilMonitor-51 Driver直接连接系统硬件来调试程序。完成调试后,在 FlashMagic工具软件下进行编程。P89V51RD2的典型特性是它的X2方式选项。 利用该特性,设计者可使应

8、用程序以传统的80C51时钟频率(每个机器周期包含 12个时钟)或X2方式(每个机器周期包含6个时钟)的时钟频率运行,选择 X2方式可在相同时钟频率下获得2倍的吞吐量。从该特性获益的另一种方法是 将时钟频率减半来保持特性不变,这样可以极大地降低EMI。Flash程序存储器 支持并行和串行在系统编程(ISP),ISP允许在软件控制下对成品中的器件进行 重复编程。应用固件的产生/更新能力实现了 ISP的大范围应用。5V的工作电 压,操作频率为040MHz。其最大特点是内部嵌入了仿真模块,可以在不用仿真器的情况下进行程序调 试。小车是执行机构,在实验中可以控制小车完成各种动作,使用者能够直观的 看到

9、所编程程序所产生的结果,加深对程序的理解。2.2传感器2.2.1红外模块电路图222.2.2传感器功能、数目及状态设定传感器的作用是通过自己的发送红外线,再通过自己是否接收到自己发送的C红外线,来判断自己所检测的方向上是否有障碍物。单片机小车上安装传感器的个数主要由实际的迷宫的难易程度,和地面的摩 擦度,以及外界环境的变化。对于我们所研究的小车穿越迷宫及考虑到以前因素,我们选择了三个传感 器,分别安装在小车的左侧,正前方和右侧位置,并通过在数码管上显示的数据 来观察小车上传感器检测的状态。与此同时,分别把左侧,正前方和右侧的状态分别放于寄存器(20H)中, 左侧02H,正前方01H,右侧00H

10、。另外,当小车在迷宫行进过程左侧检测到有障碍物时,则02H置1,表示左 侧有障碍物;当小车在迷宫行进过程中检测到左侧没有障碍物时,则02H置0。 当小车在迷宫行进过程正前方检测到有障碍物时,则01H置1,表示正前方有障 碍物;当小车在迷宫行进过程中检测到正前方没有障碍物时,则01H置0。当小 车在迷宫行进过程右侧检测到有障碍物时,则00H置1,表示右侧有障碍物;当 小车在迷宫行进过程中检测到右侧没有障碍物时,则00H置0。2.3小车电源2.3.1电源电路图电源电路C11 -1-C7C8 -C9CAPCAP0.1 UF图232.3.2电源功能B实验电路主要是由LT1117-5构成的直流稳压电路组

11、成,此电路能连接电源 和电池。小车用蓄电池供电,蓄电池电压为6.58V,该电压经三端集成稳压芯 片LT1117-5V稳压后得到5V。LT1117-5V的一种类似7805的集成稳压电路,与 7805比较具有稳压精度更高、低压差的特点,在实际的单片机系统中广泛应用。LT1117-5构成的直流稳压电路在本次试验中有效的提高电压,该电源为单 片机主板和电机提供电压,促使小车中的各个模块都能正常工作。当左侧电机需要前进时,L-保持为“1”,电机的转速由L+的占空比决定;当左侧电机需要后退时,L+保持为“1”,电机的转速由L-的占空比决定;当右侧电机需要前进时,R-保持为“1”,电机的转速由R+的占空比决

12、定;当右侧电机需要后退时,R+保持为“广,电机的转速由R-的占空比决定。SizeNu mberRev isio nDate:File:14-Dec-2012F:FXHFXH.d dbSheet o f Drawn By:2.4.1驱动电路图R9150R10150RES274LS0 474LS0 4图242.4.2驱动电路分析(1)小车转向条件小车左转的条件:左侧电机反转,同时右侧电机正转。小车右转的条件:右侧电机反转,同时左侧电机正转。小车加速的条件:减少PWM脉冲的占空比。小车减速的条件:增加PWM脉冲的占空比。1(2)单片机I/O 口分配:23右侧电机后退PWM控制信号:P1.4(CEX1

13、)右侧电机前进PWM控制信号:P1.5(CEX2)左侧电机后退PWM控制信号:P1.6(CEX3)左侧电机前进PWM控制信号:P1.7(CEX4)第3章软件电路3.1小车流程图3.1.1主程序流程图图31主程序:ORG 0000HMAIN: JB P2.4,MAINMOV R2,#00 ;寄存器清零MOV CMOD,#04H;PWM 初始化MOV TMOD,#02HMOV TL0,#217MOV TH0,#217SETB TR0CLR P1.0;开位选L: MOV 20H,#00H;将 20H 单元清零LCALL RIGHT1 ;调用判别子程序LCALL MIDDLELCALL LEFT1LC

14、ALL PB ;调用判断结果子程序LJMP图32 一侧检测流程图图33判决流程图图3-4方位检测流程图3.2 PWM初始化及PWM调速原理CMOD设置选择PCA计数器的脉冲源(CPS1、CPS0 位)TMOD设置T0定时器方式设置(通常选方式2)TH0、TL0 设置T0定时器时间溢出设置(根据PWM周期 计算)启动T0TR1 置 1CCAPnH设置设置占空比(根据占空比计算)CCAPMn设置PCA模块PWM功能使能(ECON、PWM位)CCON设置启动PCA计数器(CR位置1)第4章程序清单CCONDATA0D8HCMODDATA0D9HCCAPM0DATA0DAHCCAPM1DATA0DBH

15、CCAPM2DATA0DCHCCAPM3DATA0DDHCCAPM4DATA0DEHCL DATA 0E9HCCAP0L DATA 0EAHCCAP1L DATA 0EBHCCAP2L DATA 0ECHCCAP3L DATA 0EDHCCAP4L DATA 0EEHCH DATA 0F9HCCAP0H DATA 0FAHCCAP1H DATA 0FBHCCAP2H DATA 0FCHCCAP3H DATA 0FDHCCAP4H DATA 0FEHORG 0000HMAIN: JB P2.4,MAINMOV R2,#00 ;寄存器清零MOV CMOD,#04H;PWM 初始化MOV TMOD,

16、#02HMOV TL0,#217MOV TH0,#217SETB TR0CLRP1.0 ;开位选L: MOV 20H,#00H;将 20H 单元清零LCALL RIGHT1 ;调用判别子程序LCALL MIDDLELCALL LEFT1LCALL PB ;调用判断结果子程序LJMP LRIGHT1: CLRP3.4 ;关闭发射模块CLRP3.5CLRP3.6MOVR3,#10 ;设定发射10个脉冲MOVR4,#00 ;接收寄存器清零L0: SETB P3.4启动发射模块LCALL DELJB P2.2,L1 ;判断是否有信号,当为0电平时有反射INC R4 ;将脉冲数加1L1: CLRP3.4

17、 ;停止发射LCALL DELDJNZ R3,L0;判断10个脉冲发射是否结束CJNER4,#06,L2;判断接收脉冲数是否大于6L2: JC L3SETB00H ;右边有障碍物,00H置1RETL3: CLR00H ;右边无障碍物,00H置0RETMIDDLE:CLRP3.4 ;关闭发射模块CLRP3.5CLRP3.6MOVR5,#10 ;设定发射10个脉冲MOVR6,#00 ;接收寄存器清零L00: SETB P3.5 ;启动发射模块LCALL DELJB P2.3,L01;判断是否有信号,当为0 电平时有反射INC R6L01:CLRP3.5 ;停止发射LCALL DELDJNZ R5,

18、L00 ;判断是否10个脉冲 发射结束CJNE R6,#06,L02;判断接收脉冲数 是否大于6 L02: JC L03SETB 01H ;中间有障碍物,01H置1RETL03:CLR01H ;中间无障碍物,01H置0 RETLEFT1: CLRP3.4 ;关闭发射模块CLRP3.5CLRP3.6MOVMOVR1,#10 ;设定发射10个脉冲R2,#00 ;接收寄存器清零LCALL RIGHTMOVP0,#9FH;显示“1”L000: SETB P3.6启动发射模块RETLCALLDELS4: CJNEA,#05H,S5;判断结果是否JB P3.3,L001;判断是否有信号,当为0为5电平时有

19、反射LCALLGOINC R2MOVP0,#41H;显示 “6”L001: CLRP3.6RETLCALLDELS5: CJNEA,#06H,S6;判断结果是否DJNZR1,L000 ;判断是否10个脉冲为6发射结束LCALLRIGHTCJNER2,#06,L002;判断接收脉冲数MOVP0,#99H;显示“4”是否大于6RETL002: JCL003S6: LCALLRIGHT2SETB02H ;左边有障碍物,02H置1MOVP0,#1FH;显示 “7”RETRETL003:CLR02H ;左边无障碍物,02H置0RETGO: LCALLSTOPMOVCCAPM2,#00HPB: MOVA,

20、20H;把检测结果送MOVCCAPM4,#00H进累加器ALCALLDEL600ANLA,#07H;去除高5位MOVCCAPM1,#42HCJNEA,#00H,S0;判断结果是否MOVCCAP1H,#47为0MOVCCAPM3,#42HLCALLGOMOVCCAP3H,#48MOVP0,#03H;显示 “0”MOVCCON,#40HRETRETS0: CJNEA,#01H,S1;判断结果是否RIGHT: LCALL STOP为1MOVCCAPM1,#00HLCALLLT2MOVCCAPM4,#00HMOVP0,#0DH;显示 “3”MOVCCAPM2,#42HRETLCALLDEL600S1:

21、 CJNEA,#02H,S2;判断结果是否MOVCCAP2H,#43为2MOVCCAPM3,#42HLCALLLT2MOVCCAP3H,#34MOVP0,#25H;显示“2”MOVCCON,#40HRETRETS2: CJNEA,#03H,S3;判断结果是否LEFT: LCALL STOP为3MOVCCAPM2,#00HLCALLLEFTMOVCCAPM3,#00HMOVP0,#49H;显示 “5”LCALLDEL600RETMOVCCAPM1,#42HS3: CJNEA,#04H,S4;判断结果是否MOVCCAPM4,#42H为4MOVCCAP1H,#45MOV CCAP4H,#36MOV

22、CCON,#40HRETDJNZDJNZRET56H,DEL455H,DEL3RIGHT2: LCALL STOPENDMOV CCAPM1,#00HMOV CCAPM4,#00HLCALL DEL600MOV CCAPM2,#42HMOV CCAPM3,#42HMOV CCAP2H,#43MOV CCAP3H,#34MOV CCON,#40HRETLT2:MOV CCAPM2,#00HMOV CCAPM3,#00HLCALL DEL600MOV CCAPM1,#42HMOV CCAPM4,#42HMOV CCAP1H,#49MOV CCAP4H,#38MOV CCON,#40HRETSTOP

23、: MOV CCON,#00HSETB P1.4SETB P1.5SETB P1.6SETB P1.7DEL600: MOV40H,#150;延时 600USDEL0: NOPNOPDJNZ 40H,DEL0RETDEL: MOV 31H,#10DEL1: MOV 32H,#30DEL2: DJNZ 32H,DEL2DJNZ 31H,DEL1RETDELAY: MOV55H,#3DEL3:MOV56H,#200DEL4:MOV57H,#123DEL5:DJNZ57H,DEL5第5章总结姓名:齐棋学号:201112020148班级:通信技术111为期两周的单片机实训,我从中学到了许多。本次实训共

24、有五个课题:小车 巡线、小车避障、无线数据传输、压力检测和温控。思考过后,我选择了小车避 障这个课题,因为比如像温控在程序设计时会牵涉到I2C等一些以前没有学到过 的知识,所以自己觉得对能否将它做好没有太大的把握。而小车避障和循线这两 个课题则不同,要实现这两个课题的程序基本上所用到的知识都是在我们平时学 习中所学过的。原以为这两个课题的难度相差都不是很大,但是在实际操作中才 发现其实它们的难度是很大的,程序繁复,十分依赖客观条件。要想实现小车避 障的功能,除了要有正确的程序之外,还得根据实际的情况调制各种硬件。开始的几天,我们进行了小车硬件电路图的绘制、组装小车。之后搭建并分 析迷宫路线。在

25、分析迷宫路线时要特别注意其中的T字路口,在老师的帮助下我 们也明白如何处理T字路口这一问题。采用计数器的方法,虽然可以使小车在短 时间内通过迷宫,但受传感器和小车驱动等条件的影响容易出现很多问题。最终 经过无数次试验后,我们通过编写程序,让小车在只有正前方传感器接受到信号 时统一左转来让小车顺利通过。在设计过程中,我们首先了解了小车所需要的硬件部分,例如单片机 P89V51RD2、电源电路、驱动电路、传感器电路等电路组成。还了解了影响小车 穿越迷宫的很多因素。比如说,传感器的灵敏度、迷宫中两挡板之间的距离远近 和小车在运动过程中的速度快慢、电池的电量等。这些因素都会影响到小车最终 是否能够顺利

26、地走出迷宫。这次实训最耗我们时间的便是对小车在试跑过程中的调试。在调试阶段,小 车在迷宫中每跑一次我们都需要进行程序的改动以及小车传感器的调试,其不断 重复的过程是十分的繁复的。实训的最后,我们组的小车基本能够顺利的通过迷宫。但我们同样发现、迷 宫的跑道对小车行进的影响同样很大。这次实训总的来说还是成功的,因为在实 际设计中我们发现问题,解决问题,就是我们此次实训最大的收获。通过本次的 实训,我也总结了一些我在单片机学习中的不足,在一些程序的设计与编写的过 程中以前学过的只是很多都遗忘了,因此在实训时还需要通过翻看以前的程序才 能写出我们的实验程序,这让我更加明白要经常复习以前学过的知识。姓名

27、:付晓会学号:201112020121班级:通信技术11-1为期两周的单片机实训,我学到了很多在书本里不能学到的知识,那就是经 验,不管什么事,只有动手去做了才能体会到知识的真谛。这次实训我选择的课 题是小车避障,虽然这课题的程序内容我们学过,但是做起来也是很困难的,很 多地方都需要不停的试车、调试,所以我很想尝试,通过自己的努力能够完成这 个设计。在实训前的一周,我们找了很多关于小车避障的资料说明和视频,激发了我 对这个实训的兴趣。首先,我们要从迷宫的线路开始分析,小车在怎样情况下该如何选择前进路 线。迷宫中有出现“ T”字路口,在这种情况下我们就要决定小车的转向。我们 使用了三个红外线传感

28、器来检查障碍物,分别在小车的前方、左侧和右侧。其次,我们要根据小车的实现设计电路图,分析电路的原理及功能。主要的 电路图有P89V51RD2芯片硬件电路、传感器电路、驱动电路和电源电路。然后,我们要根据小车的行进线路进行程序设计。根据迷宫的样式把流程图 画出,在这过程中我们遇到了很多的问题,比如各个路口中问题的处理以及在直 线行进过程中小车状态的处理等等。随后,根据我们画的流程图设计程序。最后,我们开始调试小车。我觉得最难的部分就是小车调试。比如传感器的 灵敏度,小车直线行进速度以及小车转弯的速度都会对小车跑迷宫有很大的影 响。就传感器的灵敏度来说,如果左右两侧的灵敏度不同则会导致小车偏向某一

29、 边,不能直线行驶。某些路口只有右侧有障碍物的情况下需要转弯,把右侧的灵 敏度调高后,在其他路口转弯就会导致小车返回的情况。如果前方的传感器太灵 敏了会导致小车转弯过早撞上挡板。针对质疑情况我们通过调试最终把右侧传感 器的灵敏度调低,将左侧和前方的传感器灵敏度调得较高一些。以达到小车顺利 行进。在这两周的专用周中我们这组最终的结果还是比较理想,通过我们的不断努 力找出问题、解决问题,最终小车能很顺利的穿越迷宫。通过这个专用周,让我 们对所学的知识更进一步理解,找到了学习的乐趣。总的来说,我们的设计很成 功,一份耕耘一分收获。看着我们自己设计的小车在迷宫顺利的穿越,心里真的 很开心在这里也要感谢

30、老师在实训对我们的指导。让我们能顺利的完成这次实 训。附录1附1红外发射电路附3一电机驱动电路电源电路+6VU6POWER GNDLT1147-51C10-10)0up16Vo utGND附4一电源电路MRV uWDOVCCRESETGNDWDIPFIPFOUNCVCCP1.0/T2P0.7/A7P1.1/T2EXP0.6/A6P1.2/ECIP0.5/A5P1.3/CEX0P0.4/A4P1.4/CEX1P0.3/A3P1.5/CEX2P0.2/A2P1.6/CEX3P0.1/A1P1.7/CEX4P0.0/A0RSTEAP3.0/RXDNCNCALEP3.1/TXDPESNP3.2/INT0P2.7/A15P3.3/INT1P2.6/A14P3.4/T0P2.5/A13P3.5/T1P2.4/A12P3.6/WRP2.3/A11P3.7/RDP2.2/A10XTmberP2.1/A9XTAL1P2.0/A8&ND”sNF:FXP89V51RD2Title附5硬件电路SizeDate:File:D54 3 2 1NumberRevision13-Dec-2012F:FXHFXH.ddbSheet ofDrawn By:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号