毕业论文-基于单片机的电动小汽车的控制12412.doc_第1页
毕业论文-基于单片机的电动小汽车的控制12412.doc_第2页
毕业论文-基于单片机的电动小汽车的控制12412.doc_第3页
毕业论文-基于单片机的电动小汽车的控制12412.doc_第4页
毕业论文-基于单片机的电动小汽车的控制12412.doc_第5页
免费预览已结束,剩余75页可下载查看

下载本文档

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

文档简介

目 录 第 1 章 绪 论 .1 1.1 课 题 背 景 .1 1.2 国 内 外 智 能 车 辆 研 究 现 状 .1 1.2.1 国外智能车辆研究现状 1 1.2.2 国内智能车辆研究现状 3 1.3 课 题 主 要 工 作 内 容 3 1.3.1 手动控制功能 4 1.3.2 超声波避障功能 4 1.4 本 章 小 结 .4 第 2 章 系 统 总 体 设 计 5 2.1 系 统 设 计 思 路 5 2.2 系 统 硬 件 设 计 5 2.2.1 系统功能模块的划分 5 2.2.2 单片机数目的选定 6 2.2.3 系统原理框图 6 2.3 系 统 软 件 设 计 7 2.3.1 软件分层结构 7 2.3.2 多任务结构 7 2.3.3 消息驱动结构 9 2.4 本 章 小 结 .10 第 3 章 芯 片 简 介 .11 3.1 at89c52 单 片 机 11 3.1.1 mcs-51 单片机简介 11 3.1.2 at89c52 单片机 11 3.1.3 at89c52 引脚说明 13 3.2 遥 控 模 块 编 解 码 芯 片 .15 3.2.1 红外遥控编解码标准简介 15 3.2.2 编解码芯片的选型 16 3.2.3 tx-2/rx-2 编解码芯片 17 3.3 电 机 驱 动 芯 片 20 3.3.1 步进电机驱动芯片 20 3.3.2 直流电机驱动芯片 22 3.4 本 章 小 结 .24 第 4 章 硬 件 电 路 设 计 25 4.1 单 片 机 系 统 设 计 25 4.1.1 单片机复位电路 25 4.1.2 单片机时钟电路 25 4.2 红 外 遥 控 模 块 的 设 计 .26 4.2.1 红外遥控原理 26 4.2.2 遥控发射电路 27 4.2.3 遥控接收电路 28 4.3 显 示 模 块 的 设 计 28 4.4 声 音 提 示 功 能 的 设 计 .29 4.5 前 轮 转 向 模 块 的 设 计 .29 4.5.1 步进电机控制原理 29 4.5.2 前轮转向的机械结构设计 30 4.5.3 前轮转向中点校准功能的设计 31 4.5.4 前轮转向模块电路图 31 4.5.5 前轮转向任务的软件设计 32 4.6 后 轮 驱 动 模 块 的 设 计 .32 4.6.1 直流电机控制原理 32 4.6.2 直流电机电路图 32 4.7 超 声 测 障 模 块 的 设 计 .33 4.7.1 超声波测障原理 33 4.7.2 超声波发射电路 34 4.7.3 超声波接收电路 35 4.7.4 超声波测障模块的软件的设计 35 4.8 单 片 机 通 信 模 块 的 设 计 .35 4.8.1 单片机通信方式的选型 35 4.8.2 单片机通信的软件设计 36 4.9 本 章 小 结 .37 第 5 章 软 件 系 统 设 计 38 5.1 程 序 流 程 图 .38 5.2 程 序 编 写 .41 5.2.1 编程语言介绍 41 5.2.2 编写源程序 42 5.3 本 章 小 结 .42 第 6 章 结 论 .43 基 于 单 片 机 的 电 动 小 汽 车 的 控 制 摘 要 本 课 题 为 基 于 单 片 机 的 电 动 小 汽 车 的 控 制 , 主 要 功 能 是 实 现 对 小 汽 车 的 智 能 控 制 。 本 设 计 采 用 2 片 at89c52 单 片 机 构 成 智 能 控 制 系 统 的 核 心 , 主 从 单 片 机 之 间 采 用 串 行 口 进 行 通 信 , 共 同 实 现 对 小 汽 车 的 各 种 控 制 。 系 统 硬 件 功 能 部 分 由 各 个 独 立 的 功 能 模 块 分 工 完 成 , 这 种 功 能 控 制 模 块 的 划 分 很 好 地 提 高 了 系 统 的 可 靠 性 与 可 维 护 性 , 使 得 整 个 系 统 从 整 体 上 来 看 层 次 分 明 , 更 加 结 构 化 与 立 体 化 。 其 中 , 红 外 遥 控 部 分 采 用 遥 控 车 模 专 用 的 编 、 解 码 芯 片 tx-2/rx-2, 提 高 了 控 制 的 可 靠 性 ; 电 机 驱 动 部 分 采 用 直 流 电 机 驱 动 小 汽 车 行 进 , 采 用 步 进 电 机 实 现 对 小 汽 车 转 向 的 精 确 控 制 , 在 直 流 电 机 驱 动 芯 片 中 加 入 脉 冲 宽 度 调 制 ( pwm) 技 术 可 对 小 汽 车 的 行 进 速 度 进 行 调 节 ; 采 用 超 声 波 传 感 器 进 行 障 碍 识 别 , 在 小 车 行 进 过 程 中 检 测 到 障 碍 物 时 将 障 碍 信 号 反 馈 给 从 单 片 机 , 由 单 片 机 发 出 相 应 的 控 制 信 号 。 本 设 计 中 的 智 能 控 制 小 车 由 小 汽 车 本 体 与 遥 控 器 两 部 分 组 成 , 遥 控 器 上 使 用 了 自 制 的 前 、 后 、 左 、 右 四 方 向 摇 杆 开 关 和 电 源 开 关 5 个 功 能 开 关 , 操 作 简 便 , 小 车 上 提 供 了 由 发 光 二 极 管 和 蜂 鸣 器 组 成 的 声 光 提 示 系 统 , 使 得 小 汽 车 行 进 过 程 中 的 各 种 信 息 一 目 了 然 , 操 作 界 面 非 常 友 好 。 本 次 设 计 基 于 完 备 的 软 硬 件 系 统 , 很 好 的 实 现 了 小 车 的 启 动 停 止 、 直 线 行 驶 、 曲 线 行 驶 、 超 声 波 测 距 避 障 等 功 能 。 关 键 词 : at89c52 单 片 机 ; 红 外 遥 控 ; 步 进 电 机 ; 直 流 电 机 ; 脉 冲 宽 度 调 制 ; 超 声 波 传 感 器 microcontroller-based control of electric carson abstract this topic is microcontroller-based control of electric cars, the main function is to achieve intelligent control of the car. this design used two at89c52 microcontroller constitute the core of the intelligent control system, two single-chip used serial port to communicate, together to achieve a variety control of the car. system hardware functions by the completion of the division of individual functional modules, this function control module framing improve system reliability and maintainability, makes the whole system structured from the whole, more structured and three-dimensional. among them, the part of infrared remote used remote control car models dedicated encoder and decoder chip tx-2/rx-2, improved the reliability of the control; the part of motor drive used dc motor drive the cars traveling, used stepping motor to achieve precise control of the car steering, add a pulse width modulation (pwm) technology to dc motor driver chip can adjust the traveling speed of the car; used ultrasonic sensors identify obstacles, when an obstacle is detected in the process of moving of the car, make obstacles signal back to the vice microcontroller, the microcontroller issued appropriate control signals. this design of the intelligent control car composed by the car body and the remote control two parts, the remote control used a homemade four-way rocker switch about front, back, left and right and power switch of five function switch, easy to operate, the car provided sound and light tips by a light emitting diode and a buzzer, makes the cars information in the process of moving at a glance, the user interface is very friendly. this design is based on a complete hardware and software system, achieved cars start and stop, driving straight, curve driving, ultrasonic ranging obstacle avoidance and other functions. keywords:a t89c52-mcu;infrared remote control;stepper motor;dc motor;pwm;ultrasonic sensors 1 第 1 章 绪 论 1.1 课 题 背 景 随着汽车工业的迅速发展,关于汽车的研究也越来越受到人们关注。智能车 辆是当今车辆工程领域研究的前沿,它体现了车辆工程、人工智能、自动控制、 计算机科学等多个学科领域理论技术的交叉和综合应用,是一个集环境感知、规 划决策,自动行驶等功能于一体的综合系统,是未来汽车发展的趋势。在企业生 产技术不断提高、对自动化技术要求不断加深的环境下,智能车辆以及在智能车 辆基础上开发出来的产品已经成为自动化物流运输、柔性生产组织等系统的关键 性设备。随着电子技术、计算机技术和制造技术的飞速发展,很多电子产品越来 越呈现出机电一体化、智能化、小型化等趋势。各种智能化小车在玩具市场中也 占了一个很大的比例,高科技含量的电子互动式玩具已经成为玩具行业发展的主 流。因此,智能小车的设计和研究具有重要的意义并且有很高的市场价值。 1.2 国 内 外 智 能 车 辆 研 究 现 状 智 能 车 辆 是 上 世 纪 提 出 的 一 种 新 型 车 辆 , 由 于 在 军 事 侦 察 、 反 恐 、 防 爆 、 防 核 化 及 污 染 等 危 险 与 恶 劣 环 境 作 用 中 有 着 广 阔 的 应 用 前 景 , 使 其 成 为 一 个 重 要 的 研 究 热 点 , 下 面 是 国 内 外 智 能 车 辆 研 究 的 发 展 情 况 。 1.2.1 国外智能车辆研究现状 国外智能车辆研究的历史比较长,始于上世纪 50 年代,且发展迅速,已取 得了较好的研究成果。 20 世纪 50 年代是智能车辆研究的初始阶段。1954 年美国 barrett electronics 公司研究开发了世界上第一台自主引导车系统 agvs(automated guided vehicle system) 。该系统只是一个运行在固定线路上的拖车式运货平台,但它却具有了 智能车辆最基本得特征即无人驾驶。早期研制 agvs 的目的是为了提高仓库运输 的自动化水平,应用领域仅局限于仓库内的物品运输。随着计算机的应用和传感 技术的发展,智能车辆的研究不断得到新的发展。 20 世纪 80 年代中后期开始,世界主要发达国家对智能车辆开展了卓有成效 2 的研究。在欧洲,普罗米修斯项目于 1986 年开始了在这个领域的探索。在美洲, 美国于 1995 年成立了国家自动高速公路系统联盟(nahsc) ,其目标之一就是研 究发展智能车辆的可能性,并促进智能车辆技术进入实用化。在亚洲,日本于 1996 年成立了高速公路先进巡航/辅助驾驶研究会,主要目的是研究自动车辆导 航的方法,促进日本智能车辆技术的整体进步。进入 80 年代中期,设计和制造 智能车辆的浪潮席卷全世界,一大批世界著名的公司开始研制智能车辆平台。 20 世纪 90 年代开始,智能车辆进入了深入、系统、大规模的研究阶段。最 为突出的是美国卡内基梅隆大学(carnegie mellon university)机器人研究所完成 的 navlab 系列自主车(navlab1navlab10)的研究,取得了显著的成就。 目前,日本、美国、德国等工业大国在智能车辆技术上占据着明显的优势, 新近崛起的韩国在智能小车研究方面也逐渐走向世界前沿。在世界科学界和工业 设计界中,众多研究机构研发的智能车辆中具有代表性的有: 1、德意志联邦大学的研究 1985 年,第一辆 vamors 智能原型车辆在户外高速公路上以 100km/h 的速度 进行了测试,它使用了机器视觉来保证横向和纵向的车辆控制。1988 年,在都灵 的 promrtheus 项目第一次委员会会议上,智能车辆维塔(vita ,7t )进行了 展示,该车可以自动停车、行进,并可以向后车传送相关驾驶信息。这两种车辆 都配备了 ubm 视觉系统,这是一个双目视觉系统,具有极高的稳定性。 2、荷兰鹿特丹港口的研究 荷兰鹿特丹港口对智能车辆的研究主要体现在工厂货物的运输。荷兰的 combi road 系统,采用无人驾驶的车辆来往返运输货物,它行驶的路面上采用了 磁性导航参照物,并利用一个光阵列传感器去探测障碍。荷兰南部目前正在讨论 工业上利用这种系统的问题,政府正考虑已有的高速公路新建一条专用的车道, 采用这种系统将货物从鹿特丹运往各地。 3、日本大阪大学的研究 日本大阪大学 shirai 实验室研制的智能小车,采用了航位推测系统(dead reckoning system) ,利用旋转编码器和电位计来获取智能小车的转向角,完成了 智能小车的精确定位。 此外,斯特拉斯堡实验中心、英国国防部门、美国卡内基梅隆大学、奔驰公 司、美国麻省理工学院、韩国理工大学等对智能车辆也有较多先进的研究成果。 3 1.2.2 国内智能车辆研究现状 相比于国外,我国对智能车辆的研究起步比较晚,开始于 20 世纪 70 年代末, 在国家“863” 、 “973”、 “九五攻关”等高技术发展计划的重点支持下,在智能车 辆的应用、研究方面也取得了较好的发展。我国在智能车辆技术方面的研究总体 上仍落后于发达国家,并且存在一定得技术差距,但是经过 20 多年的不懈努力 与研究,我们也取得了一系列显著的成果。 (1) 中国第一汽车集团公司和国防科技大学机电工程与自动化学院与 2003 年 研制成功我国第一辆自主驾驶轿车。该自主驾驶轿车在正常交通情况下的高速公 路上,行驶的最高稳定速度为 13km/h,最高速度可达 170km/h,并且具有超车功 能,其总体技术性能和指标已经达到世界先进水平。 (2) 南京理工大学、北京理工大学、浙江大学、国防科技大学、清华大学等 多所院校联合研制了 7b.8 军用室外自主车,该车装有彩色摄像机、激光雷达、陀 螺惯导定位等传感器。计算机系统采用两台 sun10 完成信息融合、路径规划,两 台 pc486 完成路边抽取识别和激光信息处理, 8098 单片机完成定位计算和车辆 自动驾驶。其体系结构以水平式结构为主,采用传统的“感知-建模-规划-执行” 算 法,其直线跟踪速度达到 20km/h,避障速度达到 5-10km/h。 智能车辆研究也是智能交通系统 its 的关键技术。目前,国内的许多高校和 科研院所都在进行 its 关键技术、设备的研究。随着 its 研究的兴起,我国已形 成一支 its 技术研究开发的技术专业队伍。并且各交通、汽车企业越来越加大了 对 its 及智能车辆技术研发的投入,整个社会的关注程度在不断提高。交通部已 将 its 研究列入“ 十五” 科技发展计划和 2010 年长期规划。相信经过相关领域的共 同努力,我国 its 及智能车辆的技术水平一定会得到很大提高。 1.3 课 题 主 要 工 作 内 容 本设计研究的是基于单片机的遥控小车系统。以 51 单片机为控制平台,选 择常见的电机模型车为机械平台,通过细化设计要求,结合传感器技术、电机控 制技术、超声波检测技术等相关知识实现小车的各种控制功能。设计完成由红外 发射器发射的红外光对小车进行无线遥控,接收器将接收到的红外光解调成电信 号实现对小车的控制,采用步进电机对小车的转向进行精确的控制,直流电机驱 4 动小车行进,采用超声波传感器来探测障碍,并在检测到障碍物后自动停止。将 上述硬件模块结合软件设计组成多功能智能小车,实现智能控制,达到设计目标。 本 设 计 需 要 完 成 以 下 几 项 功 能 : (1) 红 外 遥 控 功 能 , 实 现 小 车 启 动 、 停 止 ; (2) 前 或 后 直 线 行 进 ; (3) 任意曲 线 行 进 ; (4) 指 示 灯 指 示 小 车 状 态 ; (5) 超声波测障功能; (6) 遇障报警功能。 1.3.1 手动控制功能 手动控制模式能够实现小车的前进、后退、作转、右转、停止等功能,小车 行驶过程中越到障碍能够实现自动停止并发出声光报警信号。同时,在转弯和后 退时相应的转向灯和倒车灯回发光,提示小车状态。小车接收到一个按键命令后 除执行相应的动作外蜂鸣器还会响一声,以告知操作者小车已接收到了命令。 1.3.2 超声波避障功能 小车在前进过程中如发现前方有障碍,或在后退过程中发现后方有障碍物时 小车都能够实现自动停车,并发出声光报警信号告知操作者。本设计中将障碍物 检测距离设置为 20 厘米,即 20 厘米之内的障碍物才会让小车发出上述动作,这 个范围之外的障碍小车不予处理。 1.4 本 章 小 结 本章主要介绍了本设计的选题背景,国内外智能小车的研究现状,阐述了设 计的主要工作内容,指出了课题研究的难点与重点。 5 第 2 章 系 统 总 体 设 计 2.1 系 统 设 计 思 路 本 设 计 以 at89c52 单 片 机 作 为 控 制 系 统 的 核 心 实 现 对 电 动 小 车 行 驶 过 程 的 控 制 , 无 线 遥 控 采 用 红 外 遥 控 技 术 , 制 作 红 外 发 射 与 接 收 模 块 , 通 过 遥 控 命 令 控 制 小 车 的 前 进 、 后 退 、 左 转 、 右 转 、 停 止 等 动 作 , 通 过 直 流 电 机 驱 动 小 车 的 行 进 , 通 过 步 进 电 机 控 制 小 车 的 转 向 , 并 配 合 超 声 波 测 障 模 块 , 实 现 小 车 的 测 障 报 警 功 能 。 在手动遥控模式下,可以实现小车的前进、后退、左转、右转、停止等功能, 若在前进过程中前方遇到障碍或是后退过程中后方遇到障碍小车都将自动停止, 并发出声光警告信号。同时,在转弯或后退时小车相应的转向灯和倒车灯会闪烁 发光,小车接收到一个按键命令后除了执行相应的动作外蜂鸣器还会响一声,以 告知操作者收到了命令。 2.2 系 统 硬 件 设 计 2.2.1 系统功能模块的划分 系统的需求确定之后就需要对系统进行整体的分析和设计。功能模块化是将 系统划分成若干个功能模块,每个功能模块完成了一个子功能,再把这些功能模 块总起来组成一个整体,以实现系统要求的整个的功能。功能模块独立性是通过 制定具有单一功能并且和其他功能模块没有过多联系的功能模块来实现的。每个 功能模块只涉及该系统要求的一个具体子功能,而且与系统结构的其他部分的接 口是简单的。独立的功能模块也比较容易测试和维护,限制了功能模块之间由于 联系紧密而引起的修改副作用。 按照设计要求,系统分为以下几个基本功能模块:红外遥控模块、显示模块、 前轮驱动模块、后轮驱动模块、超声波测距避障模块等。其中有些模块的功能由 硬件完成,有些模块的功能由软、硬件配合完成,些模块的功能则由软件、硬件、 机械三部分共同完成。 将系统拆分为上述基本功能模块后,再根据各个模块所要实现的功能分别去 6 设计,细化设计工作,按照“逐步求精”的思想完成系统设计。 2.2.2 单片机数目的选定 由 于 系 统 需 要 完 成 的 功 能 较 多 , cpu 的 负 荷 也 较 重 , 再 加 之 单 片 机 内 的 定 时 器 /计 数 器 、 中 断 、 i/o 口 等 资 源 有 限 , 如 果 选 用 一 片 单 片 机 必 将 会 给 系 统 的 设 计 带 来 一 些 困 难 。 所 以 可 以 考 虑 采 用 两 个 单 片 机 构 成 主 从 式 的 结 构 , 各 分 担 一 部 分 控 制 与 运 算 功 能 , 这 样 两 个 单 片 机 可 同 时 工 作 。 所 谓 主 从 式 结 构 是 指 从 单 片 机 根 据 主 单 片 机 发 出 的 命 令 来 完 成 某 项 功 能 , 并 且 把 结 果 报 告 给 主 单 片 机 , 这 样 的 结 构 在 某 种 程 度 上 可 以 简 化 系 统 。 主 单 片 机 主 要 负 责 红 外 遥 控 接 收 、 显 示 、 小 车 的 运 动 以 及 处 理 遥 控 命 令 等 功 能 ; 从 单 片 机 主 要 负 责 超 声 波 测 障 功 能 , 在 探 测 到 障 碍 物 时 将 有 关 信 息 报 告 给 主 单 片 机 进 行 处 理 , 并 由 主 单 片 机 采 取 相 应 的 措 施 。 本 设 计 中 采 用 两 片 at89c52 单 片 机 , 通 过 串 行 接 口 通 信 。 2.2.3 系统原理框图 系 统 原 理 框 图 如 图 2.1 所 示 : 按键 遥控发射 遥控接收 显示模块 主单片机 前轮转向 后轮驱动 从单片机 超声探测障碍 图 2.1 系 统 原 理 框 图 2.3 系 统 软 件 设 计 7 软件在一个智能系统中扮演着举足轻重的作用,软件设计的好坏直接关系着 整个系统的性能。目前已经有很多种嵌入式实时多任务操作系统,如: linux、 rtx51、uc/uo 等,可以更有效的利用系统的各种资源,简化变成,缩 短开发周期。本设计采用 at89c52 单 片 机 作 为 系 统 控 制 核 心 , 单 片 机 本 身 的 各 种 资 源 都 有 限 , 所 以 考 虑 直 接 优 化 系 统 的 软 件 结 构 , 对系统中各独立的功 能模块编写独立的软件程序,通过给外部提供了一些接口函数,来实现对其硬件 及机械部件等的高级操作,达到“多任务“、 ”实时性“等的要求。 2.3.1 软件分层结构 为了便于编程,将软件逻辑控制层和相应的硬件设备分开是很有必要的,硬 件驱动层的软件负载直接操作硬件,并且给上层的软件提供一定的接口,这样有 助于上层的软件实现更复杂的功能,并且系统的硬件有所改动时也只需改动相应 的驱动模块即可。 本设计中的前轮转向模块、后轮驱动模块、显示模块等都做成了一些独立的 模块,并且给外部提供了一些接口函数,来实现对这些硬件设备或机械部件的高 级操作。 分层结构示意图如图 2.2 所示。 逻辑控制层 硬件驱动层 硬件设备 置、取全局变量 操作硬件 2.3.2 多任务结构 传统的单片机程序一般采用单任务机制,单任务系统具有简单直观、易于控 制的优点。但是程序只能按照顺序依次执行,缺乏灵活性,中断函数能够实时地 处理一些较短的任务,在复杂的应用中使用极为不便。多 任 务 操 作 系 统 内 部 允 许 图 2.2 软件分层结构示意图 8 多 个 任 务 同 时 运 行 , 较 单 任 务 操 作 系 统 更 加 灵 活 有 效 。 为 了 充 分 利 用 单 片 机 的 cpu、 内 存 等 资 源 , 本 设 计 采 用 多 任 务 软 件 结 构 , 即 从 宏 观 上 来 看 单 片 机 同 时 在 做 多 件 事 情 。 分 析 一 般 多 任 务 系 统 的 软 件 结 构 , 系 统 的 核 心 是 任 务 调 度 器 , 在 适 当 的 时 候 任 务 调 度 器 将 保 存 当 前 任 务 的 现 场 , 并 且 恢 复 将 要 运 行 的 任 务 的 现 场 , 并 让 其 投 入 运 行 。 简 单 的 说 , 一 般 的 多 任 务 系 统 是 任 务 调 度 器 循 环 的 调 用 各 个 需 要 执 行 的 任 务 , 更 有 效 的 利 用 系 统 的 各 种 资 源 。 本 设 计 中 采 用 定 时 器 每 隔 一 定 的 时 间 中 断 一 次 , 在 中 断 处 理 函 数 中 依 次 调 用 各 个 任 务 所 对 应 的 函 数 , 并 且 各 个 函 数 都 能 在 一 个 较 短 的 时 间 内 返 回 , 这 样 在 某 段 时 间 内 , 各 个 任 务 所 对 应 的 函 数 都 能 够 被 执 行 到 , 就 好 像 多 个 任 务 同 时 运 行 了 。 本 系 统 中 软 件 的 多 任 务 结 构 如 图 2.3 所 示 , 定 时 器 中 断 处 理 函 数 就 是 本 设 计 中 多 任 务 的 核 心 , 即 任 务 调 度 器 。 在 主 单 片 机 上 有 以 下 五 个 任 务 : (1) 主 任 务 : main()开 始 的 任 务 , 很 多 功 能 都 要 在 该 任 务 中 完 成 ; (2) 蜂 鸣 器 发 声 任 务 : beep2(), 全 局 变 量 n_beep 表 示 需 要 发 出 几 个 “嘀 ” 声 ; (3) led 显 示 任 务 : led_disp(), led 发 光 二 极 管 显 示 任 务 ; 系 统 复 位 初 始 化 主 任 务 设 计 成 无 限 循 环 结 构 定时器 0 中断 处理函 数 任 务 1 任 务 2 任 务 3 任 务 n 图 2.3 多 任 务 结 构 示 意 图 9 (4) 后 轮 电 机 驱 动 任 务 : qd_dianji(), 实 现 电 机 的 正 、 反 转 和 停 止 功 能 ; (5) 前 轮 转 向 任 务 : zx_dianji(), 控 制 步 进 电 机 让 前 轮 转 到 指 定 的 角 度 。 在 从 单 片 机 上 有 以 下 两 个 任 务 : (1) 前 超 声 测 障 任 务 : chaosheng_qian(), 由 从 单 片 机 的 定 时 器 中 断 处 理 函 数 timer0()每 隔 64 毫 秒 调 用 一 次 ; (2) 后 超 声 测 障 任 务 : chaosheng_hou(), 由 从 单 片 机 的 定 时 器 中 断 处 理 函 数 timer0()每 隔 64 毫 秒 调 用 一 次 , 和 chaosheng_qian()的 调 用 相 差 32 毫 秒 。 2.3.3 消息驱动结构 “消 息 ”是 程 序 运 行 机 制 中 一 个 基 本 而 又 重 要 的 概 念 。 消 息 是 一 个 报 告 事 件 发 生 的 通 知 , 消 息 驱 动 是 围 绕 消 息 的 产 生 与 处 理 展 开 的 , 并 依 靠 消 息 循 环 机 制 来 实 现 。 从 程 序 设 计 的 观 点 来 看 , 某 条 消 息 的 产 生 可 被 视 为 某 个 事 件 的 发 生 。 考虑到系统中无论是操作者按下一个按键,还是遇到障碍物,这些事件都有 一个共同点,就是系统要对这些事件做出相应的处理或采取应用的措施。所以为 了简化编程,让这些事件在主任务中能得到统一的处理,可以给这些事件编上号, 然后由一个消息搜集模块去等待各种消息。一旦某个事件发生,该模块马上给主 任务返回该事件的编号,即消息值,让主任务按照消息值分类去处理消息。 在 消 息 搜 集 模 块 的 头 文 件 中 定 义 了 如 下 若 干 个 消 息 : #define null 0 /按 键 消 息 的 定 义 #define msg_k_qian 0x01 /“前 进 ”按 键 消 息 #define msg_k_hou 0x02 /“后 退 ”按 键 消 息 #define msg_k_zuo 0x03 /“左 转 ”按 键 消 息 #define msg_k_you 0x04 /“右 转 ”按 键 消 息 #define msg_k_ting 0x05 /“停 止 ”按 键 消 息 /超 声 避 障 消 息 #define msg_qianzhang 0x06 /前 方 出 现 障 碍 消 息 #define msg_houzhang 0x07 /后 方 出 现 障 碍 消 息 10 #define msg_noqianzhang 0x08 /前 方 障 碍 消 失 消 息 #define msg_nohouzhang 0x09 /后 方 障 碍 消 失 消 息 extern uchar getmsg(void); extern uchar imgetch(void); 消 息 搜 集 模 块 对 外 提 供 了 两 个 接 口 函 数 : getmsg()函 数 一 直 等 待 到 有 消 息 时 返 回 消 息 值 ; imgetch()函 数 立 即 返 回 按 键 值 , 这 是 为 了 某 些 地 方 使 用 上 的 灵 活 而 设 置 的 。 有 了 这 个 消 息 搜 集 模 块 后 , 主 任 务 执 行 的 大 部 分 时 间 就 会 停 留 在 getmsg()函 数 内 等 待 消 息 , 当 有 按 键 命 令 或 遇 到 障 碍 时 返 回 消 息 值 , 主 任 务 对 其 进 行 相 应 的 处 理 。 2.4 本 章 小 结 本章主要介绍了对系统功能模块的划分,采用两片 at89c52 单 片 机 辅 以 各 种 功 能 模 块 共 同 实 现 小 车 的 各 项 功 能 。 软 件 方 面 通 过 软 件 的 分 层 结 构 将 功 能 实 现 和 具 体 的 硬 件 分 离 开 , 采 用 多 任 务 结 构 和 消 息 驱 动 结 构 对 后 续 的 软 件 设 计 带 来 极 大 的 便 利 。 11 第 3 章 芯 片 简 介 3.1 at89c52 单 片 机 3.1.1 mcs-51 单片机简介 mcs-51 单片机是美国 intel 公司于 1980 年推出的一系列单片机的总称, 如 8031,8051,8751,8032,8052,8752 等,其中 8051 是最早最典型的产品, 该系列其它单片机都是在 8051 的基础上进行功能的增、减、改变而来的,所以 人们习惯于用 8051 来称呼 mcs51 系列单片机。与 mcs-48 单片机相比, mcs51 的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指 令,指令数达 111 条,mcs-51 单片机可以算是相当成功的产品,一直到现在, mcs-51 系列和其兼容的单片机仍是应用的主流产品。mcs-51 以其典型的结构和 完善的总线专用寄存器的集中管理,众多的逻辑位操作功能及面向控制的丰富的 指令系统,堪称为一代“ 名机 ”,为以后的其它单片机的发展奠定了基础。 mcs-51 单 片 机 的 基 本 结 构 如 图 3.1 所 示 : 3.1.2 at89c52 单片机 在 众 多 的 单 片 机 系 列 中 , at89c52 是 一 种 低 功 耗 、 高 性 能 cmos 8 位 时钟电路 rom ram 定时器/计数器 cpu 并行接口 串行接口 中断系统 txd rxd int0 int1p0p3 t0 t1 图 3.1 8051 单 片 机 的 基 本 结 构 12 微 控 制 器 , 具 有 8k byte 可 编 程 flash 存 储 器 , 使 用 atmel 公 司 高 密 度 非 易 失 性 存 储 器 技 术 制 造 , 与 工 业 80c51 产 品 指 令 和 引 脚 完 全 兼 容 。 片 上 flash 允 许 程 序 存 储 器 在 系 统 可 编 程 , 也 适 用 于 常 规 编 程 。 在 单 芯 片 上 , 拥 有 灵 巧 的 8 位 cpu 和 在 系 统 可 编 程 flash, 使 得 at89c52 为 众 多 嵌 入 式 控 制 应 用 系 统 提 供 高 灵 活 、 超 高 效 的 解 决 方 案 。 其 基 本 结 构 包 括 : (1) 8 位 cpu; (2) 片 内 震 荡 器 及 时 钟 电 路 ; (3) 32 根 i/o 口 线 ; (4) 2 个 16 位 定 时 器 /计 数 器 ; (5) 5 个 中 断 源 , 2 个 中 断 优 先 级 ; (6) 64k 外部数据存储器地址空间; (7) 64k 外部程序存储器地址空间; (8) 2 个专用寄存器; (8) 全 双 工 串 行 口 ; (10) 布 尔 处 理 器 。 80c51 系列单片机包含中央处理器(cpu)、数据存储器(ram)、程序存储器 (rom)、定时器/计数器、并行接口、串行接口和中断控制系统等几大单元及数据 总线、地址总线和控制总线等三大总线,现在我们分别加以说明: (1) 中 央 处 理 器 : 中央处理器(cpu)是整个单片机的核心部件,是 8 位数据 宽度的处理器,能处理 8 位二进制数据或代码,cpu 负责控制、指挥和调度整个 单元系统协调的工作,完成运算和控制输入输出功能等操作。 (2) 数据存储器 :80c51 芯片中共有 256 个 ram 单元,它们是统一编址的, 但其中高 128 单元被专用寄存器占用,专用寄存器只能用于存放控制指令数据, 用户只能访问,而不能用于存放用户数据,能作为寄存器,供用户使用的只是低 128 单元,用于存放可读写的数据、运算的中间结果或用户定义的字型表。因此 通常所说的内部数据存储器就是指低 128 单元,简称内部 ram。 (3) 程序存储器:80c51 共有 4kb 掩膜 rom,用于存放用户程序,原始数 据或表格。因此称之为程序存储器,简称内部 rom。 (4) 定时器/计数器:80c51 共有两个 16 位的定时器 /计数器,以实现定时或 13 计数功能,并以其定时或计数结果对计算机进行控制。 (5) 并行输入输出口:80c51 共有 4 个 8 位的 i/o 口(p0、 p1、p2 或 p3), 以实现数据的并行输入/输出。 (6) 全双工串行口: 80c51 内置一个全双工串行通信口,以实现单片机和其 他设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发 器使用,也可作为同步移位器使用。 (7) 中断控制系统: 80c51 单片机的中断功能较强,两个外中断、两个定时 器/计数器中断和一个串行中断,可满足不同的控制要求,并具有 2 级的优先级别 选择。 (8) 时钟电路: 80c51 芯片的内部有时钟电路,但石英晶体和微调电容需外 接。时钟电路为单片机产生时钟脉冲序列。系统允许的最高晶振频率为 12mhz。 3.1.3 at89c52 引脚说明 at89c52 是 标 准 的 40 引 脚 双 列 直 插 式 集 成 电 路 芯 片 , 其 引 脚 排 列 如 图 3.2 所 示 。 evp1xlrsdwinog 图 3.2 at89c52 外部引脚图 40 个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4 组 8 位 共 32 个 i/o 口,中断口线与 p3 口线复用。现在我们对这些引脚的功能加以说明: 14 (1) 主电源引脚 vss 和 vcc vss:接地。 vcc:正常操作时接+5v 电源。 (2) 外接晶振引脚 xtal1 和 xtal2 xtal1:内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当 采用外部振荡器时,此引脚接地。 xtal2:内部振荡电路反相放大器的输出端。是外接晶体的另一端。当采 用外部振荡器时,此引脚接外部振荡源。 (3) 控制或与其它电源复用引脚 rst/vpd,ale/prog,ea/vpp,psen rst:复位信号。当输入的复位信号延续 2 个机器周期以上的高电平时即 为有效,用以完成单片机的复位初始化操作。 vpd:在 vcc 掉电期间,由 vpd 向内部提供备用电源,以保持内部 ram 中 的数据。 ale:地址锁存允许控制信号。正常操作时 ale 用于控制把 p0 口输出的 低 8 位地址送锁存器锁存起来,以实现低位地址和数据的隔离,此外,由于 ale 是以晶振 1/6 的固定频率周期性地发出正脉冲信号,因此,可作为外部时钟或外 部定时脉冲使用,但要注意,每当访问外部数据存储器时,将跳过一个 ale 脉 冲,ale 端可以驱动 8 个 lsttl 电路。 prog:片内有 eprom 的芯片,在 eprom 编程期间,此引脚输入编程脉 冲。 ea:访问程序存储器控制信号。当 ea 信号为低电平时,对 rom 的读操 作限定在外部程序存储器;当 ea 信号为高电平时,对 rom 的读操作是从内部 程序存储器开始,并可延至外部程序存储器。 vpp:内部程序存储器和外部程序存储器选择端。当 vpp 为高电平时,访问 内部程序存储器,当 vpp 为低电平时,则访问外部程序存储器。 psen:外部程序存储器读选通信号。在读外部 rom 时,psen 有效( 低 电平) ,以实现外部 rom 单元的读操作。 15 (4) i/o 引脚 p0、p1、p2 、 p3 at89c52 共有 4 个 8 位并行 i/o 端口:p0、p1、p2、p3 口,共 32 个引 脚,其中 p3 口还具有第二功能。 p0 口(p0.0p0.7)是一个 8 位漏极开路型双向 i/o 口,在访问外部存储 器时,它是分时传送的低字节地址和数据总线,p0 口能以吸收电流的方式驱动 8 个 lsttl 负载。 p1 口(p1.0p1.7)是一个带有内部提升电阻的 8 位准双向 i/o 口,能驱 动(吸收或输出电流)4 个 lsttl 负载。 p2 口(p2.0p2.7)是一个带有内部提升电阻的 8 位准双向 i/o 口,在访 问外部存储器时,它输出高 8 位地址,能驱动(吸收或输出电流)4 个 lsttl 负载。 p1.0 和 p1.1 还可分别作为定时 /计数器 2 的外部计数输入(p1.0/t2) 和输出 (p1.1/t2ex),如表 3-1 所示。 表 3-1 p1.0、p1.1 口引脚第二功能 引脚号 功能特性 p1.0 t2(定时/计数器 2 外部计数脉冲输入),时钟输出 p1.1 t2ex 定时/计数 2 捕获/重装载触发和方向控制 p3 口(p3.0 - p3.7 )是一个带有内部提升电阻的 8 位准双向 i/o 口,能驱 动(吸收或输出电流)4 个 lsttl 负载。 p3 口除了作为一般的 i/o 口外,更重要的是它的第二功能,如表 3-2 所示。 表 3-2 p3 口引脚第二功能 引脚号 第二功能 p3.0 rxd(串行输入) p3.1 txd(串行输出) p3.2 int0(外部中断 0) p3.3 int1(外部中断 1) p3.4 t0(定时器 0 外部输入) 16 p3.5 t1(定时器 1 外部输入) p3.6 wr(外部数据存储器写选通) p3.7 rd(外部数据存储器读选通) 3.2 遥 控 模 块 编 解 码 芯 片 3.2.1 红外遥控编解码标准简介 红 外 通 信 的 基 本 原 理 是 发 送 端 将 基 带 二 进 制 信 号 调 制 成 一 系 列 的 脉 冲 串 信 号 , 通 过 红 外 发 射 管 发 射 红 外 信 号 。 常 用 的 红 外 通 信 方 式 主 要 有 通 过 脉 冲 宽 度 来 实 现 信 号 调 制 的 脉 宽 调 制 (pwm)和 通 过 脉 冲 串 之 间 的 时 间 间 隔 来 实 现 信 号 调 制 的 脉 时 调 制 (ppm)两 种 方 法 。 这 两 种 形 式 编 码 的 代 表 分 别 为 nec 和 philips 的 rc-5、 rc-6 及 rc-7。 红 外 遥 控 常 用 的 载 波 频 率 为 38khz, 这 是 由 发 射 端 编 码 芯 片 所 使 用 的 455khz 晶 振 来 决 定 的 。 也 有 一 些 遥 控 系 统 采 用 36khz、 40khz、 56khz 等 。 1.nce 编码标准 此 标 准 下 的 发 射 端 所 发 射 的 一 帧 码 含 有 一 个 引 导 码 、 8 位 用 户 码 、 8 位 用 户 反 码 、 8 位 键 数 据 码 和 8 位 键 数 据 反 码 。 引 导 码 由 一 个 9ms 的 高 电 平 和 4.5ms 的 低 电 平 组 成 , 简 码 由 9ms 的 高 电 平 和 2.25ms 的 低 电 平 组 成 , 当 按 键 按 下 持 续 时 间 超 过 108ms 时 , 发 送 简 码 告 知 接 收 端 某 个 按 键 处 于 按 下 状 态 , 简 码 与 简 码 之 间 的 间 隔 是 108ms。 “1”和 “0”的 区 分 采 脉 冲 位 置 调 整 (ppm)实 现 。 ppm 以 发 射 载 波 的 位 置 表 示 “0”和 “1”, 从 发 射 载 波 到 不 发 射 载 波 为 “0”, 从 不 发 射 载 波 到 发 射 载 波 为 “1”, 其 发 射 载 波 和 不 发 射 载 波 的 时 间 相 同 , 都 为 0.68ms, 也 就 是 每 位 的 时 间 是 固 定 的 。 2.phil

温馨提示

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

评论

0/150

提交评论