基于at89s51单片机的智能超声波避障小车_第1页
基于at89s51单片机的智能超声波避障小车_第2页
基于at89s51单片机的智能超声波避障小车_第3页
基于at89s51单片机的智能超声波避障小车_第4页
基于at89s51单片机的智能超声波避障小车_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

基于 AT89S51 单片机的智 能超声波避障小车 姓名: 钟洋 班级: 08 电子二班 学号: 200810330219 指导老师: 张儒 目录目录 摘要.3 一、总体方案概述.3 二、总体电路原理图3 三、各模块功能介绍.4 (一) 、超声波测距模块4 (二) 、数码管显示模块4 (三) 、步进电机控制模块6 (四) 、语音提示模块7 (五) 、速度自控模块8 (六) 、信号提示模块8 (七) 、单片机控制模块.8 四、系统软件设计9 五、元件清单.10 六、应用前景.10 六、参考文献.11 3 摘要:摘要:现今发达的交通在给人们带来便捷的同时也带来了许多的交通事故。发生交通事故的 因素有很多。当然,如果我们的汽车能够更加智能,就是说事先能预测并显示前面障碍物离 车的距离,当障碍物距离很近时汽车会自动采取一些措施避开障碍物,这样就能够在很大程 度上避免这些事故的发生。在本论文中,我们将会看到能够实现这一功能的智能小车。 关键字:关键字:超声波、测量、避障、单片机、语音 一、总体方案概述一、总体方案概述 本小车使用一台 AT89S51 单片机作为主控芯片,它通过超声波测距来获取小车距离障碍 物的距离,并且用数码管实时的显示出来,在小车与障碍物的距离小于安全距离(用软件设 定)时,小车会发出“在距您车前方 x(数码显示的实时距离)米的地方有一障碍物,请您 注意避让”的语音提示,并且拐弯,以避开障碍物,同时会点亮相应侧边的发光二极管作为 提示信号。在避开障碍物后,小车会沿直线前进。 本系统设计的简易智能小车分为几个模块:单片机控制系统、超声波路面检测系统、前 进、转弯控制电机以及方向指示灯系统。它们之间的相互关系如下图 1 所示。 二、总体电路原理图二、总体电路原理图 IN1 1 IN2 2 IN3 3 IN4 4 IN5 5 IN6 6 IN7 7 IN8 8 GND 9 CM 10 OUT8 11 OUT7 12 OUT6 13 OUT5 14 OUT4 15 OUT3 16 OUT2 17 OUT1 18 U1 ULN2803 1 2 3 4 5 P1 BJDJ1 VCC 1 TRIG 2 ECHO 3 OUT 4 GND 5 U2 ultrasonic P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 RST/VPD 9 P30/RXD 10 P31/TXD 11 P32/INT0 12 P33/INT1 13 P34/T0 14 P35/T1 15 P36/WR 16 P37/RD 17 XTAL2 18 XTAL0 19 VSS 20 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PESN 29 ALE/PROG 30 EA/VPP 31 P07 32 P06 33 P05 34 P04 35 P03 36 P02 37 P01 38 P00 39 VCC 40 A1 AT89S51 20pf C3 20pfC2 10uf C1 R9 S1 X1 GND GND VCC GND VCC GND 1 2 3 4 5 P2 BJDJ2 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 VCC GND TRIG TRIG ECHO ECHO SS SCLK MOSI MISO e 1 d 2 dp 3 c 4 g 5 4 6 b 7 3 8 2 9 f 10 a 11 1 12 l8 LED Q1Q2Q3Q4 VCC LED1 LED2 LED3 LED4 LED1 LED2 LED3 LED4 a a b b c c d d e e f f g g dp dp FIRST FIRST SECOND SECONDTHIRD THIRD FORTH FORTH 470 R1 470 R2 470 R3 470 R4 470 R5 470 R6 470 R7 470 R8 10k R10 10k R11 10k R12 10k R13 RST S2 S3 L2L3L4L5 VCC LCD1 LCD2 LCD3 LCD1 LCD2 LCD3 L1 POWER GND Vccd 1 LED 2 RESET 3 MISO 4 MOSI 5 SCLK 6 SS 7 Vssa 8 Analn 9 MIC+ 10 MIC- 11 Vssp2 12 SP- 13 Vccp 14 SP+ 15 Vssp1 16 AUD/AUX 17 AGC 18 VOL 19 Rosc 20 Vcca 21FT 22 PLAY 23 REC 24 ERASE 25 FWD 26 INT/RDY 27 Vssd 28 I1 ISD1760 REC1 PLAY1 ERASE1 S5 VOL1 S6 S4 GND 4.7K R20 R19 R 0.1uf C14 0.1uf C15 4.7K R21 4.7K R22 VCC 80K R23 4.7ufC7 4.7uf C16 1 2 P3 MIC L7 0.1uf C4 GND VCC 0.1uf C6 4.7uf C5 GND 0.1uf C9 4.7uf C8 0.1uf C12 4.7uf C10 0.1uf C13 4.7uf C11 1 2 P4 Sperker GND SS SCLK MOSI MISO GNDGND GND VCC VCC VCC GND GND GND 470 R14 470 R15 470 R16 470 R17 LCD2 L6 470 R18 LCD1 P10 P11 P12 P13 P14 P15 P16 P17 P10 P11 P12 P13 P14 P15 P16 P17 图 1:智能小车简要原理框架图 三、各模块功能介绍三、各模块功能介绍 (一)(一) 、超声波测距模块、超声波测距模块 首先利用单片机输出一个 40kHz 的触发信号,把触发信号通过 TRIG 管脚输入到超声波测 距模块,再由超声波测距模块的发射器向某一方向发射超声波,在发射时刻的同时单片机通 过软件开始计时,超声波在空气中传播,途中碰到障碍物返回,超声波测距模块的接收器收 到反射波后通过产生一个回应信号并通过 ECHO 脚反馈给单片机,此时单片机就立即停止计 时。时序图如图 1 所示。由于超声波在空气中的传播速度为 340m/s,根据计时器记录的时间 t,就可以计算出发射点距障碍物的距离,即:S=VT/2,通过单片机来算出距离。 (二)(二) 、数码管显示模块、数码管显示模块 1、数码管显示原理 数码管有一位、双位、四位等几种。而不管将几位数码管连在一起,数码管和显示原理 都是一样的,都是靠点亮内部的发光二极管来发光。数码管的内部电路结构如下页图所示: 从(a)可看出,一位数码管的引脚数是 10 个,显示一个 8 字需要 7 个小段,另外还有一个 小数点,所以其内部一共有 8 个小的发光二极管,最后还有一个公共端,生产商为了封装统 一,单位数码管都封装 10 个引脚。而它们的公共端又分为共阳极和共阴极。上页图的(b) 和(c)分别为共阳极和共阴极数码管的原理图。 本小车的数码管采用的是 4 位共阳极数码管。所谓“共阳”就是指其内部的 8 个发光二 极管的阳极全部接在一起,而它们的阴极是独立的,通常在设计电路时一般把阳极接 VCC, 图 1:超声波模块时序图 5 当我们给数码管的任一个阴极加低电平时,对应的那个发光二极管就点亮了。 当使用多位一体数码管时,它们内部的公共端是独立的,而负责显示什么数字的段线全 部都是连在一起的,独立的公共端可以控制多位数码管中哪一位点亮。通常我们把公共端叫 做“位选线” ,连在一起的段线叫做“段选线” 。 2、显示部分 C 源程序的编写: 由于在本电子钟中 4 位数码管的段选线是直接接在单片机的 P0 口的,所以我们首先应该 计算出显示各个数字所对应的 P0 口输出的二进制编码。例如如果要显示一个“0” ,对照上面 的(a)图,我们需要点亮数码管中的 a、b、c、d、e、f,而 g 和 dp 不点亮,故 a、b、c、d、e、f、g、dp 对应的二进制编码就为:00000011。再对照数码管段选线与单片机 连接的顺序就可得要赋给单片机 P0 口的值应为 10100000,转换为十六进制就是 a0。同理可 以得到其它数字对应的十六进制编码: uchar code table10=0xa0,0xbe,0x62,0x2a,0x3c,0x29,0x21,0xba,0x20,0x28; uchar code table_dot10=0x80,0x9e,0x42,0x0a,0x1c,0x09,0x01,0x9a,0x00,0x08;/带小数 点的数字段码表 a b c d e f g dp a b c d e f g dp GND +5(c)位位位(b)位位位 A f g e d A c dp b a a b c d e f g dp (a)位位位 图 2:数码管内部原理图 3、数码管实时显示距离 用单片机控制四位共阳 7 段数码管来动态显示出测量距离。在总体电路图中是通过单片 机的 P1 I/O 口来控制数码管的段选,通过 P3.0 到 P3.3 四个 I/O 口来控制四位数码管的位显示, 具体的显示是通过单片机的软件来控制数码管的数据显示,把单片机计算出来的数据距离实 时的显示出来。 (三)(三) 、步进电机控制模块、步进电机控制模块 此模块是用来作为小车前进的动力和控制小车的避障。 步进电机是通过脉冲来驱动的,其步距角和转速只与输入的脉冲频率有关,频率越快, 其转速越快,因此,只需要控制驱动步进电机的脉冲频率来控制步进电机的工作,而步进电 机的驱动脉冲可以通过单片机来输出。但由于步进电机工作时需要较大的工作电流,因此需 e 1 d 2 dp 3 c 4 g 5 4 6 b 7 3 8 2 9 f 10 a 11 1 12 l8 LED Q1Q2Q3Q4 VCC LED1 LED2 LED3 LED4 LED1 LED2 LED3 LED4 a b c d e f g dp FIRSTSECONDTHIRDFORTH 图 3:指示灯与数码管显示电路 IN1 1 IN2 2 IN3 3 IN4 4 IN5 5 IN6 6 IN7 7 IN8 8 GND 9 CM 10 OUT8 11 OUT7 12 OUT6 13 OUT5 14 OUT4 15 OUT3 16 OUT2 17 OUT1 18 U1 ULN2803 1 2 3 4 5 P1 BJDJ1 VCC 1 TRIG 2 ECHO 3 OUT 4 GND 5 U2 ultrasonic GND 1 2 3 4 5 P2 BJDJ2 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 VCC GND TRIG ECHO P10 P11 P12 P13 P14 P15 P16 P17 图 4:步进电机驱动模块原理图 7 要用步进电机驱动芯片来驱动,如图 4 所示,我们用 ULN2803 芯片来驱动步进电机,并且用 单片机的 P0 I/O 口来给 ULN2803 芯片输入不同频率的脉冲,再通过 ULN2803 来驱动步进电机。 本小车使用的是两个四相五线的步进电机来驱动。我们知道,四相五线步进电机共有五 根线,其中红色的接电源的正极,剩下的四根分别接在了 ULN2803 芯片的四个输出端,其对 应的输入端则接在了单片机的 P1.0P1.3 端口,要使电机工作,则只需让四个 I/O 口依次输出 高电平。电机励磁表如下所示: 励磁顺序AABB 11000 20100 30010 40001 小车的前面两个轮子分别用两个步进电机来驱动,当两个步进电机的转速一样的时候, 车子将沿直线前进,而两个步进电机的转速不一样的时候,车子就会拐弯,例如,左边的步 进电机转速比右边的快的话,车子将向右边拐弯,只要控制好两个步进电机的转速比和不同 转速的时间,就可以精确的控制小车的避障行为。 (四)(四) 、语音提示模块、语音提示模块 此模块是用来提供语音提示的,当小车距离障碍物距离(这个距离可以自行设定)很近 时,小车的控制系统会发出“在距您车前方 x 米的地方有一障碍物,请您注意避让”的语音 提示。 此功能是用 ISD1760 语音芯片来实现,预先给语音芯片录入“在距您车前方” , “米的地 方有一障碍物,请您注意避让” , “0” , “1” , “2” , “3” , “4” , “5” , “6” , “7” , “8” , “9” , “10”等语音信息,在通过单片机程序来控制语音芯片的定点放音,来实现语音提示。 Vccd 1 LED 2 RESET 3 MISO 4 MOSI 5 SCLK 6 SS 7 Vssa 8 Analn 9 MIC+ 10 MIC- 11 Vssp2 12 SP- 13 Vccp 14 SP+ 15 Vssp1 16 AUD/AUX 17 AGC 18 VOL 19 Rosc 20 Vcca 21FT 22 PLAY 23 REC 24 ERASE 25 FWD 26 INT/RDY 27 Vssd 28 I1 ISD1760 REC1 PLAY1 ERASE1 S5 VOL1 S6 S4 GND 4.7K R20 R19 R 0.1uf C14 0.1uf C15 4.7K R21 4.7K R22 VCC 80K R23 4.7ufC7 4.7uf C16 1 2 P3 MIC L7 0.1uf C4 GND VCC 0.1uf C6 4.7uf C5 GND 0.1uf C9 4.7uf C8 0.1uf C12 4.7uf C10 0.1uf C13 4.7uf C11 1 2 P4 Sperker GND SS SCLK MOSI MISO GNDGND GND VCC VCC VCC GND GND GND 由总体电路图,用单片机的 P2.2 到 P2.5 四个 I/O 口来控制 ISD1760 语音芯片的定点放音。 ISD1760 工作原理:如图所示,通过 REC 键来进行录音,录音时要一直按住 REC 键,录 完一段语音后松开 REC 键,按动 PLAY 键可以对刚才的录音播放出来;VOL 键可以加减音量, 每按动一次 VOL 键,声音就增大一级,由于只有 8 级音量调节,所以在第 9 次按动 VOL 键时, 声音又回到了最小音量;ERASE 键可以对已经录入的语音进行擦除,短按此键可以擦除上一 段录音,长按此键可以擦除所有录音;通过 SS、SCLK、MISO、MOSI 脚与单片机进行 SPI 通信, 单片机就是通过这几个脚实现对 ISD1760 的定点放音。 (五)(五) 、速度自控模块、速度自控模块 此模块的功能是通过按键自行输入一个速度后,小车就会按照输入的速度进行直线前进, 直到遇到障碍物。 如图所示,通过 S2、S3 来输入设定的速度,此时是通过数码管来显示输入的数字,设定 结束后,小车就会按照此速度前进,不过这只是一个象征性的速度,实际前进速度并不是输 入的速度,而是以速度的快慢来反映这一功能的。 (六)(六) 、信号提示模块、信号提示模块 此功能就是相当于汽车的转向灯和刹车灯。 把 L2、L3、L4、L5 四个发光二极管分别安装在小车的四个角上,当小车在拐弯时相应侧 边的发光二极管点亮,并且闪动;当小车在减速时小车后面的发光二极管点亮且闪动。 (七)(七) 、单片机控制模块、单片机控制模块 此模块是小车的最重要部分,它控制着超声波测距模块、数码管显示模块、步进电机控 制模块、语音提示模块、速度自 控模块和信号提示模块的工作。 单片机通过计时器记录超声 波发射和接受的时间差,来计算 出小车距离障碍物的距离,控制 P1 口的高低电平来控制数码管 显示,通过输出不同频率的脉冲 来控制步进电机的工作,通过 SPI 协议与 ISD1760 语音芯片进 行通信,来控制语音芯片的定点 图 5:语音模块原理图 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 RST/VPD 9 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.5/T1 15 P3.6/WR 16 P3.7/RD 17 XTAL2 18 XTAL1 19 VSS 20 P2.0 21 P2.1 22 P2.2 23 P2.3 24 P2.4 25 P2.5 26 P2.6 27 P2.7 28 PSEN 29 ALE/PROG 30 EA/VPP 31 P0.7 32 P0.6 33 P0.5 34 P0.4 35 P0.3 36 P0.2 37 P0.1 38 P0.0 39 VCC 40 U2 AT89S51 12 Y1 XTAL 20pF C2 20pF C3 GND P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.7 LED1 LED2 LED3 LED4 LED5 LED6 LED7 LED8 LED9 LED10 LED11 LED12 BELL REST1 16K R15 1 2 10uF C1 VCC GND VCC 位位位位 位位位位 9 放音,实现语音提示功能。 四、系统软件设计四、系统软件设计 本设计系统软件采用模块化结构,由主程序定时子程序、电机驱动子程序中断子程 序、显示子程序调速子程序算法子程序构成。主程序流程图如图 2 所示。其中:避障中 断服务子程序完成对超声波探测器产生的外部中断进行处理,如果超出预定的危险距离就左 转进行避障。遥控中断服务子程序完成对遥控信号产生的外部中断进行处理,对不同的遥控 信号产生相应的控制信号。在定时中断服务子程序,完成定时与里程的计算。 是 否 是 否 初始化 驱动电机 利用定时器中断每 800ms 发送一个触发信 号 收到回波信号 计算障碍物距离 障碍物距离小于 20cm 驱动电机转向 图 7:程序流程图 图 6:单片机最小系统 五、原件清单五、原件清单 序号元件名称元件数量参数 1AT89S51 单片机U11 2电解电容C1110uf 3电解电容C5, C7, C8, C10, C11, C1664.7uf 4瓷片电

温馨提示

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

评论

0/150

提交评论