版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘要 本文论述了基于单片机的智能循迹小车的控制过程。 智能循迹是基于自动引导机器 人系统,用以实现小车自动识别路线,以及选择正确的路线。智能循迹小车是一个运用 传感器、单片机、电机驱动及自动控制等技术来实现按照预先设定的模式下,不受人为 管理时能够自动实现循迹导航的高新科技。该技术已经应用于无人驾驶机动车,无人工 厂,仓库,服务机器人等多种领域。 本设计采用 STC89C52单片机作为小车的控制核心; 采用 TCRT5000 红外反射式开 关传感器作为小车的循迹模块来识别白色路面中央的黑色引导线, 采集信号并将信号转 换为能被单片机识别的数字信号;其中软件系统采用 C 程序,本设计的电路结构简
2、单, 容易实现,可靠性高。 关键字:单片机,传感器 Abstract This paper discusses the intelligent tracing electric trolley control process. Automatic tracing is used to make the car indentify route automatically , and choosing the right route, based on the automatic guide robot system. Intelligent tracing electric trolley is
3、 an advanced technology to realize automatic tracing navigation. It is out of human management but under the designed mode that use of the use of a transducer, single chip, motor drive and automatic control .This technology has been applied in unmanned vehicle, unmanned factory, warehouse, service r
4、obot and many other fields. During the design of Intelligent tracing electric trolley, STC89C52 single clip is used as the control core; at the same time with TCRT5000 reflective infrared transducer switch to identify the black guide line at the central of the white road, which used as the car traci
5、ng module, it can gather the signal and transfer it into digital signal that can be recognized by single chip. Among which the software system is using C program. In a nutshell, the design of the circuit has the advantages of simple structure, easy implementation, and high reliability. Key words: si
6、ngle chip microcomputer; automatic tracing 目录 1 绪 论 1. 1.1 小车概述 1 1.1.1 循迹小车的发展历程回顾 1. 1.1.2 循迹分类 2. 1.1.3 循迹小车的应用 3. 1.2 智能循迹小车研究中的关键技术 4. 2 循迹小车总体设计 4. 2.1 整体设计 4 2.1.1 系统基本组成 5. 2.2 整体控制方案确定 5. 3 系统的硬件设计 6. 3.1 单片机电路的设计 6. 3.1.1 单片机的功能特性描述 6. 3.1.2 晶振电路 7. 3.1.3 复位电路 7. 3.1.4 控制板电路的设计 8. 3.2 光电传感
7、器模块 9. 3.2.1 传感器选择 1.0. 3.2.2 传感器安装 1.1. 3.2 运动机构 1.1. 3.2.1 驱动电机的选择 1.1. 3.2.2 伺服电机的控制 1.1. 4 系统的软件设计 1.2. 4.1 软件设计的流程 1.2. 4.2 本系统的编译器 1.3. 5 系统的总体调试 1.9. 5.1 “ 0”点的整定 1.9. 5.2 程序的调试 1.9. 结 论 2.0. 致 谢 2.1. 参考文献 2.2. 附录 程序代码 2.3. 进入二十一世纪,随着计算机技术和科学技术的不断进步,机器人技术较以往已经 有了突飞猛进的提高,智能循迹小车即带有视觉和触觉的小车就是其中的
8、典型代表。 1.1 循迹小车概述 智能循迹小车又被称为 Automated Guided Vehicle,简称 AGV ,是二十世纪五十年代 研发出来的新型智能搬运机器人。 智能循迹小车是指装备如电磁, 光学或其他自动导引装 置,可以沿设定的引导路径行驶, 安全的运输车。 工业应用中采用充电蓄电池为主要的动 力来源,可通过电脑程序来控制其选择运动轨迹以及其它动作, 也可把电磁轨道黏贴在地 板上来确定其行进路线, 无人搬运车通过电磁轨道所带来的讯息进行移动与动作, 无需驾 驶员操作,将货物或物料自动从起始点运送到目的地。 AGV 的另一个特点是高度自动化和高智能化,可以根据仓储货位要求、生产工艺
9、流 程等改变而灵活改变行驶路径, 而且改变运行路径的费用与传统的输送带和传送线相比非 常低廉。 AGV 小车一般配有装卸机构,可与其它物流设备自动接口,实现货物装卸与搬 运的全自动化过程。此外, AGV 小车依靠蓄电池提供动力,还有清洁生产、运行过程中 无噪音、无污染的特点,可用在工作环境清洁的地方。 1.1.1 小车的发展历程回顾 随着社会的不断发展, 科学技术水平的不断提高, 人们希望创造出一种来代替人来做 一些非常危险, 或者要求精度很高等其他事情的工具, 于是就诞生了机器人这门学科。 世 界上诞生第一台机器人诞生于 1959年,至今已有 50 多年的历史,机器人技术也取得了飞 速的发展
10、和进步,现已发展成一门包含:机械、电子、计算机、自动控制、信号处理,传 感器等多学科为一体的性尖端技术。循迹小车共历了三代技术创新变革: 第一代循迹小车是可编程的示教再现型, 不装载任何传感器, 只是采用简单的开关控 制,通过编程来设置循迹小车的路径与运动参数, 在工作过程中, 不能根据环境的变化而 改变自身的运动轨迹。 支持离线编程的第二代循迹小车具有一定感知和适应环境的能力, 这类循迹小车装有 简单的传感器, 可以感觉到自身的的运动位置, 速度等其他物理量, 电路是一个闭环反馈 的控制系统,能适应一定的外部环境变化。 第三代循迹小车是智能的, 目前在研究和发展阶段, 以多种外部传感器构成感
11、官系统, 通过采集外部的环境信息, 精确地描述外部环境的变化。 智能循迹小车, 能独立完成任务, 有其自身的知识基础, 多信息处理系统, 在结构化或半结构化的工作环境中, 根据环境变 化作出决策, 有一定的适应能力, 自我学习能力和自我组织的能力。 为了让循迹小车能独 立工作,一方面应具有较高的智慧和更广泛的应用,研究各种新机传感器, 另一方面,也 掌握多个多类传感器信息融合的技术, 这样循迹小车可以更准确, 更全面的获得所处环境 的信息1。 1.1.2 循迹分类 AGV 从发明至今已经有 50 多年的历史,随着应用领域范围的不断扩大,其种类和 形式也变得更加多样化。一般根据行驶的导航方式将智
12、能循迹小车分为以下几种类型: (1) 电磁感应式 电磁感应式引导一般在地面上, 沿预定路径埋电线, 当高频电流通过导线, 电线周围 产生电磁场流动, AGV 小车上安装两个对称的电磁感应传感器, 他们收到的电磁信号差 异可以反映的 AGV 偏离程度路径的程度。 AGV 自动化控制系统,基于这种偏差值,以 控制车辆的转向,连续的动态的闭环控制设置能够保证 AGV 对设定路径的稳定自动跟踪。 在目前商业用途的 AGV 中,特别是大型和中型小车,绝大多数都采用电磁感应导航。 (2) 激光式 安装有可旋转的激光扫描器的 AGV ,可安装在墙壁或有高反射激光定位标志的支柱 上或者路径上运行, AGV 依
13、靠激光扫描器发射激光束,然后接收由四周定位标志反射回 的激光束,车载计算机, 计算出当前车辆的位置和运动方向, 通过内置的数字地图和校准 位置相比,以实现自动处理。目前,这种 AGV 类型的应用比较广泛。基于同样的原理, 如果激光扫描仪被红外线发射器,或超声波发射取代,激光制导的 AGV 小车可以转变为 红外引导和超声引导的 AGV 。 (3) 视觉式 视觉引导式 AGV 是的迅速发展和比较成熟的 AGV ,这种 AGV 配备 CCD 摄像机, 传感器和车载电脑, 在车载计算机中设置有 AGV 欲行驶路径周围环境图像数库。 在 AGV 的行驶过程中, 相机得到的图像与图像数据库进行比较, 以确
14、定当前位置和车辆周围的图 像信息并对驾驶下一步作出决定。这种 AGV 小车并不需要设置任何的人工物理路径,所 以在理论上具有灵活性, 在计算机图像采集, 存储和处理技术飞速发展的今天, 这种类型 的 AGV 实用性越来越强。此外,还有铁磁陀螺惯性引导式 AGV 、光学引导式 AGV 等多 种形式的 AGV 2。 1.1.3 循迹小车的应用 智能循迹小车发展历史及主要应用场所如下: (1) 仓储业 1954年,来自美国南卡罗来纳州的 Mercury Motor Freight 公司成为第一批把 AGV 小 车的应用到仓库的使用者,来实现出入库货物的自动处理。至今世界上有超过 2100 个厂 家把
15、大约 2 万台大型或小型的 AGV 小车应用到自己的仓库中。中国的海尔集团在 2000 年把 9 台 AGV 小车投产到了自己的仓库区, 形成一个灵活的 AGV 自动数据库处理系统, 轻松地完成了每天至少 33500 的储存和装卸货物的任务。 (2) 制造业 在制造业的的生产线中 AGV 小车大显身手, 快速, 精确,灵活的完成材料的运送任 务。由多台 AGV 小车组成的物流运输处理系统,较人工搬运系统来说更灵活,运输路线 可以根据生产过程及时调整, 使一条生产线,生产十几个产品, 大大提高了生产的灵活性, 企业的竞争力。在 1974年瑞典的沃尔沃卡尔马的汽车组装厂, 提高了运输系统的灵活性,
16、 使用以 AGV 小车为载运工具的装配线,采用该装配线后,减少了 20%装配时间、减少了 39%组装错误,减少了 57%投资资金回收时间以及减少了 5%的员工费用。目前,在世界 主要的汽车生产厂家,如通用、 丰田、 克莱斯勒、大众 AGV 小车已被广泛应用。 近年来, 作为 CIMS(Computer Integrated Manufacturing Systems,直译为基于计算机的现代集成制 造系统 ) 的基础搬运工具, AGV 已经深入到机械加工,家电制造,微电子制造,烟草等行 业,生产业和加工业已成为 AGV 小车使用最广泛的领域。 (3) 邮局、图书馆、港口码头和机场 在邮局,图书馆
17、,码头和机场候机楼等人口密集的公众场所,存在着大量的物品的 运送工作,充满不定性和动态性强的特点,搬运过程往往也很单一。 AGV 有着可并行工 作、自动化、智能化和处理灵活的特点,可以很好的满足这些场合的运输要求。 1983 年 瑞典的大斯得哥尔摩邮局, 1988 年日本东京的多摩邮局, 1990 年中国上海的邮政相继开 始使用 AGV 小车来完成邮品的搬运工作。在荷兰的鹿特丹港口, 50 辆被称为 “院子里的 拖拉机”的 AGV 小车每天都在把集装箱从船边运送到几百米以外的仓库中。 (4) 烟草、医药、化工、食品 对于处理一些需要在清洁、安全、无排放污染等其他特殊环境要求的产品生产如烟 草、
18、制药、食品、化工等产品时应考虑 AGV 小车的应用。在全国许多卷烟企业,如青岛 颐中集团、玉溪红塔集团、红河卷烟厂、淮阴卷烟厂,应用激光引导式 AGV 完成托盘货 物的搬运工作。 (5) 危险场所和特种行业 在军事方面, 以 AGV 小车为基础有着自动驾驶和检测功能的设备, 可用于战场侦察 和扫雷,英国军方正在开发 MINDER 侦察系统,这是一种具有地雷探测、销毁和路线验 证能力自动型侦察车。在钢铁厂, AGV 小车负责炉料运输,大大降低了工人们的劳动强 度。在核电厂的核储存地点使用 AGV 小车,以避免辐射的危险。 AGV 小车可在黑暗环 境中,准确、可靠的运输物料 3 。 1.2 循迹小
19、车研究中的关键技术 现在全世界越来越多的国家都在做着研究智能化、多样化的自动汽车导航的工作。 自动汽车导航是一个非常复杂的系统, 它不仅应具有正常的运动功能的成分, 而且还应具 有任务分析,路径规划,信息感知,自主决策等类似人类的智能行为。 人类可以利用自己的听觉、视觉、味觉、触觉等功能获取事物的信息, 人类的大脑再 根据已经掌握的知识对这些信息进行综合分析, 从而全面了解认知事物。 这样一个认识事 物、分析事物和处理信息的过程称之为信息融合过程。 多传感器信息融合的基本原理就是 模仿人类大脑的这个过程, 得到一个对复杂对象的一致性解释或结论。 多传感器信息融合 是协调多个分布在不同地点, 相
20、同或不同种类的传感器所提供的局部不完整观测量信息加 以综合,协调使用,消除可能存在的冗余和矛盾,并加以互补,以减少不确定性,得到对 物体或环境的一致性描述的过程 4。 多传感器信息融合具有许多性能上的优点: (1)增加了系统的生存能力; (2)减少了信 息的模糊性; (3)扩展了采集数据覆盖范围; (4) 增加了可信度; (5)改善了探测性能; (6)提 高了空间的分辨力; (7) 改善了系统的可靠性、容错性、互补性、实时性、经济性 (8)信息 的低成本 5。 2 智能循迹小车总体设计 2.1 整体设计 本系统采用简单明了的设计方案。 通过高发射功率红外光电二极管和高灵敏度光电晶 体管组成的传
21、感器循迹模块判断黑线路经,然后由 STC89C52通过 IO 口控制其他模块改 变两个直流电机的工作状态,最后实现小车循迹。 2.1.1 系统基本组成 智能循迹小车主要由 STC89C52单片机电路、 TCRT5000 循迹模块、直流电机、小车 底板、电源模块等组成。 图 2.1 智能循迹小车控制系统结构框图 (1)单片机电路:采用 STC89C52 芯片作为控制单元 。STC89C52 单片机具有低成本、 高性能、抗干扰能力强、超低功耗、低电磁干扰,并且与传统的 8051 单片机程序兼容, 无需改变硬件,支持在系统编程技术。 (2)(2)TCRT5000 循迹模块:采用脉冲调制反射式红外发射
22、接收器作为循迹传感器, 调制信号带有交流分量, 可减少外界的大量干扰。 信号采集部分就相当于智能循迹小车的 眼睛,由它完成黑线识别并生产高、 低平信号传送到控制单元, 然后单片机生成指令来控 制驱动模块来控制两个直流电机的工作状态,来完成自动循迹。 (4) 电机:通过 PWM 调速。 PWM 调速就是使加在电机两端的电压波形为矩形波,改 变矩形波的占空比就能实现电压的改变,从而实现电机转速的改变。 (5) 电源模块:由 4 个串联 1.5V 干电池作为电源。通过 7805 稳压芯片稳压成 5V。 2.2 整体控制方案确定 黑色路径是小车跟踪的目标, 检测系统检测车的相对路径, 然后将此信息输入
23、到单片 机,单片机处理此信息后,将控制命令输出到驱动模块,以控制小车的电机,保证小车快 速平稳地沿预先设定好的路线行驶。 随着不断的行驶, 通过传感器来探测黑色的路径, 来 不断的修正行驶过程中的偏差,从而形成了一个反馈信号。 3 系统的硬件设计 3.1 单片机电路的设计 一个单片机应用系统的硬件电路设计包含两部分内容: 一是系统扩展, 即单片机内部 的功能单元,如 ROM、RAM、I/O、定时器 /计数器、中断系统等不能满足应用系统的要 求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路;二是系统的配置,即按 照系统功能要求配置外围设备,如键盘、显示器、 A/D 、D/A 转换器等。
24、3.1.1 单片机的功能特性描述 单片机又称单片微控制器 ,它不是完成某一个逻辑功能的芯片 ,而是把一个计算机系 统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价 格便宜。单片机内部也有和电脑功能类似的模块,比如CPU,内存,并行总线,还有和 硬盘作用相同的存储器件。 单片机是一种集成电路芯片, 采用超大规模集成电路技术把具有数据处理能力的中央 处理器 CPU随机存储器 RAM 、只读存储器 ROM、多种 I/O 口和中断系统、定时器 /计时 器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、 A/D 转换器等电 路)集成到一块硅片上构成的一个小而完
25、善的计算机系统。 本课题选择了 STC 公司的生产的 STC89C52 单片机。 STC89C52 是一种低功耗、高 性能 CMOS8 位微控制器,是带 8K 字节闪烁可编程可檫除只读存储器。一个芯片上拥有 8 位 CPU,并且在系统可编程 Flash。STC89C52 提供给为众多嵌入式控制应用系统高灵 活、超有效的解决方案。 STC89C52具有以下标准功能 :8k 字节 Flash,512字节 RAM, 32位 I/O 口线,看门狗定时器,内置 4KB EEPROM,两个 16位定时器 /计数器,一个 6 向量 2 级中断结构,全双工串行口。此外,空闲模式下, CPU 停止工作,允许 R
26、AM 、定 时器/计数器、串口、中断继续工作。 掉电保护方式下, RAM 内容被保存, 振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。 表 3.1 STC89C52 单片机和 AT89S52 单片机的对比 STC89C52 单片机 AT89S52 单片机 序存储空间 8K 字节 8K 字节 数据存储空间 512 字节 256 字节 EEPROM 存储空间 内带 4K 字节 无 是否可以直接使用串口下 可以 不可以 载 3.1.2 晶振电路 在 STC89S52 单片机上内部有一个用于构成振荡器的高增益反相放大器, 引脚 XTAL1 和 XTAL2 分别是此放大器的输入端和输
27、出端。 时钟可以由内部方式产生或外部方式产生。 在 1 和 XTAL2 引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石 英晶体和电容组成的并联谐振回路。从 XTAL1 接入,如图 3.2 所示。由于外部时钟信号 经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有要求。 本设计选用的是 12MHZ 无源晶振、 2个 22pF电容,使得一个机器周期是 1s。晶振 的作用是为系统提供基本的时钟信号, 而两个电容则是起到并联谐振的作用, 如果没电容, 振荡电路会因为没有回路而停振,电路不能正常工作。 图 3.2 单片机晶振电路图 3.1.3 复位电路 复位电路的作
28、用是在上电或复位过程中,控制 CPU 的复位状态:这段时间内让 CPU 保持复位状态,而不是一上电或刚复位完毕就工作,防止 CPU 发出错误的指令、执行错 误操作,也可以提高电磁兼容性能。 89 系列单片机的复位信号是从 RST 引脚输入到芯片 内的施密特触发器中的。 施密特触发电路是一种波形整形电路, 当任何波形的信号进入电 路时,输出在正、负饱和之间跳动,产生方波或脉波输出。不同于比较器,施密特触发电 路有两个临界电压且形成一个滞后区,可以防止在滞后范围内之噪声干扰电路的正常工 作。如遥控接收线路,传感器输入电路都会用到它整形。当系统处于正常工作状态时, 且 振荡器稳定后,如果 RST引脚
29、上有一个高电平并维持 2个机器周期 (24个振荡周期 )以上, 则 CPU 就可以响应并将系统复位。 本设计采用的电容值为 10F的电容和电阻采用 1.5K和 200的电阻。如图 3.3 所 示上电后,由于电容充电,使 RST 持续一段高电平时间。当单片机已在运行之中时,按 下复位键也能使 RST 持续一段时间的高电平,从而实现上电且开关复位的操作。 3.1.3 控制板电路设计 通过单片机输出脉冲, 通过驱动电路控制电机运动快慢和正反转, 从而控制了前后左 右的运动。传感器探测信号,并把信号输入到单片机中,形成一个反馈的作用。如图 3.4 所述。 图 3.4 控制板电路图 3.2 光电传感器模
30、块 循迹光电传感器原理, 就是利用黑线对红外线不同的反射能力通过光敏二极管或光敏 三极管,接收反射回的不同光强信号,把不同光强转换为电流信号,最后通过电阻,转换 为单片机可识别的高低电平。光电传感器实现循迹的基本电路如 3.5 所示。 图 3.5 循迹传感器电路图 循迹传感器工作原理: TC 端是传感器工作控制端, 为高电平时, 发光二极管不工作, 传感器休眠,为低电平时,传感器启动。 Signal 端为检测信号输出,当遇到黑线,黑线吸 收大量的红外线,反射的红外线很弱,光敏三极管不导通, Signal 输出高电平;当遇到白 线,与黑线相反,反射的红外线很强,使光敏三极管导通, Signal
31、输出低电平。 这种探测方法, 即利用红外线在不同颜色的表面特征, 具有不同的反射性能, 汽车行 驶过程中接收地面的红外光。 当红外光遇到白色路线, 地板发生漫反射, 安装在小型车的 反射光接收器接收; 如果是遇到黑色路线, 红外光将被黑线吸收, 安装在小车上的接收管 没有收到红外光。控制器会根据是否收到反射的红外光为判断依据来确定的黑线的位置和 小车的路线。 红外探测器距离通常是不应超过 15 厘米的。红外发射和接收红外线感应器, 可以使自己或直接使用集成红外探头。 调整左右传感器之间的距离, 两探头距离约等于黑 线宽度最合适,选择宽度为 3 5 厘米的黑线。该传感器的灵敏度是可调的,传感器有
32、时 遇到黑线却不能送出相应的信号, 通过调节传感器上的可调电阻, 适当的增大或减小可改 变灵敏度。另外,循迹传感器的放置也是有讲究的,有两种方法,一种是两个都是放置在 黑线内侧紧贴黑线边缘, 第二种是都放置在黑线的外侧, 同样紧贴黑线边缘。 本设计采用 第二种方法。 单片机烧录程序后,就可以执行循迹指令了。如果小车向前行驶时向左偏离了黑线, 那么右边传感器会产生一个高电平, 单片机判断这个信号, 然后向右拐回到黑线。 两传感 器输出信号为低电平时, 小车前进。如果小车向右偏离黑线, 左边传感器产生一个高电平, 单片机判断这个信号,然后向左拐。 这样,小车一定不会偏离黑线。若两个光电传感器同 时
33、输出的信号为高电平,即单片机判断的都为高电平时,小车向前直走。 3.2.1 传感器选择 在传感器的选择中,我们主要有超声波传感器和红外传感器 2 种选择。超声波传 感器应用起来原理简单, 也很方便,成本也很低。 但是目前的超声波传感器都有一些缺点, 反射问题,噪音,交叉问题。并且时常受外界的干扰。相对而言,红外传感器的抗干扰能 力比超声波传感器强,并且性价比也比它好。所以我们最终选择了 TCRT5000 红外反射 式开关传感器。 3.2.2 传感器的安装 传感器通过信号采集, 向单片机提供信息。 因此传感器合理的布局很重要, 传感器布 局需要考虑小车行驶过程中信息检测的准确度和前瞻性, 能使在
34、相同数量的传感器下, 获 得更多的数据。 最终决定采用爪子上一个前 3 后 3 布局方法来对 7 个传感器进行布局, 这种布局方法 的前瞻性最好。 3.3 运动机构 小车循迹的正确与否可以说是由运动机构所决定的。 我们要求小车速度快, 并且要行 驶平稳,顺着路径走,误差尽量要少,车身也要尽量的轻。由这几点我们有了几种选择。 3.3.1 驱动电机的选择 1 采用伺服电机作为该系统的驱动电机。 由于其转过的角度可以精确的定位, 可 以实现小车前进路程和位置的精确定位。 2 直流电机: 直流电机的控制方法比较简单, 只需给电机的两根控制线加上适当 的电压即可使电机转动起来, 电压越高则电机转速越高。
35、 对于直流电机的速度调节, 可以 采用改变电压的方法,也可采用 PWM 调速方法。 PWM 调速就是使加在直流电机两端的 电压为方波形式, 通过改变方波的占空比实现对电机转速的调节。 但是行驶不稳, 不能精 确定位。 基于以上分析,我们选择了用伺服电机,使用伺服电机作为小车的驱动电机。 3.3.1 伺服电机的控制 电机出厂的“ 0”点为 1.5ms高电平信号和 20ms 低电平信号的脉冲。当给电机的脉 冲高电平大于 1.5ms的时候,电机会逆时针转, 大于 1.5ms越大,就转的越快, 反之亦然。 当脉冲为 1.5ms高电平, 20ms低电平的时候,小车就会停止。如图 3.6 所示。 图 3.
36、6 脉冲示意图 4 系统的软件设计 4.1 软件设计的流程 目前, 52 系列单片机使用的编程语言主要有汇编语言和 C 语言这两种。 最接近机器的语言是汇编语言, 其常用来编制与系统硬件相关的程序, 如访问 I/O 口、 中断处理程序等, 它是一种最快而又最有效的语言, 在对于程序的空间和时间要求很高的 场合中 使用汇编语言是最佳的选择,然而汇编语言也有其自身的缺点,比如程序开发周 期较长、浮点运算处理复杂、程序移植性差等不利因素。 在程序设计过程中 C 语言编程设计思想被称为模块化程序设计思想。有的时候为了 有效地完成任务,把所要完成的任务分割成若干个相互独立但相互又仍然有所联系的模 块,这
37、些模块使得任务变得相对简单,对外的数据交换相对简单、容易编写、容易检测, 容易阅读和维护。 本设计采用 C 语言来编译程序。模块化结构程序的设计,可以使系统软件便于调试 与优化,也使其他人更好地理解和阅读系统的程序设计。因此,软件的设计上,运用了模 块化程序的结构对软件进行设计, 使得程序变得更加直观易懂。 程序的主要模块有: 主程 序、定时溢出中断服务程序、外部中断服务程序。 随着单片机开发技术的不断发展, 从普遍使用汇编语言到逐渐使用高级语言开发, 单 片机的开发软件也在不断发展, Keil 软件是目前最流行开发 MCS-51 系列单片机的软件, 这从近年来各仿真机厂商纷纷宣布全面支持 K
38、eil 即可看出。 Keil 提供了包括 C 编译器、 宏汇编、连接器、 库管理和一个功能强大的仿真调试器等在内的完整开发方案, 通过一个 集成开发环境( uVision)将这些部分组合在一起。 掌握这一软件的使用对于使用 51 系列 单片机的学者来说是十分必要的,如果使用 C 语言编程,那么 Keil 几乎就是不二之选, 即使不使用 C 语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试 工具也会事半功倍。 Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具, 全 Windows 界面。 另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 Keil C5
39、1 生成的目标 代码效率非常之高, 多数语句生成的汇编代码很紧凑, 容易理解。 在开发大型软件时更能 体现高级语言的优势 6 。 4.2 本系统的编译器 Keil 编译器软件 Keil C51单片机软件开发系统可用于编辑 C 或汇编源文件。然后分别由 C51 编译器 编译生成目标文件( .OBJ)。目标文件与库文件一起经 LIB51 连接定位生成绝对目标文件 ( .ABS)。ABS 文件由 OH51 转换成标准的 Hex 文件,由仿真器使用直接对目标板进行调 试,也可以直接写入程序存贮器如 EPROM 中 打开 Keil 软件后,出现如图 4.1 所示界面 图 4.1 Keil 软件主界面 点
40、击 Project-New Project。可以新建一个工程,如图 4.2 所示。 图 4.2 Keil 软件新建工程界面 点击会出现的对话框中选择工程存在路径(如图 4.3 所示),单击 “保存”后,出现界 面。在此界面上选择电路板上所用的单片机型号(如图 4.4 所示),单击 “确定”。 图 4.3 保存路径界面 图 4.4 选择电路板上所用的单片机型号界面 设置完成后, 软件会提示是否将 8051上电初始化程序添加入工程。 这个一般选 “否 这样就建立好了一个空的 51 工程(如图 4.5所示) 图 4.5 建立空的 51 工程界面 点击 File-New,便建立了一个空的文本框(如图
41、4.6 所示) 图 4.6 建立空文本框界面 到现在为止,就可以开始在里面输入代码了。保存时注意:如果是用 C 语言写的程 序,则将文本保存成 *.c (如图 4.7 所示)。 图 4.7 保存文本改写界面 将写完的程序添加到工程里面, 如图 4.8 所示,在左边 Project Workspace里的 Source Group 1 上右击,选择 Add Files to Group Source Gr。ou在p 打1 开的对话框中,选择刚存 的文件路径和对应的扩展名。此时,程序就添加进了这个工程。 图 4.8 添加工程界面 T。ar出ge现t 1如图” 4.9 所示对话 确定 ”。现在再点击
42、重新编译, 图 4.9 生成 HEX 文件界面 下一步,就开始编译刚输入进去的代码。接着, Keil 会打出下面的提示: 0 Error(s), 0 Warning(s). 建立工程的时候, 默认是不生成 HEX 文件的,得在编译做如下设置: 在 Project Workspace里 Target 1上右击,选择 “ Options for Target 框,选择 “Output按”图示,将箭头所指的多选框勾上,点 就会在工程所在文件夹里生成 HEX 文件7 8 软件设计系统主程序流程图如图 4.10 所示 5 系统的总体调试 5.1 “0”点的整定 由单片机的定时程序在引脚产生 1.5ms高
43、电平, 20ms 的低电平的信号。在用十字螺 丝刀调节伺服电机马达上的电位器, 使伺服电机在该脉冲下正好处于停止, 就玩成了调试。 5.2 程序的调试 通过软件检查出程序中出现了许多的问题。 经过多次的模块子程序的修改, 一步一步 的完善程序,来解决出现的问题。在软件的调试过程中主要遇到的问题如下: (1) 在测试中遇到小车遇到黑线电机不动 . 解决:电路偶而的不稳定, 需要查看哪里接触不良, 光线的强暗是否符合传感器的条 件。 (2) 输入程序后,小车循迹不灵敏,还有就是当拐弯度数过大,小车速度过快的时候, 小车偶尔偏离轨道。 解决:调节脉冲的占空比来调节 (3) 不能准确的旋转 180 度
44、 解决:使用爪子前端的传感器, 当小车在不同位置的时候, 旋转 180 度扫过黑线的次 数也不同,根据具体的情况,就可以十几程序,准确的旋转180 度了 结论 本课题研究的内容主要是小车的循迹系统。取得了以下成果: (1) 小车可以实现按照预定轨道在无外部环境影响或改变时,小车将一直沿着黑色标 记线运动。并且能进行前后,左右的行走。 (3)小车保留了扩展功能。循迹小车在完成设计预想的前提下,主要考虑了车体结构 设计的简单化,降低了制作成本,使之更具有普及性。由于设计要求并不复杂,没有在电 路中增加冗余的功能, 但是保留了各种硬件接口和软件子程序接口, 方便以后的扩展和进 一步的开发。 循迹小车
45、属于应用开发项目, 涉及了多种学科, 由于本课题的试验性和不完善性。 循 迹小车在以下两个方面还有提升的空间: (1)环境信息采集功能:环境信息采集的实时性和完整性。 (2) 增加避障控制功能:包括避障的精确性和灵活度这两个指标。 致谢 在论文完成之际, 谨向周伟老师致以最诚挚的感谢。 本文的研究工作从始至终都得到 了周老师的热心指导和关心。 从周老师的身上, 我不但学到了老师在课上传授的专业知识, 而且也学到了怎样自学,更学到了许多做人的道理。所谓 “送人一鱼,仅供一饭之需;而 授之以渔,则终生受用无穷。 ” 感谢学长们的指导, 是他们耐心的讲解, 让我明白了制作毕业论文的思路和方法, 在
46、最后还给我提出了许多宝贵的建议让我毕业设计的整个过程少走了很多弯路, 让我的论文 得以顺利完成。 感谢家人,他们的支持和理解,让我能够安心完成毕业设计,是我最坚强的后盾。 最后感谢在百忙之中抽出时间评阅论文的各位老师和学者。 由于知识水平有限, 错误 在所难免,恳请各位老师批评指正。 谢谢大家! 参考文献 1 罗志增,蒋静坪编著 .循迹小车感觉与多信息融合 M. 北京:机械工业出版社 ,2003:1-10. 2 蔡自兴编著 . 中国的智能循迹小车研究 J. 莆田学院学报 , 2002,9 (3):36-39. 3 吴林编著 . 智能循迹小车主题型号工作的回顾 J. 循迹小车技术与应用, 200
47、1:6-9. 4 欧青立 ,何刻忠等编著 .室外智能循迹小车的发展及其关键技术研究J. 循迹小车, 2000,22(6):519-526 5 杨鹃 .多信息融合技术在移动循迹小车避障系统中的应用D. 哈尔滨:哈尔滨理工大 学.2007. 6 陈晓莉,张俊涛 KEIL C51 单片机仿真器的设计 . 第二版 . 陕西科技大学出版社, 2006:1920 7 杨素行编著模拟电子技术基础简明教程第 2 版.高等教育出版社, 2005:532-547 8 余孟尝编著数字电子技术基础简明教程 . 第 2 版. 高等教育出版社 . 1999:1-361 附录 程序代码 /智能循迹小车的 #C 程序/ #i
48、nclude while(!TF0); unsigned char m,h,i,c; TF0=0; void delayl() sbit r=P10; sbit l=P11; void lz() TH0=(65536-2000)/256; sbit qz=P35; TL0=(65536-2000)%256; sbit qzx=P34; TH0=(65536-1200)/256; TR0=1; sbit qy=P33; TL0=(65536-1200)%256; while(!TF0); TR0=1; TF0=0; sbit hy=P21; while(!TF0); sbit hzx=P22;
49、TF0=0; void delayd() sbit hz=P23; sbit u1=P32; void rz() TH0=(65536-20000)/256; TL0=(65536-20000)%256; void rm() TH0=(65536-1800)/256; TR0=1; TL0=(65536-1800)%256; while(!TF0); TH0=(65536-1400)/256; TR0=1; TF0=0; TL0=(65536-1400)%256; while(!TF0); TR0=1; TF0=0; void stoptime() while(!TF0); TF0=0; vo
50、id delayr() void lm() TH0=(65536-1000)/256; TL0=(65536-1000)%256; TH0=(65536-1600)/256; TR0=1; TH0=(65536-1500)/256; TL0=(65536-1600)%+256; while(!TF0); TL0=(65536-1500)%256; TR0=1; TF0=0; TR0=1; while(!TF0); TF0=0; void zhizou() r=1; delayr(); r=0; delayd(); l=1; delayl(); l=0; delayd(); void left(
51、) r=1; delayr(); r=0; delayd(); l=1; delayr(); l=0; delayd(); void right() r=1; delayl(); r=0; delayd(); l=1; delayl(); l=0; delayd(); void stop() r=1; stoptime(); r=0; delayd(); l=1; stoptime(); l=0; delayd(); void houtui() r=1; delayl(); r=0; delayd(); l=1; delayr(); l=0; delayd(); r=1; delayr();
52、r=0; delayd(); l=1; lm(); l=0; delayd(); void yt() r=1; rm(); r=0; delayd(); l=1; delayl(); l=0; delayd(); void hyt() r=1; lm(); r=0; delayd(); l=1; delayr(); l=0; void zt() delayd(); case 0 x08:right();break; case 0 x18:yt();break; case 0 x02: hzt();break; void hzt() case 0 x20:left();break; case 0
53、 x00: houtui();break; case 0 x10:zhizou();break; case 0 x06: left();break; r=1; case 0 x30:zt();break; case 0 x08: hyt();break; delayl(); default:break; case 0 x0c: right();break; r=0; default:break; delayd(); l=1; while(m!=0 x38); rm(); while(h!=0 x0a); l=0; void s1() delayd(); xunxian(); / 巡 线 voi
54、d zhuanwan180() for(i=0;i10;i+)/直走 void wkzc() for(i=0;i10;i+) zhizou(); right(); for(i=0;i15;i+) while(u1!=0) xunxian(); / 巡线 zhizou(); right(); for(i=0;i9;i+) / 直走 do for(i=0;i3;i+) right(); zhizou(); m=P3 switch(m) void xunxian() void htxunxian() case 0 x08:right();break; do case 0 x18:yt();break
55、; do case 0 x20:left();break; m=P3 case 0 x10:zhizou();break; switch(m) h=P2 case 0 x30:zt();break; switch(h) case 0 x28:zhizou();break; default:break; while(m!=0 x00); stop();stop(); for(c=0;c3;c+) houtui(); htxunxian(); for(c=0;c5;c+) houtui(); void hqd() for(c=0;c6;c+) zhizou(); xunxian(); for(c=
56、0;c28;c+) zhizou(); stop(); while(1); void s2() for(i=0;i8;i+) zhizou(); do m=P3 switch(m) case 0 x08:right();break; case 0 x18:yt();break; case 0 x20:left();break; case 0 x10:zhizou();break; case 0 x30:zt();break; case 0 x28:zhizou();break; case 0 x00:zhizou();break; default:break; while(u1!=0); st
57、op();stop();stop();stop(); for(i=0;i12;i+) houtui(); zhuanwan180(); do m=P3 switch(m) case 0 x08:right();break; case 0 x18:yt();break; case 0 x20:left();break; case 0 x10:zhizou();break; case 0 x30:zt();break; case 0 x28:zhizou();break; case 0 x00:zhizou();break; default:break; while(m!=0 x38); for(
58、i=0;i10;i+) zhizou(); void s2ae() for(i=0;i10;i+) zhizou(); do m=P3 switch(m) case 0 x08:right();break; case 0 x18:yt();break; case 0 x20:left();break; case 0 x10:zhizou();break; case 0 x30:zt();break; case 0 x28:zhizou();break; case 0 x00:zhizou();break; default:break; while(u1!=0); stop(); for(i=0;i12;i+) houtui(); zhuanwan180(); do m=P3 case 0 x10:zhizou();break; switch(m) case 0 x30:zt();break; case 0 x28:zhizou();break; while(m!=0 x00) ca
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026校招:财务面试题及答案
- 2026校招:TCL科技笔试题及答案
- 2026小米招聘试题及答案
- 餐厅消防安全培训课件
- 餐厅案例分享培训
- 《医学遗传学》期末考试试卷附答案
- 2025年公务员考试(时事热点)考前冲刺试题及答案
- 物资管理职责分工管理规定
- 飞来酷聊课件
- 2026年不动产继承权委托合同
- 2026湖南衡阳日报社招聘事业单位人员16人备考题库完整答案详解
- 2026年广东省事业单位集中公开招聘高校毕业生11066名参考考试试题及答案解析
- 孕产妇血液管理专家共识贫血管理2026
- 2026年1月浙江首考英语真题(解析版)
- 2026北京资产管理有限公司业务总监招聘1人笔试参考题库及答案解析
- 《中华人民共和国危险化学品安全法》全套解读
- 2025产品数字护照(DPP)技术发展报告
- 安全管理规程的建模规划
- AI情绪辅导与放松音乐创新创业项目商业计划书
- 鼻咽喉镜的NBI技术
- 诊所医保审批管理制度
评论
0/150
提交评论