1、 本科 毕业 论文 (设计 ) (二零 届) 基于单片机的循迹小车的设计 所在学院 专业班级 电气工程及其自动化 学生姓名 学号 指导教师 职称 完成日期 年 月 - 1 - 摘 要 本设计为基于单片机的循迹小车的设计。该产品是一个能够自动循迹,避障及测量其行驶速度的智能玩具小车。本设计的硬件电路由 微处理器 系统、电机模块、循迹模块、避障模块、测速模块及键盘和显示模块 六大模块组成。在设计玩具小车电路中,用 C语言进行编程, Keil u Vision 软件进行编译,制作了智能玩具小车。此玩具小车实现了能够在黑色轨道上自动循迹,碰到障碍物时及时避开,并且能够调节小车的行驶速度,同时在行驶的过
2、程中测量计算出小车的行驶速度并在数码管中实时显示等功能。 要实现以上功能芯片的选择至关重要,单片机本设计选用 AT89S52。 显示驱动芯片选用的是 HD7279。 而循迹模块采用的是 红外线( IR)接收 /检测器。此传感器 外接电路比较简单, 能够同时满足小车循迹,壁障,测速三大功能。由于小车需要实现调速的功能,所以在设计中设置了按键。 测速功能的实现,则是靠伺服电机利用脉冲控制这一特性,计算规定距离内脉冲的个数即可计算得到小车的行驶速度。 关键词: 循迹;避障;测速;红外传感器 - 2 - Abstract This is a design of tracking car based o
3、n MCU. Its a smart toy car that tracking,obstacle-avoidance and measure the speed. The design of the hardware circuit by the microprocessor system, keyboard and display module, tracking and obstacle avoidance modules, and motor-driven four modules. Using C language to program,Keil u Vison software t
4、o compie when I design the smart toy car. This toy car that can achieve orbit in a black automatic tracking, timely encounter obstacles to avoid, adjust the cars speed, and measurement the speed and display. Its the most important that choice of the chip for achieve the functions. The SCM is AT89S52
5、. The display driver is HD7279, and the tracking module is the infrared(IR) receiver/detector that is simple external circuit. By the way, it can meet the car tracking, barrier, speed the three major functions. Because of the speed, its need to set the key in the design. To achieve the function of s
6、peed, calculating the number of pulses within a specified distance by the characteristics of the puse controlle the servo motor. Key Words: Tracking; obstacle avoidance; speed; infrared sensor - 3 - 目 录 1 引言 .1 2 需求分析 .2 3 硬件设计 .3 3.1 微处理器系统 .3 3.2 键盘和显示模块 .4 3.3 电机模块 .6 3.3.1 伺服电机的连接 .6 3.3.2 伺服电机的
7、调零 .8 3.3.3 伺服电机的测试 .8 3.3.4 伺服电机的速度和方向控制 .9 3.4 红外循迹、壁障模块 .10 3.5 测速模块 . 11 4 软件设计 .12 4.1 总体程序流程图 .12 4.1.1 初始化子程序 .13 4.1.2 循迹子程序 .13 4.1.3 壁障子程序 .15 4.1.4 按键处理子程序 .17 4.2 电机控制程序流程图 .20 4.2.1 循迹时电机的控制程序流程图 .20 4.2.2 壁障时电机控制的流程图 .23 4.3 小车速度的算法 .27 5 测试报告 .28 5.1 测试小车初始状态 .28 5.2 测试小车的循迹功能 .28 5.3
8、 测试小车的壁障功能 .28 5.4 测试小车 速度的控制 .29 6 结论 .30 致谢 . 错误 !未定义书签。 参考文献 .31 附录 1 实验原理图 .32 附录 2 毕业设计作品说明书 .33 附录 3 源程序清单 .34 - 1 - 1 引言 2010 年在上海世博会上的日本馆上,一群各式各样的机器人吸 引了大批人潮。虽然这些机器人看似离我们的现实生活很遥远,但是一些特殊的机器人却已经悄悄地走进并影响着我们的生活。比如日本重大核泄露中所运用到的核灾机器人,中国嫦娥计划中所运用的月球探索机器人等等。 或许设计制作一个这样的机器人对于我们本科生来说过于遥远。但是研究循迹小车却是研究机器
9、人的基础和开始。从设计循迹小车中学习基本技能,累计经验,为将来打好基础。 根据美国玩具协会的调查统计, 2006 美国智能玩具市场规模至少 300 亿美元,全球这一市场规模更是高达 600 亿美元。而且这一数字还在增长。就 2003 与 2004 年 相比,智能玩具的销量增长就达到 52%。与此同时,英国玩具零售商协会选出的 2005 年圣诞最受欢迎的十大玩具中, 7 款就是智能玩具。 循迹智能小车作为智能玩具中的一种,更是得到了小朋友前所未有的热捧。这对于享有“世界工厂”的中国来说,这一市场意味着蓬勃的商机和源源不断的财富。 在设计中我们选用了单片机作为小车控制芯片,因为 单片机自 20 世
10、纪 70年代问世以来,以其具有体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易等优势,受到人们的重视和关注 1。 设计一个利用单片机实现循迹等功 能的小车,无论从制作方便程度还是后价格低廉方面都具有相当的优势性。 - 2 - 2 需求分析 运用单片机设计一个智能的循迹小车,并用 C语言进行编程。 系统具体要求: 一、通过 C语言对 AT89S52 单片机进行编程控制伺服电机的转动。 二、通过调节参数可以改变伺服电机的转速和转向,让小车前进、后退,和做不同角度的转动。 三、能够在 4分钟之内完成按照规定的赛道 ,从规定的起点开始 ,饶行一周,尽量缩短饶行时间
11、。 四、采用红外传感器使小车能够寻黑线运动。 五、可以饶开障碍物进行智能运输。 六、在小车运行的同时对其速度进行检测,并 在数码管上显示。 本设计利用 AT89S52 单片机作为小车的大脑,通过运算控制各个模块来完成以上的功能。显示驱动选用的芯片是 HD7279,该芯片可连接多达 64 键的键盘矩阵,单片机即可完成 LED 显示,键盘接口的全部功能。而实际用到的只需要 4个,为了产品的扩展,本设计设置了 16个键。 对于小车的循迹,壁障,和测速功能,可以利用红外线( IR)接收 /检测器实现全部的功能。 红外线二极管发射管发射红外线,如果小车前面有障碍物,红外线从物体中反射回来,这个时候小车的
12、“眼睛”(红外线接收管),检测到发射回来的红外光线。并发出 信号告诉小车的“大脑”(单片机)已经接受到了红外光线。“大脑”基于这个传感器的输出控制伺服电机。使其做出正确的反应。 运用同样的原理,黑色能够吸收红外光线,当传感器无法接收到红外光线时,表明小车在既定的轨道上行驶,反之则偏离轨道,应作出正确的反应使其返回既定轨道。实现小车的循迹功能 对于小车的测速功能则可以在轮胎上做白色标记,每当没有检测到外光线时,单片机发生中断,同时利用脉冲的个数来得知时间,运用公式计算速度。 由于小车选用的电机是伺服电机,根据其特性,可以改变输出脉冲控制伺服电机的运行速度。 - 3 - 3 硬件设 计 本系统硬件
13、主要有六大模块组成:微处理器系统、电机模块、循迹模块、避障模块、测速模块、键盘和显示模块。系统结构框图如图 3-1。 图 3-1 单片机系统结构图 3.1 微处理器系统 MCS51是指由美国 INTEL公司生产的一系列单片机的总称。其中 8051是最为经典的产品。而后, INTEL公司将 MCS51的核心技术授权给了很多公司,所以许多公司都在做以 8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求。本设计利用的AT89C52单片机就是在此基础上改进而来的。 AT89S52是一种高性能、低功率的 8位单片机,内含 8K字节 ISP( In-system Programmable
14、,系统在线编辑)可反复擦写 1000次的 FLASH只读程序储存器,器件采用ATMEL公司的高密度、非易失性储存技术制造,兼容标准 MCS51指令系统及其引脚结构。在实际工程应用中,功能强大的 AT89S52已成为许多高性价比嵌入式控制应用系统的解决方案。 主控模块的电路原理图如图 3-2所示: AT89S52 电机模块 HD7279 LED 数码管 键盘 循迹模块 避障模块 测速模块 输 入 输 出 - 4 - E A / V P31X119X218R E S E T9I N T 012I N T 113T014T115P 1 .01P 1 .12P 1 .23P 1 .34P 1 .45P
15、 1 .56P 1 .67P 1 .78P 0 .039P 0 .138P 0 .237P 0 .336P 0 .435P 0 .534P 0 .633P 0 .732P 2 .021P 2 .122P 2 .223P 2 .324P 2 .425P 2 .526P 2 .627P 2 .728RD17WR16P S E N29A L E / P30T X D11R X D10V C C40V S S20U38 9 C 5 2Y11 1 .0 5 9 2 MV C CX T A L 1X T A L 2P 1 0P 1 1P 1 2P 1 3P 1 4P 1 5P 1 6P 1 7R E S
16、E TR X DT X D/ IN T 0/ IN T 1T0T1WRRDA L E / PC23 0 pC33 0 pX T A L 1X T A L 2+C 1 02 2 uR51 0 kV C CA8A9A 1 0A 1 1A 1 2A 1 3A 1 4A 1 5D0D1D2D3D4D5D6D7D2D IO D ES 1 7S W -P BRESET基本单片机模块图 3-2 基本单片机模块 3.2 键盘和显示模块 HD7279A智能显示驱动芯片内部含有译码器,可直接接受 BCD 码或 16 进制码,并同时具有 2种译码方式,此外。还具有多种控制指令,如消隐,闪烁,左移,右移,段寻图 3-
17、3 HD7279A 引脚图 - 5 - 址等。 HD7279A 具有片选信号,可方便地实现多于 8 位的显示或多于 64 键的键盘接口。而本设计实际用到的按键只需要 4 个,为了产品的扩展,本设计设置了 16 个键。 键盘显示电路 图如下图 3-4 所示,显示屏由两个 4 位 LED 数码管组成, HD7279 采用串行方式与单片机, 串行数据从 DATA 引脚送入芯片,并由 CLK端同步 .当片选信号变为低电平后 , DATA 引脚上的数据在 CLK 引脚的上升沿被写入HD7279A 的缓冲寄存器。由于本设计使用了数码管与键盘,所以 HD7279 芯片与键盘的连接中串入了 8只 200 欧姆
18、的电阻,和 8 只 100K 的下拉电阻。 RC 接口接振荡电路以供系统工作,其中 C9=15PF, R3=1.5K。 RESET 复位端有三种接连方法, 1;连接一外部复位电路, 2;由单片机控制, 3;直接与正电源相连。本设计选用第三套方案。 键盘显示模块VDD1/RESET28VDD2RC27NC3CLKO26VSS4DIG725NC5DIG624/CS6DIG523CLK7DIG422DATA8DIG321/KEY9DIG220SG10DIG119SF11DIG018SE12DP17SD13SA16SC14SB15U4/INT1P11P10A14DIG0DIG1DIG2DIG3DIG4
19、DIG5DIG6DIG7R6R7R8R 1 0R 1 2R9R 1 1R 1 3R 1 9R 2 0R 2 1R 1 4R 1 5R 1 6R 1 7R 1 8DPSASBSGSFSESDSCVCCVCCVCCGNDR3C9V C CDIG0e1d2dp3c4g5w16b7w28abfcgdeD P Yabfcgdeabfcgdeabfcgdew39f10a11w412D S 1L N 3 4 6 1e1d2dp3c4g5w16b7w28abfcgdeD P Yabfcgdeabfcgdeabfcgdew39f10a11w412D S 2L N 3 4 6 1S0 S1 S2 S3 S4 S5
20、 S6 S7SG SF SE SD SC SB SA DPS8 S9 S 1 0 S 1 1 S 1 2 S 1 3 S 1 4 S 1 5DP DPSA SASB SBSC SCSD SDSE SESF SFSG SGDIG0DIG1DIG2DIG3DIG4DIG5DIG6DIG7R 2 21 0 KR41 0 KSG SF SE SD SC SB SA DPD IG 0D IG 1图 3-4 键盘显示电路 HD7279AA - 6 - 芯片读键盘数据的方式如表 3-1所示: 表 3-1 读键盘数据指令 D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1
21、 D0 0 0 0 1 0 1 0 1 d7 d6 d5 d4 d3 d2 d1 d0 该指令从 HD7279A 读出当前的按键代码。与其它指令不同,此命令的前一个字节00010101B 为微控制器传送到 HD7279A 的指令,而后一个字节 dO-d7 则为 HD7279A 返回的按键代码,其范围是 O-3FH(无键按下时为 OXFF)。当此指令的前半段, HD7279A 的DATA 引脚处于高阻输入状态,以接受来自微处理器的指令;在指令的后半段, DATA 引脚输 入状态转为输出状态,输出键盘代码的值。故微处理器连接到 DATA 引脚的 I/D 口应有一从输出态到输入态的转换过程。 当 H
22、D7279A 检测大到有效的按键时, KEY 引脚从高电平变为电平,并一直保持到按键结束。在此期间,如果 HD7279A 接收到读键盘数据指令,则输出当前按键的键盘代码,如果在接收到读键盘指令时没有有效按键, HD7279A 将输出 FFH( 11111111B。)。 3.3 电机模块 伺服电动机又称执行电动机,在自动控制系统中,用作执行元件,把所收到的电信号转换为电动机轴上的角位移或角速度输出。其主要 特点是,当信号电压为零时无自转现象,转速随着转矩的增加而匀速下降。 3.3.1 伺服电机的连接 每个伺服电机的控制电缆有三根线 白色,红色和黑色。其中白色是用来传送电机的控制信号,红色是用来连接电源,而黑色则是连接底线(本设计使用的是电压为6V的电池组)。从图 3-5的伺服电机连接图可知,两个伺服电机的控制信号线(白色)分别连接到单片机的 P1.2 和 P1.3,即由单片机的 P1.2 和 P1.3 口输出的控制信号控制两个伺服电机的运动。
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。