基于单片机的自行车里程表设计_第1页
基于单片机的自行车里程表设计_第2页
基于单片机的自行车里程表设计_第3页
基于单片机的自行车里程表设计_第4页
基于单片机的自行车里程表设计_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1 摘摘 要要 随着居民生活水平的不断提高 自行车不再仅仅是普通的运输 代步的工具 而是成为人们娱乐 休闲 锻炼的首选 自行车里程表能够满足人们最基本的需 求 让人们能清楚地知道当前的速度 里程等物理量 主要阐述一种基于霍尔元 件的自行车里程表的设计 以 AT89C52 单片机为核心 A44E 霍尔传感器测转 数 实现对自行车里程 速度的测量统计 采用 24C02 实现在系统掉电的时候保 存里程信息 并能将自行车的里程数及速度用 LED 实时显示 文章详细介绍了 自行车里程表的硬件电路和软件设计 硬件部分利用霍尔元件将自行车每转一圈 的脉冲数传入单片机系统 然后单片机系统将信号经过处理送显示 软件部分用 汇编语言进行编程 采用模块化设计思想 该系统硬件电路简单 子程序具有通 用性 完全符合设计要求 关键词 里程 速度 霍尔元件 单片机 LED 显示 2 Abstract With the developing of people s life the bicycle is not only the universal tool of transportation and substitute for walking but becomes the first choice of entertainmenting and exercising The bicycle mileage speed can fulfill the basic need of people s life so that they can learn the speed and the mileage of the bicycle In these paper the bicycle mileage speed design based on the Hall element is elaborated By AT89C52 as kernel using A44E Hall element to measure revolution the measure and statistic are achieved The range informations are saved by 24C02 when the power is off the bicycle speed can be displayed on LED In this article the hardware circuit and software design of bicycle mileage speed instrument are introduced in detail About the hardware the pulse number is transmitted of one cycle of the bicycle into Single Chip Microcomputer system Then the signal processed by Single Chip Microcomputer system is sent to display scream About the software in assemble language the program is designed in the mode of modules The system has simple hardware common sub program and meet the demand of design Key words Mileage speed Hall element Single Chip Microcomputer LED 3 目 录 第第 1 1 章章 绪论绪论 4 4 1 1 课题产生的背景 4 1 2 课题的主要任务及内容 4 第第 2 2 章章 自行车里程表总体方案设计自行车里程表总体方案设计 6 6 2 1 任务分析与实现 6 2 2 自行车里程表硬件方案设计 6 2 3 自行车里程表软件方案设计 10 第第 3 3 章章 自行车里程表硬件电路设计自行车里程表硬件电路设计 1212 3 1 概述 12 3 2 传感器及其测量系统 12 3 3 芯片简介 14 3 4 单片机外围电路的设计 20 第第 4 4 章章 自行车里程表软件程序设计自行车里程表软件程序设计 2525 4 1 概述 25 4 2 自行车里程表总体程序设计 25 4 3 中断子程序的设计 27 4 4 数据处理子程序的设计 27 4 5 显示子程序的设计 30 第第 5 5 章章 系统调试与分析系统调试与分析 3232 5 1 自行车里程表系统调试 32 5 2 调试故障及原因分析 33 结论结论 3434 参考文献参考文献 3535 致致 谢谢 3636 4 附录附录 自行车里程表硬件系统原理图自行车里程表硬件系统原理图 3737 5 第 1 章 绪论 1 1 课题产生的背景 自世界上第一辆自行车问世至今已有 200 多年的历史了 18 世纪末 法国人 西夫拉克发明了最早的自行车 这辆最早的自行车是木制的 其结构比较简单 世界上第一批真正实用型的自行车出现于 19 世纪初 在 20 世纪 自行车在中国 获得了前所未有的普及和发展 从某种意义上来说 中国是一个自行车的王国 每天清晨和落日时分 滚滚车流在中国的城市中碾动 这是最为壮观的一道风景 这是一条现代中国流动的长城 随着居民生活水平的不断提高 自行车不再仅仅是普通的运输 代步的工具 而是成为人们娱乐 休闲 锻炼的首选 因此 人们希望自行车的功用更强大 能给人们带来更多的方便 自行车里程表作为自行车的一大辅助工具也正是随着 这个要求而迅速发展的 其功能也逐渐从单一的里程显示发展到速度 时间显示 甚至有的还具有测量骑车人的心跳 显示骑车人热量消耗等功能 本设计采用了 MCS 51 系列单片机设计一种体积小 操作简单的便携式自行车里程表 它能自动 地显示当前自行车行走的距离及运行的速度 单片微型计算机自 1976 年问世以来发展非常迅速 现在已成为微型计算机 一个很重要的分支 在现实生活中应用越来越广泛 已经对人类产生了巨大的影 响 尤其是美国 Intel 公司的 MCS 51 系列单片机 由于其集成度高 处理功能 强 性能价格比高 可靠性高 系统结构简单 可以灵活的与其他芯片组成众多 的测量电路用于速度 温度 深度 高度 湿度 光强等方面的测量和研究等特 点 在我国现代化生活 生产中已经得到了广泛的应用 如在工业检测控制 仪 器仪表 电子工业 机电一体化等众多领域取得了令人瞩目的成果 本设计利用 MCS 51 系列单片机扩展方便 可靠性能高 处理功能强 速度高等特点 实现 对自行车里程和速度的测量 1 2 课题的主要任务及内容 本课题主要任务是利用霍尔元件 单片机等部件设计一个可用 LED 数码管 实时显示里程和速度的自行车的速度里程表 本文主要介绍了自行车里程表的设 6 计思想 电路原理 方案论证以及元件的选择等内容 整体上分为硬件部分设计 和软件部分设计 本文首先扼要对该课题的任务进行方案论证 包括硬件方案和软件方案的设 计 继而具体介绍了自行车的速度里程表的硬件设计 包括传感器的选择 单片 机的选择 显示电路的设计 然后阐述了该自行车的速度里程表的软件设计 包 括数据处理子程序的设计 显示子程序的设计 最后针对仿真过程遇到的问题进 行了具体说明与分析 对本次设计进行了系统的总结 具体的硬件电路包括 AT89C52 单片机的外围电路以及 LED 显示电路等 软件设计包括 芯片的初始化程序 定时中断采样子程序 显示子程序等 软件采用汇编语言编写 软件设计的思想主要是自顶向下 模块化设计 各个子 模块逐一设计 7 第 2 章 自行车里程表总体方案设计 2 1 任务分析与实现 本次毕业设计的题目是 自行车里程表设计 其设计的任务是 以通用 MCS 51 单片机为处理核心 用传感器将车轮的转 数转换为电脉冲 进行处理后送入单片机 里程及速度的测量 是经过 MCS 51 的定时 计数器测出总的脉冲数和每转一圈的时间 再经过一系列的计算得出的 其结果通过显示器显示出来 本系统总体思路如下 里程及速度传感器采用霍尔元件 用一个霍尔芯片 一个小磁铁 霍尔芯片紧贴齿轮 磁铁放在芯片后面 齿轮转动一周霍尔元件与 小磁铁靠近一次 这样可以改变通过霍尔芯片的磁通量 霍尔芯片可以输出类似 正弦的波形 用运放放大波形 后面接一级比较器 把正弦波转换为方波 方波 的频率和齿轮的转速成正比 自行车里程的测量是通过霍尔元件输出端的电压发 生变化产生脉冲 通过计数器 根据脉冲数计算里程 自行车速度的测量是通过 定时器测出车轮转一周所用的时间 t 车轮周长 L 除以时间 t 就是自行车的速度 要求达到的各项指标及实现方法如下 1 利用霍尔传感器产生里程数的脉冲信号 2 对脉冲信号进行计数 实现 利用单片机自带的计数器 T0 对霍尔传感器脉冲信号进行计数 3 对数据进行处理 要求用 LED 显示里程总数和即时速度 实现 利用软件编程 对数据进行处理得到需要的数值 最终实现目标 自行车里程表具有里程 速度测试与显示功能 采用单片机 作控制 可根据车圈的不同设置常用的四种尺寸 显示电路可显示里程及速度 当开关 S 打开时 LED 切换显示当前里程 当开关 S 闭合时 LED 切换显示当前 速度 v 若自行车超速 系统发出报警提示 整个设计过程包括硬件电路的搭建 软件的编程 系统的调试 调试通过后 固化程序 脱离开发系统运行 8 2 2 自行车里程表硬件方案设计 自从1971年微型计算机问世以来 随着大规模集成电路技术的不断进步 微 型机主要向两个方向发展 一个向高速度 高性能的高档微型计算机方向发展 一个向稳定可靠 小而廉价的单片机方向发展 所谓的单片机 就是把中央处理 器CPU 只读存储器ROM 定时 计数器以及I O 接口电路等集成在一块集成电 路芯片上的微型计算机 从组成和功能上看 它具有微型计算机的含义 单片机由于将CPU 内存和一些必要的接口集成到一个芯片上 并且面向控 制功能将结构作了一定的优化 所以它有一般芯片不具有的特点 1 体积小 重量轻 2 电源单一 功耗低 3 功能强 价格低 4 全部集成在一块芯片上 布线短 合理 5 数据大部分在单片机内传送 运行速度快 抗干扰能力强 可靠性高 目前 单片机被广泛的应用于测控系统 工业自动化 智能仪表 集成智能 传感器 机电一体化产品 家用电器领域 办公自动化领域 汽车电子与航空航 天器电子系统以及单片机的多机系统等领域 2 2 1 里程 速度测量传感器的设计 1 速度传感器的设计 测速是工农业生产中经常遇到的问题 学会使用单片机技术设计测速仪表具 有很重要的意义 要测速 首先要解决是采样的问题 在使用模拟技术制作测速 表时 常用测速发电机的方法 即将测速发电机的转轴与待测轴相连 测速发电 机的电压高低反映了转速的高低 使用单片机进行测速 可以使用简单的脉冲计 数法 只要转轴每旋转一周 产生一个或固定的多个脉冲 将脉冲送入单片机中 进行计算 即可获得转速的信息 1 霍尔传感器 霍尔传感器是对磁敏感的传感元件 常用于信号采集的有 A44E CS3020 CS3040 等 这类传感器是一个 3 端器件 外形与三极管相似 只要接上电源 地 即可工作 通常是集电极开路 OC 门 输出 工作电压范 围宽 使用非常方便 A44e 的外形如图 2 1 所示 将有字面对准自己 三根引脚 从左向右分别是电源 地 输出 9 A44E 123 1 Vcc 2 GND 3 OUT 图 2 1 A44e 外形图 使用霍尔传感器获得脉冲信号 其机械结构也可以做得较为简单 只要在转 轴的齿轮盘上粘上一粒磁钢 霍尔元件固定在前叉上 当车子转动时霍尔元件靠 近磁钢 就有信号输出 转轴旋转时 就会不断地产生脉冲信号输出 如果在齿 轮盘上粘上多粒磁钢 可以实现旋转一周 获得多个脉冲输出 在粘磁钢时要注 意 霍尔传感器对磁场方向敏感 粘之前可以先手动接近一下传感器 如果没有 信号输出 可以换一个方向再试 这种传感器不怕灰尘 油污 在工业现场应用 广泛 2 光电传感器 光电传感器是应用非常广泛的一种器件 有各种各样的形式 如透射式 反 射式等 基本的原理就是当发射管光照射到接收管时 接收管导通 反之关断 以透射式为例 如图 2 2 所示 当不透光的物体挡住发射与接收之间的间隙时 开关管关断 否则导通 为此 可以制作一个遮光叶片 如图 2 3 所示 安装在 转轴上 当扇叶经过时 产生脉冲信号 当叶片数较多时 旋转一周可以获得多 个脉冲信号 图 2 2 光电传感器的原理图 图 2 3 遮光叶片 3 光电编码器 10 光电编码器的工作原理与光电传感器一样 不过它已将光电传感器 电子电 路 码盘等做成一个整体 只要用连轴器将光电传感器的轴与转轴相连 就能获 得多种输出信号 它广泛应用于数控机床 回转台 伺服传动 机器人 雷达 军事目标测定等需要检测角度的装置和设备中 某光电编码器的外形如图 2 4 所 示 图 2 4 成品光电编码器 2 里程测量传感器的设计 里程测量传感器的选择也有以下几种方案 使用光敏电阻对里程进行测量 利用编码器对车轮的圈数进行测量 利用霍尔传感器对里程进行测量 利用干簧 管型传感器测量里程 这几种方案都是通过自行车车轮转动产生脉冲数 然后根 据脉冲数计算里程 2 2 2 方案的确定 光敏电阻对光特别敏感 当白天行驶时 外界光源将导致光敏电阻发出错误 信号 光敏电阻对环境的要求相当高 如果光敏或发光二极管被泥沙或灰尘所覆 盖 光敏电阻就不能再进行准确测量 而编码器必须安装在车轴上 安装较为复 杂 霍尔元件或干簧管不但不受天气的影响 即使被泥沙或灰尘覆盖也不会有影 响 而且安装方便 所以本设计采用霍尔元件对里程与速度进行测量 既简单易 行 又经济适用 本系统的硬件系统框图如图 2 5 所示 放大器波形变换信号波形整形 单片机存储器 报警 LED 显示 11 图 2 5 系统的原理框图 2 3 自行车里程表软件方案设计 硬件是基础 软件是灵魂 通过软件控制单片机的功能是单片机的主要特点 和优点 程序的设计要考虑合理性和可读性 程序遵循模块化设计的原则 采用 自顶向下的设计方法 即先考虑整体目标 明确整体任务 然后把整体任务分成 一个个子任务 子任务再分成子子任务 这样逐层细分 同时分析层次间的关系 与同一层次各任务间的关系 最后拟订出各任务的细节 模块化设计使程序的可 读性好 修改及完善方便 软件设计包括主程序 行车过程中里程和速度计算子程序 延时子程序 T0 T1 中断服务子程序 显示子程序等等 中断子程序是将传感器产生的信号接入计数器的 T0 口 然后计数器开始计 数 当计数到一定数目后 计数器就产生溢出中断 数据处理子程序是将进入单片机的脉冲信号与实际要显示值之间有一定的对 应关系 经过软件编程显示所需要的值 显示子程序是将数据处理的结果送显示器显示 本系统软件总体流程图如图 2 6 所示 初始化 P3 0 1 计算速度计算里程 显示里程显示速度 开始 Y N 12 图 2 6 软件总体流程图 13 第 3 章 自行车里程表硬件电路设计 3 1 概述 传感器在人们研究自然现象 规律以及生产实践活动中 起着非常重要的作 用 特别是在当今 科学技术的发展使人类进入了一个信息时代 在利用信息的 过程中 首先要解决的就是获取准确可靠的信息 传感器是获取自然或生产领域 中信息的关键器件 是现代信息系统和各种设备不可缺少的信息采集工具 磁传 感器是一种将磁学量信号转变为电信号的器件或装置 随着信息产业 工业自动 化 医疗仪器等的飞速发展和计算机应用的普及 需要大量的传感器将被测或被 控的非电信号转换成可与计算机兼容的电信号 作为输入信号 这就给磁传感器 的快速发展提供了机遇 形成了磁传感器的产业 自从磁传感器作为一种独立产 品进入应用领域 从 10 14T 的人体磁场到高达 25T 以上的强磁场 都可以找到相 应的磁传感器进行检测 而这巨大的应用前景也使微机电系统技术在磁传感器中 大有可为 其中最具代表的磁传感器就是霍尔传感器 在自动检测系统中 利用 霍尔传感器测转数是一种最基本的测量工作 它的特性是霍尔传感器输出的脉冲 信号的个数比较直接反映所测量转数的数目 3 2 传感器及其测量系统 霍尔器件是一种磁传感器 用它们可以检测磁场及其变化 可在各种与磁场 有关的场合中使用 霍尔器件以霍尔效应为其工作基础 霍尔器件具有许多优 点 它们的结构牢固 体积小 重量轻 寿命长 安装方便 功耗小 频率高 可达 1MHz 耐震动 不怕灰尘 油污 水汽及烟雾等的污染或腐蚀 霍尔 线性器件的精度高 线性度好 霍尔开关器件无触点 无磨损 输出波形清晰 无抖动 无回跳 位置重复精度高 可达 m 级 取用了各种补偿和保护措施 的霍尔器件工作温度范围宽 可达 55 150 按照霍尔器件的功能可将它 们分为 霍尔线性器件和霍尔开关器件 前者输出模拟量 后者输出数字量 按被检测对象的性质可将它们的应用分为 直接应用和间接应用 前者是直接检 测出受检测对象本身的磁场或磁特性 后者是检测受检对象上人为设置的磁场 用这个磁场来作被检测的信息的载体 通过它 将许多非电 非磁的物理量例如 14 力 力矩 压力 应力 位置 位移 速度 加速度 角度 角速度 转数 转 速以及工作状态发生变化的时间等 转变成电量来进行检测和控制 3 2 1 霍尔传感器的测量原理 霍尔传感器是利用霍尔效应制成的一种磁敏传感器 在置于磁场中的导体或 半导体通入电流 I 若电流垂直磁场 B 则在与磁场和电流都垂直的方向上会出 现一个电势差 Uh 这种现象称为霍尔效应 利用霍尔效应制成的元件称为霍尔 元件 因为它具有结构简单 频率响应宽 灵敏度高 测量线性范围大 抗干扰 能力强以及体积小 使用寿命长等一系列特点 因此被广泛应用于测量 自动控 制及信息处理等领域 霍尔效应原理图如图 3 1 所示 X Y Z B I L Uh b d 图 3 1 霍尔效应原理图 3 2 2 集成开关型霍尔传感器 A44E 集成霍尔开关由稳压器 A 霍尔电势发生器 即硅霍尔片 B 差分放大 器 C 施密特触发器 D 和 OC 门输出 E 五个基本部分组成 如图 3 2 a 所示 1 2 3 代表集成霍尔开关的三个引出端点 在电源端加电压 Vcc 经稳压 器稳压后加在霍尔电势发生器的两端 根据霍尔效应原理 当霍尔片处在磁场中 时 在垂直于磁场的方向通以电流 则与这二者相垂直的方向上将会产生霍尔电 势差 VH 输出 该 VH 信号经放大器放大后送至施密特触发器整形 使其成为方 波输送到 OC 门输出 当施加的磁场达到工作点时 触发器输出高电压 相对于地 电位 使三极管导通 此时 OC 门输出端输出低电压 通常称这种状态为开 当施加的磁场达到释放点时 触发器输出低电压 三极管截止 使 OC 门输出高 电压 这种状态为关 这样两次电压变换 使霍尔开关完成了一次开关动作 工作点与释放点的差值一定 此差值称为磁滞 在此差值内 V0保持不变 因而 使开关输出稳定可靠 这也就是集电成霍尔开关传感器优良特性之一 传感器主 要特性是它的输出特性 即输入磁感应强 15 D A B C E VCC 1 2 GND OUT 3 a 05101520 3 6 9 12 VO V B mT 释放点 OFF 工作点 ON V b 图 3 2 集成开关型霍尔传感器 a 组成 b 输出特性 度 B 与输出电压 V0之间的关系 A44E 集成霍尔开关是单稳态型 由测量数据作 出的输出特性曲线如图 3 2 b 所示 测量时 在 1 2 两端加 12V 直流电压 在输 出端 3 与 1 之间接一个 2k 的负载电阻 如图 3 3 所示 A 44E 1 12V 2 GND 3 OUT 2k 图 3 3 集成霍尔开关接线图 3 3 芯片简介 3 3 1 单片机的选择 单片微型计算机是指集成在一个芯片上的微型计算机 也就是把组成微型计 算机的各种功能部件 包括 CPU Central Processing Unit 随机存取存储器 RAM Random Access Memory 只读存储器 ROM Read only Memory 基本输入 输出 1nput Output 接口电路 定时器 计数器等部件都制作在一块集成芯片上 构成一个完整的微型计算机从而实现微型计算机的基本功能 单片机内部结构示 意图如图 3 4 所示 单片机实质上是一个芯片 在实际应用中 通常很少将单片机直接和被控对 象进行电气连接 必须外加各种扩展接口电路 外部设备 被控对象等硬件和软 16 件 才能构成一个单片机应用系统 定时 计数器中断系统 CPU 存储器 并行 I O 口 串口 I O 口 TXD RXD T INT P0 P3 图 3 4 单片机内部结构示意图 1 AT89C52 引脚功能 AT89C52 是美国 ATMEL 公司生产的低电压 高性能 CMOS 8 位单片机 片 内含 8k bytes 的可反复擦写的只读程序存储器 EPROM 和 256 bytes 的随机存 取数据存储器 RAM 器件采用 ATMEL 公司的高密度 非易失性存储技术生 产 与标准 MCS 51 指令系统及 8052 产品引脚兼容 片内置通用 8 位中央处理 器 CPU 和 Flash 存储单元 功能强大 AT89C52 单片机适合于许多较为复杂 控制场合应用 主要性能参数 与 MCS 51 产品指令和引脚完全兼容 8k 字节可重擦写 Flash 闪速存储器 1000 次擦写周期 全静态操作 0Hz 24MHz 三级加密程序存储器 256 8 字节内部 RAM 32 个可编程 I O 口线 3 个 16 位定时 计数器 8 个中断源 可编程串行 UART 通道 低功耗空闲和掉电模式 17 图 3 5 89C52 引脚图 AT89C52 提供以下标准功能 8k 字节 Flash 闪速存储器 256 字节内部 RAM 32 个 I O 口线 3 个 16 位定时 计数器 一个 6 向量两极中断结构 一个 全双工串行通信口 片内振荡器及时钟电路 同时 AT89C52 可降至 0Hz 的静态 逻辑操作 并支持两种软件可选的节电工作模式 空闲方式停止 CPU 的工作 但允许 RAM 定时 计数器 串行通信口及中断系统继续工作 掉电方式保存 RAM 中的内容 但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复 位 89C52 管脚图如图 3 5 所示 89C52 的主要管脚功能如下 P0 0 P0 7 P0 口是一组 8 位漏极开路型双向 I O 口 也是地址 数据总线复 用口 作为输出口用时 每位能吸收电流的方式驱动 8 个 TTL 逻辑门电路 对端 口 P0 写 1 时 可作为高阻抗输入端用 在访问外部数据存储器或程序存储器 时 这组口线分时转换地址 低 8 位 和数据总线复用 在访问期间激活内部上 拉电阻 P1 0 P1 7 P1 是一个带内部上拉电阻的 8 位双向 I O 口 P1 的输出缓冲极 可驱动 吸收或输出电流 4 个 TTL 逻辑门电路 对端口写 1 通过内部的上 拉电阻把端口拉到高电平 此时可作输入口 P2 0 P2 7 P2 是一个带内部上拉电阻的 8 位双向 I O 口 P2 的输出缓冲极 可驱动 吸收或输出电流 4 个 TTL 逻辑门电路 对端口 P2 写 1 通过内部 的上拉电阻把端口拉到高电平 此时可作输入口 P3 0 P3 7 P3 是一个带内部上拉电阻的 8 位双向 I O 口 P3 的输出缓冲极 可驱动 吸收或输出电流 4 个 TTL 逻辑门电路 对端口 P3 写 1 通过内部 的上拉电阻把端口拉到高电平 此时可作输入口 ALE 地址锁存控制信号 在系统扩展时 ALE 用于控制把 P0 口输出的低 8 位地址锁存起来 以实现低位地址和数据的隔离 此外 由于 ALE 是以晶振 18 1 6 的固定频率输出的正脉冲 因此 可作为外部时钟或外部定时脉冲使用 外部程序存储器读选通信号 在读外部 ROM 时 有效 低电平 PSENPSEN 以实现外部 ROM 单元的读操作 访问程序存储控制信号 当信号为低电平时 对 ROM 的读操作限EAEA 定在外部程序存储器 当信号为高电平时 对 ROM 的读操作是从内部程序存EA 储器开始 并可延至外部程序存储器 RST 复位信号 当输入的复位信号延续两个机器周期以上的高电平时即为 有效 用以完成单片机的复位初始化操作 XTALl 和 XTAL2 外接晶体引线端 当使用芯片内部时钟时 此二引线端 用于外接石英晶体和微调电容 当使用外部时钟时 用于接外部时钟脉冲信号 VSS 地线 VCC 5V 电源 以上是 MCS 51 单片机芯片 40 条引脚的定义及简单功能说明 由于工艺及标准化等原因 芯片的引脚数目是有限制的 例如 MCS 51 系 列把芯片引脚数目限定为 40 条 但单片机为实现其功能所需要的信号数目却远 远超过此数 因此就出现了需要与可能的矛盾 如何解决这个矛盾 兼职 是 唯一可行的办法 即给一些信号引脚赋以双重功能 如果把前述的信号定义为引 脚第一功能的话 则根据需要再定义的信号就是它的第二功能 下面介绍一些信 号引脚的第二功能 1 P3 口线的第二功能 P3 的 8 条口线都定义有第二功能 如表 3 1 所示 表 3 1 P3 口引脚与第二功能 引脚第二功能信号名称 P3 0RXD串行数据接收 P3 1TXD串行数据发送 P3 2 0INT 外部中断 0 申请 P3 3 1INT 外部中断 1 申请 P3 4T0定时 计数器 0 的外部输入 P3 5T1定时 计数器 1 的外部输入 P3 6 WR 外部 RAM 写选通 P3 7 RD 外部 RAM 读选通 2 EPROM 存储器程序固化所需要的信号 有内部 EPROM 的单片机芯片 19 例如 8751 为写入程序需提供专门的编程脉冲和编程电源 这些信号也是由信 号引脚以第二功能的形式提供的 即 编程脉冲 30 脚 ALE PROG 编程电压 25V 31 脚 VPP EA 3 备用电源引入 MCS 51 单片机的备用电源也是以第二功能的方式由 9 脚 RST VPD 引入的 当电源发生故障 电压降低到下限值时 备用电源经此端向 内部 RAM 提供电压 以保护内部 RAM 中的信息不丢失 2 定时 计数器 1 计数 计数是指对外部事件的个数进行计量 其实质就是对外部输入脉 冲的个数进行计量 实现计数功能的器件称为计数器 2 定时 8051 单片机中的定时器和计数器是一个部件 只不过计数器记录 的是外界发生的事件 而定时器则是由单片机内部提供一个非常稳定的计数源进 行定时的 这个计数源是由单片机的晶振经过 12 分频后获得的一个脉冲源 所 以定时器计数脉冲的时间间隔与晶振有关 MCS 51 单片机内部有两个 16 位可编程的定时器 计数器 简称为 T0 和 T1 均可作定时器和计数器使用 它们均是二进制加法计数器 当计数器计满回 零时能自动产生溢出中断请求 表示定时时间已到或计数已终止 适用于定时控 制 延时 外部计数和检测等 计数器 对引脚 T0 P 3 4 和 T1 P3 5 输入的外部脉冲信号计数 当输 入脉冲信号从 1 到 0 的负跳变时 计数器就自动加 1 计数的最高频率一般为振 荡频率的 1 24 定时器 对系统晶振振荡脉冲的 12 分频输出进行计数 定时器 计数器的结构组成 16 位加法计数器 工作方式寄存器 TMOD 和控 制寄存器 TCON T0 TL0 低 8 位 和 TH0 高 8 位 T1 TL1 低 8 位 和 TH1 高 8 位 3 3 2 存储器的介绍 CAT24WC02 是一个 2K 位串行 CMOSE2PROM 内部含有 256 个 8 位字节 CATALYST 公司的先进 CMOS 技术实质上减少了器件的功耗 CAT24WC02 有 一个 16 字节页写缓冲器 该器件通过 I2C 总线接口进行操作有一个专门的写保 护功能 CAT24WC02 支持 I2C 总线数据传送协议 I2C 总线协议规定 任何将数 据传送到总线的器件作为发送器 任何从总线接收数据的器件为接收器 数据传 送是由产生串行时钟和所有起始停止信号的主器件控制的 主器件和从器件都可 以作为发送器或接收器 但由主器件控制传送数据 发送或接收 的模式 通过 器件地址输入端 A0 A1和 A2可以实现将最多 8 个 24WC02 器件连接到总线上 20 管脚图如 3 6 所示 图 3 6 24C02 管脚图 SCL 串行时钟 CAT24WC02 串行时钟输入管脚用于产生器件所有数据发送 或接收的时钟 这是一个输入管脚 SDA 串行数据 地址 CAT24WC02 双向串行数据 地址管脚用于器件所有数 据的发送或接收 SDA 是一个开漏输出管脚可与其它开漏输出或集电极开路输 出进行线或 wire OR A0 A1 A2 器件地址输入端 这些输入脚用于多个器件级联时设置器件地 址 当这些脚悬空时默认值为 0 当使用 24WC02 时最大可级联 8 个器件 24WC02 被总线寻址这三个地址输入脚 A0 A1 A2 可悬空或连接到 Vss WP 写保护 如果 WP 管脚连接到 Vcc 所有的内容都被写保护 只能读 当 WP 管脚连接到 Vss 或悬空 允许器件进行正常的读 写操作 起始信号 时钟线保持高电平期间 数据线电平从高到低的跳变作为 I2C 总 线的起始信号 停止信号 时钟线保持高电平期间 数据线电平从低到高的跳变作为 I2C 总 线的停止信号 本题目中 24C02 起存储作用 将自行车里程存储在 24C02 中 当掉电时 存 储的数据不会丢失 可以读取 24C02 中的里程数完成里程的累积 3 3 3 74LS74 芯片的介绍 74LS74 是 D 触发器的一种 它是一个具有记忆功能的二进制信息存储器件 是构成多种时序电路的最基本逻辑单元 触发器具有两个稳定状态 即 0 和 1 在一定的外界信号作用下 可以从一个稳定状态翻转到另一个稳定状态 由 于其状态的更新发生在 CP 脉冲的边沿故又称之为上升沿触发的边沿触发器 D 触发器的状态只取决于时针到来前 D 端的状态 D 触发器应用很广 可用做数字 信号的寄存 移位寄存 分频和波形发生器等 引脚图如图 3 7 所示 21 图 3 7 74LS74 引脚图 在本题目中 74LS74 芯片起分频的作用 当车轮每转一圈 霍尔传感器输出 一个低电平脉冲 通过 74LS74 进行二分频后 定时器 T1 的开启时间为车轮转 1 圈的时间 这样就可以算出自行车的速度 3 3 4 74LS244 芯片的介绍 74LS244 为三态输出的八位缓冲器和总线驱动器 若单片机输出口直接接显 示部分电路 则电流太小 会导致显示部分不能正常工作 所以在单片机输出口 先接入驱动芯片 74LS244 增大电流 使 LED 能够正常工作 其逻辑图如图 3 8 所示 图 3 8 74LS244 逻辑图 3 4 单片机外围电路的设计 1 时钟电路的设计 时钟是单片机的心脏 单片机各功能部件的运行都是以时钟频率为基准 有 条不紊地一拍一拍地工作 因此 时钟频率直接影响单片机的速度 时钟电路的 质量也直接影响单片机系统的稳定性 8051 片内由一个反相放大器构成振荡器 可以由它产生时钟 常用的时钟电路有两种方式 一种是内部时钟方式 另一种 22 为外部时钟方式 本设计采用前者 单片机内部有一个用于构成振荡器的高增益反相放大器 该高增益反相放大 器的输入为芯片引脚 XTAL1 输出端为引脚 XTAL2 这两个引脚跨接石英晶体 振荡器和微调电容 就构成一个稳定的自激振荡器 单片机内部时钟方式的振荡 电路如图 3 9 所示 AT89C52 XTAL2 XTAL1 Vss C1 30p C2 30p 图 3 9 单片机片内振荡电路 电路中的电容 C1和 C2常选择为 30pF 左右 对外接电容的值虽然没有严格的 要求 但电容的大小会影响振荡器的高低 振荡器的稳定性 起振的快速性和温 度的稳定性 而外接晶体的振荡频率的大小 主要取决于单片机的工作频率范围 每一种单片机都有自己的最大工作频率 外接的晶体振荡频率不大于单片机的最 大工作频率即可 此外 如果单片机有串行通信 则应该选择振荡频率除以串行 通信频率可以除尽的晶体 本设计晶振采用 12MHz 2 复位电路的设计 89C52 的复位输入引脚 RET 即 RESET 为 89C52 提供了初始化的手段 有了 它可以使程序从指定处开始执行 即从程序存储器中的 0000H 地址单元开始执行 程序 在 89C52 的时钟电路工作后 只要在 RET 引脚上出现两个机器周期以上的 高电平时 单片机内部则初始复位 只要 RET 保持高电平 则 89C52 循环复位 只有当 RET 由高电平变成低电平以后 89C52 才从 0000H 地址开始执行程序 复位操作对寄存器也有影响 但内部 RAM 不受复位的影响 当 Vcc 加电后 RAM 的内容是随机的 它们的复位状态如表 3 2 所示 表 3 2 MCS 51 的复位状态表 寄存器复位状态寄存器复位状态 PC0000HTCON00H A00HTMOD00H 23 寄存器复位状态寄存器复位状态 B00HTH000H PSW00HTL000H SP07HTH100H DPTR0000HTL100H P0 P3FFHSCON00H IPXXHSBUFXXH IE0XHPCON0XXX0000B 由表 3 2 中可以看出 复位时 SP 07H 4 个 I O 端口 P0 P3 的引脚均为高 电平 这在某些控制应用中 要考虑到引脚的高电平对外部控制电路的影响 由 于单片机内部的各个功能部件均受特殊功能寄存器控制 程序运行直接受程序计 数器 PC 的指挥 另外 在复位有效期间 即高电平 MCS 51 单片机的 ALE 引脚和引脚均为高电平 且内部 RAM 不受复位的影响 PSEN 本系统的复位电路是采用按键复位的电路 如图 3 10 所示 是常用复位电路 之一 当 89C52 的 ALE 及两引脚输出高电平 RET 引脚为高电平时 单片PSEN 机复位 通过按动按钮产生高电平复位称手动复位 上电时 刚接通电源 电容 C 相当于瞬间短路 5V 立即加到 RET VPD 端 该高电平使 89C52 全机自动复 位 这就是上电复位 若运行过程中需要程序从头执行 只需按动按钮即可 按 下按钮 则直接把 5V 加到了 RET VPD 端从而复位称为手动复位 复位后 P0 到 P3 并行 I O 口全为高电平 其它寄存器全部清零 只有 SBUF 寄存器状态不确 定 图 3 10 按键复位电路 工作原理 上电瞬间 RC 电路充电 RST 引脚出现高电平 只要 RST 端保 持 10ms 以上高电平 就能使单片机有效地复位 3 显示电路的设计 24 本设计中采用 LED 数码管显示 在单片机系统中 通常用 LED 数码显示器 来显示各种数字或符号 由于它具有显示清晰 亮度高 使用电压低 寿命长的 特点 因此使用非常广泛 八段 LED 显示器由 8 个发光二极管组成 其中 7 个 发光二极管构成字型 8 的各个笔画段 另一个小数点为 dp 发光二极管 LED 显示器有两种不同的形式 一种是发光二极管的阳极都连在一起的 称之为共阳 极 LED 显示器 另一种是发光二极管的阴极都连在一起的 称之为共阴极 LED 显示器 如图 3 11 所示 图 3 11 七 八 段 LED 显示器 a 外形图 b 共阳极接法 c 共阴极接法 LED 显示方式有动态显示和静态显示两种方式 本系统采用动态扫描显示接 口电路 动态显示接口电路是把所有显示器的 8 个笔划段 a h 同名端连在一起 而每一个显示器的公共极 COM 各自独立地受 I O 线控制 CPU 向字段输出口送 出字型码时 所有显示器接收到相同的字型码 但究竟是哪个显示器亮 则取决 于 COM 端 也就是说我们可以采用分时的方法 轮流控制各个显示器的 COM 端 使各个显示器轮流点亮 在轮流点亮扫描过程中 每位显示器的点亮时间是 极为短暂的 约 1ms 由于人的视觉暂留现象及发光二极管的余辉效应 尽管 实际上各位显示器并非同时点亮 但只要扫描的速度足够快 给人的印象就是一 组稳定的显示数据 不会有闪烁感 因为 LED 的正向工作电压一般在 1 2V 2 6V 其发光工作电流为 5mA 20mA 发光强度基本上与正向电流成正比 故电路需串联适当的限流电阻 本 设计选择比较常用的 100 电阻 本设计 P2 0 P2 1 P2 2 P2 3 信号一起组成位选通的位选信号 P0 0 P0 7 信号一起组成段码选通的段选信号 通过软件编程 先把所要显示的数据放入存 储单元 然后把数据送入段选通对应的地址 再选通某一个 LED 逐步完成四个 LED 的显示 25 4 单片机各口的作用和用途 自行车里程表采用 AT89C52 单片机作控制 速度及里程传感器采用霍尔元 件 其电路原理图如附录 所示 P0 口和 P2 口用于七段 LED 显示器的段码及位 选扫描输出 在显示里程时 第 3 位小数点用 17 脚 P3 7 口控制点亮 P1 0 和 P1 1 口分别用于显示里程状态和速度状态 P1 2 P1 3 P1 6 和 P1 7 口分别用于 设置轮圈的大小 第 10 脚的开关用于确定显示的方式 当开关 S 闭合时 显示 速度 打开开关 S 时 显示里程 第 12 脚外中断 0 用于对轮子圈数的计数输入 轮子每转一圈 霍尔传感器输出一个低电平 第 13 脚外中断 1 用于控制定时器 T1 的启 停 当输入为 0 时关闭定时器 此控制信号是将轮子圈数的计数脉冲经 二分频后形成 如图 3 12 所示 这样 每次定时器 T1 的开启时间刚好为转 1 圈 的时间 根据轮子的周长就可以计算出自行车的速度 P1 4 口和 P1 5 口用于 E2PROM 存储器 24C02 的存取控制 11 脚输出用于速度超速时的报警 报警电 路图如图 3 13 所示 图 3 12 单片机 11 12 脚的输入波形 图 3 13 报警电路图 26 第 4 章 自行车里程表软件程序设计 4 1 概述 在硬件设计完毕之后 接下来就是设计中最核心和最为主要的软件部分设计 所谓软件设计就是把软件需求变换成软件的具体设计方案 即模块结构 的过程 模块化结构设计即是根据要求和硬件设计的结构 将整个系统的功能分成许多小 的功能模块 再根据这些小的功能模块进行程序编写的过程 这样的设计方法 使得系统的整个功能和各部分的功能趋于明朗化 当系统出现问题 就可以根据 功能设置找出问题的根源 从而更快地解决问题 所以说 在整个设计过程中 软件设计必须与硬件设计紧密地结合在一起 基于霍尔传感器自行车里程表的软件设计包括计数子程序 计时子程序 LED 显示子程序等几大部分 由于要实现很多功能 所以采用模块化设计 下面 就其主要部分分别加以分析 4 2 自行车里程表总体程序设计 在主程序模块中 需要完成对各接口芯片的初始化 自行车里程和速度的初 始化 中断向量的设计以及开中断 循环等待等工作 另外 在主程序模块中还 需要设置启动 清除标志寄存器 里程寄存器 速度寄存器 并对它们进行初始化 然后主程序将根据各标志寄存器的内容 分别完成启动 清除 计程和计速等不 同的操作 P1 0和P1 1口分别用于显示里程状态和速度状态 P1 2 P1 3 P1 6和P1 7口 分别用于设置轮圈的大小 当按下S时 就显示速度 当开关S打开时 就显示里 程 中断0用于对轮子圈数的计数输入 轮子每转一圈 霍尔传感器输出一个低 电平脉冲 将根据里程寄存器中的内容计算和判断出行驶里程数 中断1用于控 制定时器T1的启 停 当输入为0时关闭定时器 此控制信号是将轮子圈数的计数 经二分频后形成 这样 每次定时器T1的开启时间刚好为转一圈的时间 根据轮 子的周长就可以计算出自行车的速度 其程序流程如图4 1所示 27 开始 初始化 P1 2 1 P1 3 1 P1 6 1 P1 7 1 出错提示 将车圈长度调入21H 启动定时器 开中断 将EEPROM中数据读入 P3 0 1 里程处理子程序速度处理子程序 设置车圈长度 设置车圈长度 设置车圈长度 设置车圈长度 Y Y Y Y N N N N Y N 图 4 1 主程序流程图 28 4 3 中断子程序的设计 定时中断是为满足定时或计数的需要而设置的 为此在单片机内部有两个定 时 计数器 以对其中的计数结构进行计数的方法 来实现定时或计数功能 当结 构发生计数溢出时 即表明定时时间或计数值已满 这时就以计数溢出信号作为 中断请求 去置位一个溢出标志 作为单片机接受中断请求的标志 这种中断请 求是在单片机芯片内部发生的 因此无须在芯片上设置引入端 定时 计数器控制寄存器 TCON 是 8 位寄存器 地址为 88H 可以位寻址 其高 4 位用于定时 计数器中断控制 低 4 位借给外部中断 用做中断标志和触发 方式选择位 TF0 TF1 定时器溢出中断申请标志位 由硬件自动置位 0 定时器未溢出 1 定时器溢出 由全 1 变成全 0 时由硬件自动置位 申请中断 中 断被 CPU 响应后由硬件自动清零 TR0 TR1 定时器运行启停控制位 可由用户通过软件设置 0 定时器停止运行 1 定时器启动运行 本设计采用定时中断 对自行车的里程和速度进行计数 中断程序流程图如 图 4 2 所示 4 4 数据处理子程序的设计 1 里程表数子程序 外中断 0 服务程序用于对单片机 12 脚输入的圈脉冲进行计数 为十六进制 计数器 60H 为低位 62H 为高位 每次计数一次后 对里程数据进行一次存储 操作 当车轮每转一圈 通过霍尔元件将脉冲数输入单片机内 通过计数器计出 脉冲数 再用乘法子程序算出里程数 里程处理子程序流程图如图 4 3 所示 外中断 1 服务程序用于处理轮子转动一圈后的计时数据 当标志位 00H 为 1 时 说明计数溢出 放入最大时间值 为 0FFH 当标志位为 0 时 将计 数单元 TL1 TH1 6CH 6DH 的值放入 68H 6BH 单元 通过定时器计出每 转一圈所用的时间 用自行车车轮的周长除以时间就得出自行车的速度 速度流 程图如图 4 4 a 所示 除法子程序流程图如图 4 4 b 所示 29 开 始 现 场 保 护 开 中 断 中 断 处 理 现 场 恢 复 中断返回 关 中 断 关 中 断 开 中 断 图 4 2 中断程序流程图 里程处理子程序 关速度指示灯 开里程指示灯 调圈数转换为公里数 显示公里数 返回 图 4 3 里程处理子程序流程图 30 速度处理子程序 关里程指示灯 开速度指示 调每圈时间转换为速度 是否超速 报警 关报警 显示速度 返回 Y N 图 4 4 a 速度处理子程序流程图 31 除法 移位次数 计数器 被除数左移

温馨提示

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

评论

0/150

提交评论