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

下载本文档

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

文档简介

华北科技学院课程设计 0 电子信息工程专业课程设计任务书电子信息工程专业课程设计任务书 题目 基于单片机的自行车里程计系统设计题目 基于单片机的自行车里程计系统设计 设计内容设计内容 设计制作和调试一个由 8052MCU 组成的自行车里程计系统 通过这个过程学 习熟悉单片机的外围扩展 键盘控制和七段数码管的使用 掌握 51 系列单片机控制 和测试方法 设计以 STC89C51 单片机为核心 以霍尔传感器做为输入 使用独立键 盘控制显示停止 开始 清零 以 LED 为显示方式的自行车里程计 完成基本要求 1 数码管显示 自行车里程 2 键盘控制里程计的开始 停止和清零 设计步骤设计步骤 一 一 总体方案设计总体方案设计 其中 采用 51 系列 MCU 构成典型电路 选用适当的霍尔传感器器件 选择独 立键盘和 4 位共阴极数码管 二 硬件选型工作二 硬件选型工作 三 硬件的设计和实现三 硬件的设计和实现 1 选择计算机机型 采用 51 内核的单片机 2 设计支持计算机工作的外围电路 EPROM RAM I O 端口 键盘 显示 接口电路等 3 接口电路 4 其它相关电路的设计或方案 电源 通信等 四 软件设计四 软件设计 1 分配系统资源 编写系统初始化和主程序模块 2 编写相关子程序 3 其它程序模块 显示与键盘等处理程序 五 编写课程设计说明书 绘制完整的系统电路图 五 编写课程设计说明书 绘制完整的系统电路图 A3 幅面 幅面 课程设计说明书要求课程设计说明书要求 1 课程设计说明书应采用学院统一印制的课程设计 论文 说明书封面 书 写应认真 字迹工整 论文格式参考国家正式出版的书籍和论文编排 2 论理正确 逻辑性强 文理通顾 层次分明 表达确切 并提出自己的见 解和观点 3 课程设计说明书应有目录 摘要 序言 主干内容 按章节编写 主要结 论和参考书 附录应包括程序清单 系统方框图和电路原理图 4 课程设计说明书应包括按上述设计步骤进行设计的分析和思考内容和引用 的相关知识 5 要求打印 B5 纸 排版要求请向指导教师索取 6 每组单独一个题目 每组上限 5 人 时间安排时间安排 课程设计计划时间 4 周 课程设计题目于 15 周下发 课程设计完成后于 18 周四 下午下班前送交电子信息办公室 实验楼三楼 届时指导教师安排短暂答辩 辅导时间和地点辅导时间和地点 答疑请直接与指导教师联系 华北科技学院课程设计 1 目 录 一 设计任务和要求 2 二 设计目的 2 三 设计的具体实现 3 1 系统概述 3 2 STC 单片机的原理及应用 4 3 霍尔传感器电路设计 7 4 USB 供电电路设计 9 5 按键电路设计 10 6 显示电路设计 10 7 复位电路设计 11 8 晶振电路设计 12 9 总电路原理图 13 华北科技学院课程设计 2 10 软件程序设计 14 四 系统调试与仿真 23 五 心得体会和建 议 24 六 附 录 26 七 参考文 献 27 基于单片机的自行车里程计系统设 计报告 一 设计要求 1 设计背景 我国是自行车大国 随着人们生活水平的逐渐提高 人们 对于生活质量的要求也日益增加 尤其是对健身的要求 自行 车在中国普遍作为代步工具 而在国外 自行车却是一项十分 受欢迎的健身运动 因为它无污染 价位低廉 老少皆宜 而 且在运动过程中可以充分享受到大自然 对于忙碌的现代人来 说 无疑是一种较好的放松方法 在中国这种情况也在慢慢发 生变化 因此爱好自行车运动的人十分需要一款装置 以知道 自己的运动情况 并根据外界条件 如温度等进行适当的调节 已达到最佳运动的效果 华北科技学院课程设计 3 2 设计具体要求 设计一个自行车车轮半径已知 用霍尔传感器测定出自行 车的里程 并通过数码管显示出来的自行车里程表系统 二 设计目的 1 通过 单片机原理及接口技术 专业课程设计 完成一 个课题的理论设计和实验调试任务 既加深专业知识的理解 又能培养专业实践技能 提高分析解决问题和解决问题的能力 2 培养从文献和调查研究中获取知识的能力 提高学生从 别人经验 从其他学科找到解决问题的新途径的悟性 3 培养综合运用本专业基本理论 基本知识和基本技能的 能力 使自己获得从事本专业工程技术工作的基本训练 4 培养勇于探索 严谨推理 实事求是 用实践来检验理 论 全方位地考虑问题等科学技术人员应具有的素质 5 提高对工作认真负责 一丝不苟 对同学友爱团结 协 作攻关 对新事物能潜心考察 勇于开拓 勇于实践的基本素 质 6 进一步熟悉掌握计算机和 EDA 工具软件的能力 三 设计的具体实现 华北科技学院课程设计 4 1 系统概述 自行车的速度里程表的硬件电路设计是基础部分 它包括 信号的捕获 放大 整形 单片机的计算处理 数码管的实时 显示和单片机外围基本电路的设计 两大主要器件就是传感器 和单片机 传感器是获取自然或生产领域中信息的关键器件 是现代 信息系统和各种设备不可缺少的信息采集工具 磁传感器是一 种将磁学量信号转变为电信号的器件或装置 随着信息产业 工业自动化 医疗仪器等的飞速发展和计算机应用的普及 需 要大量的传感器将被测或被控的非电信号转换成可与计算机兼 容的电信号 作为输入信号 这就给磁传感器的快速发展提供 了机遇 形成了磁传感器的产业 其中最具代表的磁传感器就 是霍尔传感器 在自动检测系统中 利用霍尔传感器测转数是 一种最基本的测量工作 单片机是本次设计的核心部件 它是信号从采集到输出的 桥梁 而且包括计算 定时 信息处理等功能 本设计中 我们以 STC 公司 STC89C52 单片机为控制核心 采用霍尔传感器检测自行车轮胎的运转情况 通过一定的抗干 扰处理和计算后 由 LED 显示自行车的里程 本设计中 计数 的正确性决定了本装置的精度 如何在复杂的环境中得到正确 的计数脉冲 是本设计的难点 初步的解决办法是在硬件上进 行合理的滤波 软件上进行一定的算法处理 其原理很简单 因为车轮的直径已知 车轮的圆周长便是恒定不变的 由此 可以计算出 霍尔传感器每发出一次计数脉冲自行车所走过的 里程数 系统原理框图如图 3 1 华北科技学院课程设计 5 外部信号 霍尔传感器 里程显示 STC89C52 单片机 图 3 1 自行车里程计系统原理框图 2 STC 单片机的原理及应用 单片机是指集成在一个芯片上的微型计算机 也就是把组 成微型计算机的各种功能部件 包括 CPU Central Processing Unit 随机存储器 RAM Random Access Memory 只读存储器 ROM Read only Memory 基本输入 输出 Input Output 接口 电路 定时器 计数器等部件都制作在一块集成芯片上 构成一 个完整的微型计算机从而实现微型计算机的基本功能 STC89C52 是一种低功耗 高性能 CMOS8 位微控制器 具 有 8K 在系统可编程 Flash 存储器 在单芯片上 拥有灵巧 的 8 位 CPU 和在系统可编程 Flash 使得 STC89C52 为众多 嵌入式控制应用系统提供高灵活 超有效的解决方案 具 有以下标准功能 8k 字节 Flash 512 字节 RAM 32 位 I O 口线 看门狗定 时器 内置 4KB EEPROM MAX810 复位电路 2 个 16 位 定时器 计数器 一 123456 A B C D 654321 D C B A Title NumberRevisionSize B Date 27 Dec 2012Sheet of File C 单单单 单单单 单单单 ddbDrawn By EA VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 T 1 P11 T 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE P 30 TXD 11 RXD 10 8052 S1 S2 a bf c g d e 1 2 3 4 5 6 7 e d c dp b a v 8 f dp g 10 v 3 LED1 a bf c g d e 1 2 3 4 5 6 7 e d c dp b a v 8 f dp g 10 v 3 LED2 a bf c g d e 1 2 3 4 5 6 7 e d c dp b a v 8 f dp g 10 v 3 LED3 a bf c g d e 1 2 3 4 5 6 7 e d c dp b a v 8 f dp g 10 v 3 LED4 1 2 3 4 5 6 7 8 9 P1 10K E 1 L 11 1D 2 2D 3 3D 4 4D 5 5D 6 6D 7 7D 8 8D 9 1Q 19 2Q 18 3Q 17 4Q 16 5Q 15 6Q 14 7Q 13 8Q 12 VCC 20 GND 10 U1 74HC573 E 1 L 11 1D 2 2D 3 3D 4 4D 5 5D 6 6D 7 7D 8 8D 9 1Q 19 2Q 18 3Q 17 4Q 16 5Q 15 6Q 14 7Q 13 8Q 12 VCC 20 GND 10 U2 74HC573 D0 D1 D2 D3 D4 D5 D7 D6 SDA SCL 18B20 FM CSUSB DIOLA DULA WELA NetLabel19 NetLabel20 NetLabel21 WR RD RST X2 X1 LCDEN RS CSDA INT1 DB8 DB7 DB6 DB5 DB4 DB3 DB2 DB1WR RD 40 VCC VCC VCCVCC 20 DULA D0 D1 D2 D3 D4 D5 D6 D7 a b c d e f g h WELA D0 D1 D2 D3 D4 D5 D6 D7CSAD WE6 WE5 WE4 WE3 WE2 WE1 e d c h b a WE1 f g e d c h b a WE2 f ggg f WE3 a b h c d ee d c h b a WE4 f S22 VCC R16 1K R17 10K Y1 11 0592MHZ Y2 6MHZ CJ3 10UF RST C4 30P C5 30P X1 X2 C2 20P C3 20P UXT1 UXT2 DATA0A0 DATA1VOUT3 3 DATA2D DATA3D GNDVCC DATA4XTAL2 DATA5XTAL1 DATA6GL N DATA7RESET N ALEEOT N CS NDMACK N SUSPENDDMREQ CLKOUTWR N INT NRD N PDIUSB D12 1 2 INT1 D0 D1 D2 D3 D4 D5 D6 D7 ALE CSUSB INT1 C1 104 R RES1 R4 18 R5 18 R1 1M R2 1M R6 1K 7 10K R8 10K R9 10K R10 1M VCC VCC VCC UXT1 UXT2 D9 VCC WR RD D1 D2 USB1 USB R11 1K S1 D10 CJ1 10UF VCC VCC GND OUT A44E HEADER 3 VCC R9 1K CSDA 自自行行车车里里程程计计 华北科技学院课程设计 6 个 6 向量 2 级中断结构 全双工串行口 另外 STC89X52 可降至 0Hz 静态逻辑操作 支持 2 种软件可选择节电模式 空闲模式下 CPU 停止工作 允许 RAM 定时器 计数器 串口 中断继续工作 掉电保护方式下 RAM 内容被保存 振荡器被冻结 单片机 一切工作停止 直到下一个中 断或硬 件复位为止 STC89C51 管脚图如图 3 2 所示 图 3 2 STC89C52 引脚图 STC89C52 的主要管脚功能如下 P0 0 P0 7 P0 口是一组 8 位漏极开路型双向 I O 口 也 是地址 数据总线复用口 P1 0 P1 7 P1 是一个带内部上拉电阻的 8 位双向 I O 口 P2 0 P2 7 P2 是一个带内部上拉电阻的 8 位双向 I O 口 P3 0 P3 7 P3 是一个带内部上拉电阻的 8 位双向 I O 口 华北科技学院课程设计 7 ALE 地址锁存控制信号 在系统扩展时 ALE 用于控制把 P0 口输出的低 8 位地址锁存起来 以实现低位地址和数据的分 时传送 此外 由于 ALE 是以晶振 1 6 的固定频率输出的正脉 冲 因此 可作为外部时钟或外部定时脉冲使用 外部程序存储器读选通信号 在读外部 ROM 时 PSEN 有效 低电平 以实现外部 ROM 单元的读操作 PSEN 访问程序存储控制信号 当信号为低电平时 对EAEA ROM 的读操作限定在外部程序存储器 当信号为高电平时 EA 对 ROM 的读操作是从内部程序存储器开始 并可延至外部程序 存储器 RST 复位信号 当输入的复位信号延续两个机器周期以上 的高电平时即为有效 用以完成单片机的复位初始化操作 XTALl 和 XTAL2 外接晶体引线端 当使用芯片内部时钟时 此二引线端用于外接石英晶体和微调电容 当使用外部时钟时 用于接外部时钟脉冲信号 VSS 地线 VCC 5V 电源 3 霍尔传感器电路设计 本次设计信号的捕获采用的是霍尔传感器 霍尔器件具有 许多优点 它们的结构牢固 体积小 重量轻 寿命长 安装 方便 功耗小 频率高 可达 1MHz 耐震动 不怕灰尘 油污 水汽及烟雾等的污染或腐蚀 霍尔线性器件的精度高 线性度 好 霍尔开关器件无触点 无磨损 输出波形清晰 无抖动 华北科技学院课程设计 8 无回跳 位置重复精度高 按照霍尔器件的功能可将它们分为 霍尔线性器件和霍尔开关器件 前者输出模拟量 后者输出数 字量 按被检测对象的性质可将它们的应用分为 直接应用和 间接应用 A44E 集成霍尔开关封装引脚图如图 3 3 所示 在电源端加 电压 Vcc 经稳压器稳压后加在霍尔电势发生器的两端 根据霍 尔效应原理 当霍尔片处在磁场中时 在垂直于磁场的方向通 以电流 则与这二者相垂直的方向上将会产生霍尔电势差 VH 输 出 该 VH 信号经放大器放大后送至施密特触发器整形 使其成 为方波输送到 OC 门输出 当施加的磁场达到工作点时 触发器 输出高电压 相对于地电位 使三极管导通 此时 OC 门输出端 输出低电压 通常称这种状态为开 当施加的磁场达到释放点 时 触发器输出低电压 三极管截止 使 OC 门输出高电压 这 种状态为关 这样两次电压变换 使霍尔开关完成了一次开关 动作 工作点与释放点的差值一定 此差值称为磁滞 在此差 值内 V0 保持不变 因而使开关输出稳定可靠 这也就是集电 成霍尔开关传感器优良特性之一 测量时 在 1 2 两端加 5V 直流电压 在输出端 3 与 1 之间接一个 1k 的负载电阻 如图 3 4 所示 华北科技学院课程设计 9 图 3 3 A44E 外形 图 3 4 集成霍尔开关接线图 A44E 输出端 OUT 连到单片机外部中断 0 上 当磁铁靠近 A44E 时输出端产生一个低电平信号 使 CPU 产生一次中断计一 次数 假定轮圈的周长为 L 在轮圈上安装 m 个永久磁铁 则测 华北科技学院课程设计 10 得的里程值最大误差为 L m 本设计中取 m 1 当轮子每转一圈 通过霍尔元件传感器采集到一个脉冲信号 并从引脚 P3 2 中断 0 端输入 传感器每获取一个脉冲信号即对系统提供一次计数中 断 每次中断代表车轮转动一圈 中断数 n 轮圈的周长为 L 的 乘积为里程值 里程 S 周长 L 圈数 n 4 USB 供电电路设计 电源总是电路设计不可缺少的部分 本次设计采用了USB电 源供电 USB接口可以向外提供电源 且是5V的电压 非常适合 于TTL信号的系统 特别是单片机系统 可以使用这个电源为 USB供电 这样便减少了电源设计 简化了USB系统结构 在USB 总线系统中 USB主机和USB集线器可以通过VBUS和GND两根电源 线向外提供电源 电源一般4 75 5 25V USB协议中规定 每 个USB端口最大数据电流为500mA USB端口具有高输出功率和低 输出功率之分 同样 USB设备可以按照电流的消耗分为高功率 消耗设备和低功率消耗设备 高功率消耗设备一般需要 100 500mA的电流 低功率消耗设备一般需0 100mA的电流 电 路图如图3 5所示 华北科技学院课程设计 11 图 3 5 USB 供电电路 5 按键电路设计 键盘在单片机应用系统中 实现输入数据 传送命令的功 能 是人工干预的主要手段 键盘是单片机系统设计中一种主 要的信息输入接口 合理的设计 不仅可以节省系统的设计成 本 更可使仪器设备的操作变得更为简单 方便 很大程度上 提高系统综合性能 本次设计中通过按键 S1 来控制里程计的开 始和停止 通过按键 S2 使里程计清零 电路图如图 3 6 所示 图 3 6 按键电路 6 显示电路设计 显示模块可以采用液晶显示器或者数码管显示器 但数码 管具有低功耗 容易控制 占用 CPU 资源少这些优点 考虑到 成本原因 选择了 4 位的七段共阴极数码管显示已经完全足够 本设计中使用 4 个单位数据管 数码管的阳极全部连接在 一起 然后与 U1 原件 74HC573 锁存器的数据输出端相连 所存 华北科技学院课程设计 12 起的数据输入端连接单片机的 P0 口低四位 P0 口同时加了上拉 电阻 数码管中 WE1 WE2 WE3 WE4 是它们的位选端 每一个 数码管对应一个位选端 与 U2 原件 74HC573 的数据输出端的低 四位相连 U2 的数据输入端也连接到单片机的 P0 口 两个锁存 器的锁存端分别与 P2 6 和 P2 7 相连 单片机控制锁存器的锁 存端 进而控制锁存器的数据输出 这种时分控制的方法便可 方便地控制任意数码管显示任意数字 电路图如图 3 7 所示 图 3 7 显示电路 7 复位电路设计 123456 A B C D 654321 D C B A Title NumberRevisionSize B Date 6 Jan 2013 Sheet of File C 单单单 单单单 单单单 ddbDrawn By EA VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 T 1 P11 T 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE P 30 TXD 11 RXD 10 8052 S1 S2 a bf c g d e 1 2 3 4 5 6 7 e d c dp b a v 8 f dp g 10 v 3 LED1 a bf c g d e 1 2 3 4 5 6 7 e d c dp b a v 8 f dp g 10 v 3 LED2 a bf c g d e 1 2 3 4 5 6 7 e d c dp b a v 8 f dp g 10 v 3 LED3 a bf c g d e 1 2 3 4 5 6 7 e d c dp b a v 8 f dp g 10 v 3 LED4 1 2 3 4 5 6 7 8 9 P1 10K E 1 L 11 1D 2 2D 3 3D 4 4D 5 5D 6 6D 7 7D 8 8D 9 1Q 19 2Q 18 3Q 17 4Q 16 5Q 15 6Q 14 7Q 13 8Q 12 VCC 20 GND 10 U1 74HC573 E 1 L 11 1D 2 2D 3 3D 4 4D 5 5D 6 6D 7 7D 8 8D 9 1Q 19 2Q 18 3Q 17 4Q 16 5Q 15 6Q 14 7Q 13 8Q 12 VCC 20 GND 10 U2 74HC573 D0 D1 D2 D3 D4 D5 D7 D6 SDA SCL 18B20 FM CSUSB DIOLA DULA WELA P3 0 P3 1 ALE WR RD RST X2 X1 LCDEN RS CSDA INT1 DB8 DB7 DB6 DB5 DB4 DB3 DB2 DB1WR RD 40 VCC VCC VCCVCC 20 DULA D0 D1 D2 D3 D4 D5 D6 D7 a b c d e f g h WELA D0 D1 D2 D3 D4 D5 D6 D7CSAD WE6 WE5 WE4 WE3 WE2 WE1 e d c h b a WE1 f g e d c h b a WE2 f ggg f WE3 a b h c d ee d c h b a WE4 f S22 VCC R16 1K R17 10K Y1 11 0592MHZ Y2 6MHZ CJ3 10UF RST C4 30P C5 30P X1 X2 C2 20P C3 20P UXT1 UXT2 DATA0A0 DATA1VOUT3 3 DATA2D DATA3D GNDVCC DATA4XTAL2 DATA5XTAL1 DATA6GL N DATA7RESET N ALEEOT N CS NDMACK N SUSPENDDMREQ CLKOUTWR N INT NRD N PDIUSB D12 1 2 INT1 D0 D1 D2 D3 D4 D5 D6 D7 ALE CSUSB INT1 C1 104 R3 RES1 R4 18 R5 18 R1 1M R2 1M R6 1K R7 10K R8 10K R9 10K R10 1M VCC VCC VCC UXT1 UXT2 D9 VCC WR RD D1 D2 USB1 USB R11 1K S1 D10 CJ1 10UF VCC VCC GND OUT A44E HEADER 3 VCC R9 1K CSDA 基基于于单单片片机机的的自自行行车车里里程程计计系系统统设设计计 邓邓九九明明电电信信B B0 09 91 1班班200903014102 华北科技学院课程设计 13 复位是单片机的初始化操作 它是由外部的复位电路来实 现 只需给单片机的复位引脚RST加上大于2个机器周期的高电 平就可使其复位 电路图如图3 8所示 图 3 8 复位电路 8 晶振电路设计 晶振电路用于产生单片机工作时所需的时钟控制信号 通 过单片机的引脚XTAL1 XTAL2跨接石英晶体振荡器和微调电容 构成一个稳定的自激振荡器 时钟频率直接影响单片机的速度 晶振电路的质量也直接影响单片机系统的稳定性 晶振电路电 路图如图3 9所示 华北科技学院课程设计 14 图 3 9 晶振电路 9 总电路原理图 华北科技学院课程设计 15 123456 A B C D 654321 D C B A Title NumberRevisionSize B Date 27 Dec 2012Sheet of File C 单单单 单单单 单单单 ddbDrawn By EA VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 T 1 P11 T 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE P 30 TXD 11 RXD 10 8052 S1 S2 a bf c g d e 1 2 3 4 5 6 7 e d c dp b a v 8 f dp g 10 v 3 LED1 a bf c g d e 1 2 3 4 5 6 7 e d c dp b a v 8 f dp g 10 v 3 LED2 a bf c g d e 1 2 3 4 5 6 7 e d c dp b a v 8 f dp g 10 v 3 LED3 a bf c g d e 1 2 3 4 5 6 7 e d c dp b a v 8 f dp g 10 v 3 LED4 1 2 3 4 5 6 7 8 9 P1 10K E 1 L 11 1D 2 2D 3 3D 4 4D 5 5D 6 6D 7 7D 8 8D 9 1Q 19 2Q 18 3Q 17 4Q 16 5Q 15 6Q 14 7Q 13 8Q 12 VCC 20 GND 10 U1 74HC573 E 1 L 11 1D 2 2D 3 3D 4 4D 5 5D 6 6D 7 7D 8 8D 9 1Q 19 2Q 18 3Q 17 4Q 16 5Q 15 6Q 14 7Q 13 8Q 12 VCC 20 GND 10 U2 74HC573 D0 D1 D2 D3 D4 D5 D7 D6 SDA SCL 18B20 FM CSUSB DIOLA DULA WELA NetLabel19 NetLabel20 NetLabel21 WR RD RST X2 X1 LCDEN RS CSDA INT1 DB8 DB7 DB6 DB5 DB4 DB3 DB2 DB1WR RD 40 VCC VCC VCCVCC 20 DULA D0 D1 D2 D3 D4 D5 D6 D7 a b c d e f g h WELA D0 D1 D2 D3 D4 D5 D6 D7CSAD WE6 WE5 WE4 WE3 WE2 WE1 e d c h b a WE1 f g e d c h b a WE2 f ggg f WE3 a b h c d ee d c h b a WE4 f S22 VCC R16 1K R17 10K Y1 11 0592MHZ Y2 6MHZ CJ3 10UF RST C4 30P C5 30P X1 X2 C2 20P C3 20P UXT1 UXT2 DATA0A0 DATA1VOUT3 3 DATA2D DATA3D GNDVCC DATA4XTAL2 DATA5XTAL1 DATA6GL N DATA7RESET N ALEEOT N CS NDMACK N SUSPENDDMREQ CLKOUTWR N INT NRD N PDIUSB D12 1 2 INT1 D0 D1 D2 D3 D4 D5 D6 D7 ALE CSUSB INT1 C1 104 R RES1 R4 18 R5 18 R1 1M R2 1M R6 1K 7 10K R8 10K R9 10K R10 1M VCC VCC VCC UXT1 UXT2 D9 VCC WR RD D1 D2 USB1 USB R11 1K S1 D10 CJ1 10UF VCC VCC GND OUT A44E HEADER 3 VCC R9 1K CSDA 自自行行车车里里程程计计 10 软件程序设计 华北科技学院课程设计 16 主程序流程图如图 3 10 所示 N N Y Y 改变计数器状态 停止 开启 开始 初始化 计数器开始计数 LED 显示里程 按键 S1 是否按下 按键 S1 是否按下 结束 计数器清零 图 3 10 主程序流程图 显示子程序设计 本设计中使用 4 个单位数据管 数码管的阳极全部连接在 一起 然后与 U1 原件 74HC573 锁存器的数据输出端相连 所存 起的数据输入端连接单片机的 P0 口低四位 P0 口同时加了上拉 电阻 数码管中 WE1 WE2 WE3 WE4 是它们的位选端 每一个 华北科技学院课程设计 17 数码管对应一个位选端 与 U2 原件 74HC573 的数据输出端的低 四位相连 U2 的数据输入端也连接到单片机的 P0 口 两个锁存 器的锁存端分别与 P2 6 和 P2 7 相连 先打开 U1 锁存器 控制段选端 输出需要显示的数字 然 后关闭 U1 锁存器 打开 U2 锁存器 控制位选端 如此依次使 四个数码管显示该位的数字 显示子程序如下 void display uchar qian uchar bai uchar shi uchar ge dula 1 P0 table qian 送千位段选数据 dula 0 P0 0 xff 送位选数据前关闭所有显示 防止打 开位选锁存时 wela 1 原来段选数据通过位选锁存器造 成混乱 P0 0 xfe 送位选数据 wela 0 delayms 5 延时 dula 1 P0 table bai 送百位段选数据 dula 0 P0 0 xff wela 1 P0 0 xfd 华北科技学院课程设计 18 wela 0 delayms 5 dula 1 P0 table shi 送十位段选数据 dula 0 P0 0 xff wela 1 P0 0 xfb wela 0 delayms 5 dula 1 P0 table ge 送个位段选数据 dula 0 P0 0 xff wela 1 P0 0 xf7 wela 0 delayms 5 里程计算子程序 对单片机 P3 2 口输入的圈脉冲进行计数 计数器 0 打开但 不打开中断 通过读取计数值进行控制 里程计算子程序流程 图如图 3 11 华北科技学院课程设计 19 N Y 开始 计数器 0 对外部信号计数 通过公式计算出里程 里程是否大于 10000 计数 器清 0 返回里程值 图 3 11 里程计算子程序流程图 里程计算子程序如下 uint read uchar tl th1 th2 uint val lc while 1 th1 TH0 tl TL0 th2 TH0 华北科技学院课程设计 20 if th1 th2 break val th1 256 tl 读取计数器 0 所计数值 lc val 2 计算自行车行驶的里程数 return lc 总程序 include 52 系列单片机头文件 define uchar unsigned char define uint unsigned int sbit dula P2 6 申明 U1 锁存器的锁存端 sbit wela P2 7 申明 U2 锁存器的锁存端 sbit key1 P3 6 申明独立键盘 1 sbit key2 P3 7 申明独立键盘 2 uchar code table 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f 0 x77 0 x7c 0 x39 0 x5e 0 x79 0 x71 void delayms uint void display uchar qian uchar bai uchar shi uchar ge 显示子函数 dula 1 华北科技学院课程设计 21 P0 table qian 送千位段选数据 dula 0 P0 0 xff 送位选数据前关闭所有显示 防止打 开位选锁存时 wela 1 原来段选数据通过位选锁存器造 成混乱 P0 0 xfe 送位选数据 wela 0 delayms 5 延时 dula 1 P0 table bai 送百位段选数据 dula 0 P0 0 xff wela 1 P0 0 xfd wela 0 delayms 5 dula 1 P0 table shi 送十位段选数据 dula 0 P0 0 xff wela 1 P0 0 xfb 华北科技学院课程设计 22 wela 0 delayms 5 dula 1 P0 table ge 送个位段选数据 dula 0 P0 0 xff wela 1 P0 0 xf7 wela 0 delayms 5 void delayms uint xms uint i j for i xms i 0 i i xms 即延时约 xms 毫秒 for j 110 j 0 j uint read uchar tl th1 th2 uint val lc while 1 华北科技学院课程设计 23 th1 TH0 tl TL0 th2 TH0 if th1 th2 break val th1 256 tl 读取计数器 0 所计数值 lc val 2 计算自行车行驶的里程数 return lc void main uchar a b c d uint num TMOD 0 x05 设置计数器 0 为工作方式 1 0000 0101 TH0 0 将计数器寄存器初值清零 TL0 0 TR0 1 while 1 if key1 0 delayms 10 if key1 0 华北科技学院课程设计 24 while key1 TR0 TR0 num read if key2 0 delayms 10 if key2 0 TH0 0 TL0 0 while key2 if num 10000 num 0 TH0 0 将计数器寄存器值清零 TL0 0 a num 1000 b num 1000 100 c num 1000 100 10 华北科技学院课程设计 25 d num 10 display a b c d 四 系统调试与仿真 本次实验采用的是 uVision3 软件进行调试 Keil C51 是美 国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开 发系统 与汇编相比 C 语言在功能上 结构性 可读性 可维 护性上有明显的优势 因而易学易用 用过汇编语言后再使用 C 来开发 体会更加深刻 Keil C51 软件提供丰富的库函数和功能强大的集成开发调 试工具 全 Windows 界面 另外重要的一点 只要看一下编译 后生成的汇编代码 就能体会到 Keil C51 生成的目标代码效率 非常之高 多数语句生成的汇编代码很紧凑 容易理解 在开 发大型软件时更能体现高级语言的优势 单片机开发中除必要的硬件外 同样离不开软件 我们写 的汇编语言源程序要变为 CPU 可以执行的机器码有两种方法 一种 Keil 软件图标是手工汇编 另一种是机器汇编 目前已极 少使用手工汇编的方法了 机器汇编是通过汇编软件将源程序 变为机器码 用于 MCS 51 单片机的汇编软件有早期的 A51 随 着单片机开发技术的不断发展 从普遍使用汇编语言到逐渐使 用高级语言开发 单片机的开发软件也在不断发展 Keil 软件 是目前最流行开发 MCS 51 系列单片机的软件 这从近年来各仿 真机厂商纷纷宣布全面支持 Keil 即可看出 Keil 提供了包括 C 编译器 宏汇编 连接器 库管理和一个功能强大的仿真调试 器等在内的完整开发方案 通过一个集成开发环境 uVision 华北科技学院课程设计 26 将这些部份组合在一起 运行 Keil 软件需要 Pentium 或以上的 CPU 16MB 或更多 RAM 20M 以上空闲的硬盘空间 WIN98 NT WIN2000 WINXP 等操作系统 掌握这一软件的使用 对于使用 51 系列单片机的爱好者来说是十分必要的 如果你使 用 C 语言编程 那么 Keil 几乎就是你的不二之选 目

温馨提示

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

评论

0/150

提交评论