电动车速度与里程测量仪的设计毕业论文.doc_第1页
电动车速度与里程测量仪的设计毕业论文.doc_第2页
电动车速度与里程测量仪的设计毕业论文.doc_第3页
电动车速度与里程测量仪的设计毕业论文.doc_第4页
电动车速度与里程测量仪的设计毕业论文.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1 电动车速度与里程测量仪的设计毕业论文电动车速度与里程测量仪的设计毕业论文 目 录 第一章第一章 引言引言 5 5 1 1 课题的背景 发展和意义 5 1 2 系统设计概述 5 1 3 各章节的安排 6 第二章第二章 电动电动车车速度速度里程表的设计基本原理里程表的设计基本原理 7 7 2 1 单片机最小系统 7 2 2 霍尔传感器 8 2 3 LED数码显示 9 2 4 存储器EEPROM 9 第三章第三章 电动车速度里程表电动车速度里程表硬件实现方法硬件实现方法 10 10 3 1 系统概述 10 3 2 霍尔传感器及其测量系统 11 3 3 系统硬件电路的设计 12 第四章第四章 电动车电动车里程表软件实现方法里程表软件实现方法 14 14 4 1 系统主要程序设计 14 4 2 电动车的速度里程表软件程序设计 16 第五章第五章 仿真与测试仿真与测试 30 30 5 1 系统仿真调试 33 5 2 调试故障及原因分析 56 第六章第六章 结结论论 110110 参考文献参考文献 112112 致致谢谢及声明及声明 12123 3 2 第一章第一章 引言引言 1 11 1 课题背景 发展及意义课题背景 发展及意义 我国是自行车大国 随着人们生活水平的不断提高 自行车已经不仅仅是 运输 代步的工具 其辅助功能也变得越来越重要 因此 人们希望自行车的 娱乐 休闲 锻炼的功能越来越多 能带来大家更多的健康与快乐 在这个背 景下 自行车里程表作为自行车的一大辅助工具迅速发展起来 科学 美观 合理设计自行车里程表有一定的实用价值 它能合理计算出速度及公里数 使运 动者运动适量 达到健康运动与代步的最佳效果 随着自行车里程表的发展 其功能也逐渐从单一的里程显示发展到速度 时 间显示 甚至有的还具有测量骑车人的心跳 显示骑车人热量消耗等功能 让 人能清楚地知道当前的速度 时间 里程等物理量 如佛山高明华劲电子公司 的自行车里程表 MS 601 能动态显示行驶里程 骑车时间 实时车速等 1 21 2 系统设计概述系统设计概述 本设计中 我们 AT89C51 单片机为控制核心 采用霍尔传感器检测自行车 轮胎的运转情况 通过一定的抗干扰处理和计算后 由 LED 显示自行车的里程 当超速时蜂鸣器报警 本设计中 计数的正确性决定了本装置的精度 如何在 复杂的环境中得到正确的计数脉冲 是本设计的难点 初步的解决办法是在硬 件上进行合理的滤波 软件上进行一定的算法处理 本设计介绍的速度与里程 表设计以单片机最小系统和霍尔传感器为核心 利用 AT89C51 单片机设计一种 Proteus 环境下 51 单片机的多功能自行车里程表 要求该表具有自行车行驶速 度 超速报警 累计总里程等计量功能 可通过开关切换显示不同的内容 传 感器将不同车速转变成的不同频率的脉冲信号输入到单片机进行控制与计算 再采用 LED 数码管模块进行示 使得自行车的速度与里程数据能直观的显示给使 用者 提供给用户安全行驶的一些基本信息 该速度里程表能将传感器输入到 单片机的脉冲信号的宽度 传感器将车速转变成相应宽度的脉冲信号 实时地测 3 量出来 然后通过单片机计算出速度和里程 也可以测出速度 再将所得的数 据存储到串口数据存储器 并由 LED 数码管显示模块实时显示出所测速度 如 果所给的频率过高超过给定值蜂鸣器就语音报警提示 1 31 3 各章节的安排各章节的安排 第一章叙述了自行车里程表的背景 发展 意义以及本自行车里程表的概 述 第二章介绍了自行车里程表的设计方法与研究 主要是对设计中所需设备 的详细介绍 包括霍尔传感器 单片机最小系统 数据存储器EEPROM及LED数码 管 具体为 介绍霍尔传感器的基本原理 及其应用和发展 单片机最小系统的 基本结构 工作原理及其性能 数据存储器EEPROM的引脚极其性能 LED数码管 的工作原理 第三章是本论文的自行车里程表的硬件原理图设计部分 介绍了自行车里 程表的总体设计思想 电路图及其原理 第 4 章是自行车里程表的软件实现部分 汇编语言进行编程 第 5 章是介绍系统的仿真与测试 以及过程中遇到的问题 解决方案 第六章为总结和展望 介绍了本论文实现的功能 阐述本课题的现实意义 以及对未来自行车里程表技术的展望 4 第二章第二章 自行车里程表的设计基本原理自行车里程表的设计基本原理 2 12 1 单片机最小系统单片机最小系统 单片机最小系统 或者称为最小应用系统 是指用最少的元件组成的单片机 可以工作的系统 对 51 系列单片机来说 最小系统一般应该包括 单片机 晶振 电路 复位电路 单片机要正常运行 必须具备一定的硬件条件 其中最主要的就是三个基 本条件 1 电源正常 2 时钟正常 3 复位正常 在 AT89S51 单片机的 40 个引 脚中 电源引脚 2 根 晶振引脚 2 根 控制引脚 4 根 可编程输入输出引脚 32 根 1 工作电源 电源是单片机工作的动力源泉 对应的接线方法为 40 脚 VCC 电源引脚 工作时接 5V 电源 20 脚 GND 为接地线 2 2 复位电路 由电容串联电阻构成 由图并结合 电容电压不能突变 的性 质 可以知道 当系统一上电 RST 脚将会出现高电平 并且 这个高电平持续的时 间由电路的 RC 值来决定 典型的 51 单片机当 RST 脚的高电平持续两个机器周期 以上就将复位 所以 适当组合 RC 的取值就可以保证可靠的复位 一般教科书推 荐 C 取 10u R 取 8 2K 当然也有其他取法的 原则就是要让 RC 组合可以在 RST 脚上产生不少于 2 个机器周期的高电平 3 晶振电路 时钟电路为单片机产生时序脉冲 单片机所有运算与控制过程 都是在统一的时序脉冲的驱动下的进行的 如果单片机的时钟电路停止工作 晶振停振 那么单片机也就停止运行了 当采用内部时钟时 连接方法如下图 所示 在晶振引脚 XTAL1 19 脚 和 XTAL2 18 脚 引脚之间接入一个晶振 两个引脚对地分别再接入一个电容即可产生所需的时钟信号 电容的容量一般 在几十皮法 如 30PF 典型的晶振取 11 0592MHz 因为可以准确地得到 9600 波 特率和 19200 波特率 用于有串口通讯的场合 12MHz 产生精确的 uS 级时歇 方 便定时操作 4 控制引脚 EA 接法 EA VPP 31 脚 为内外程序存储器选择控制引脚 当 EA 为低电位时 单片机从外部程序存储器取指令 当 EA 接高电平时 单片 5 机从内部程序存储器取指令 AT89C51 单片机内部有 4KB 可反复擦写的程序存 储器 因此我们把 EA 接到 5V 高电平 让单片机运行内部的程序 我们就可以 通过反复烧写来验证我们的程序了 2 22 2 霍尔传感器霍尔传感器 霍尔传感器是一种利用霍尔效应能实现磁电转换的传感器 用它们可以检 测磁场及其变化 霍尔传感器具有许多优点 霍尔传感器价格便宜且具有体积 小 灵敏度高 响应速度快 温度性能好 精确度高 可靠性高等特点 能很好 地满足车轮测速系统设计的需要 它们的结构牢固 寿命长 安装方便 功耗 小 频率高 耐震动 不怕灰尘 油污及盐雾等的污染或腐蚀 霍尔开关器件 具有无触点 输出波形清晰 无抖动 位置重复精度高等优点 所设计的基于 霍尔元件的脉冲发生器要求成本低 构造简单 性能好 在机车电气系统中存 在着较为恶劣的电磁环境 因此要求产品本身具有较强的抗干扰能力 1 霍尔效应 在一块半导体薄片上 其长度为 l 宽度为 b 厚度为 d 当它被置于磁感应强度 的磁场中 如果在它的相对的两边通以控制电流 且磁场方向与电流方向正交 则在半导体另外两端将产生一个大小与控制电流 方向 和磁感应强度 乘积成正比的电势 H 即 UH KHIB 其中 H 为霍尔元 件的灵敏度 该电势就称为霍尔电势 半导体薄片就是霍尔元件 2 工作原理 由于霍尔元件具有在静止状态下感受磁场的能力 且结构简 单 形小体轻 频带宽 可从直流到微波 动态特性好 动态范围大 寿命长 和可进行非接触测量等优点 故在检测技术 自动控制技术和信息处理等方面 得到日益广泛应用 霍尔传感器在未来发展中的趋势将是高灵敏度 高精度和 高稳定度 它将在微电子技术发展的基础上更加飞速的发展 A44E芯片属于开关型的霍尔器件 其工作电压范围比较宽 4 5 18 V 其 输出的信号符合TTL电平标准 可以直接接到单片机的I O端口上 而且其最高检 测频率可达到1MHz A44E霍尔开关集成电路应用霍尔效应原理 采用半导体集成 技术制造的磁敏电路 它是由电压调整器 霍尔电压发生器 差分放大器 史密 特触发器 温度补偿电路和集电极开路的输出级组成的磁敏传感电路 其输入为 磁感应强度 输出是一个数字电压信号 霍尔传感器A44E芯片的引脚接线图见图3 2所示 6 图 3 2 典型应用于无触点开关 汽车点火器 刹车电路 位置转速检测与控制 安全报警装置和纺织控制系统 霍尔传感器是一个3端器件 外形与三极管相似 只要接上电源 地 即可工作 输出通常是集电极开路 OC 门输出 工作电压范围 宽 使用非常方便 引脚1 是电源Vcc 引脚2 是地GND 引脚3是输出OUT 霍尔 器件的工作电压不得超过规定的Vcc 大部分霍尔开关均为OC输出 因此 输出 应接负载电阻 其数值值取决于负载电流的大小 不得超负载使用 2 32 3 LEDLED 数码显示数码显示 与 LCD 液晶显示器相比 数码管虽没有液晶显示器那样的显示效果 也没 有液晶显示器做图形界面具有人机交互美观的特点 但是 LED 有其自己的特点 它具有低功耗 容易控制 占用 CPU 资源少这些优点 从而成为一些显示器的 首选 数码管由 7 个发光二极管组成 行成一个日字形 它门可以共阴极 也可 以共阳极 通过解码电路得到的数码接通相应的发光二极而形成相应的字符 它可以显示从 1 到 9 的数字 这足以满足设计要求 由霍尔传感器采集的脉冲数据信号 通过二分频后向单片机提供数据脉冲 单片机再对其进行记数 当达到先前所设计的计数值的时候单片机就申请中断 从而使单片机响应中断程序 既使其输出一个信号代表此时自行车已经行驶了 1KM 这时在经过显示单元电路使 LED 数码管显示 1KM 当第二个信号来的时候 电路实现加一的功能后在送 LED 显示 这样就实现了显示里程的目的 2 42 4 存储器存储器 EEPROMEEPROM 里程数据存储电路是本次设计的关键电路 单片机首先向 AT24C01 发送写 信号 当确认后从单片机内部的数据存储单元提取数据然后向 AT24C01 的内部 地址传送数据 当显示里程时 单片机首先向 AT24C01 发送读信号 然后确认 后 单片机从 AT24C01 内部的地址向单片机的读出单元字节读出数据 供显示 所用 因此 最终可保证掉电时数据不丢失 I C 总线的介绍 I C 总线是双线串行总线 I C 总线采用二线传输 即 SDA 串行数据线和 1 2 3 7 SCL 串行时钟线 总线和器件之间的数据传送均由 SDA 数据线完成 一个 I C 总线系统里的所有外围器件均采用器件地址和引脚地址的编址方式 系统中主 CPU 对任何节点的寻址没有采用传统的片选线方式 而是采用纯软件的寻址方 式 为了能使总线上的所有节点器件输出实现 线 与逻辑功能 I C 器件输 出端必须是漏极或集电极开路结构 即 SDA 和 SCL 接口线上必须加上拉电阻 里程数据存储电路 如图 5v AT24C01 图 2 3 里程数据存储电路 第三章第三章 硬件实现的设计方法与原理硬件实现的设计方法与原理 3 13 1 系统概述系统概述 本系统是由数据采集 单片机控制系统 键盘显示 数据存储 4 部分构成 其中数据的采集是由霍尔传感器来完成的 它的输出是矩形脉冲 经二分频后 就向单片机系统提供转速信号 其中关键的处理由单片机系统来完成 单片机 将对 INT1 脚的信号进行计数 当计数的脉冲达到 1KM 的时候 INT1 申请中断 对外输出信号 输出的信号由显示部分送 LED 进行显示 显示当前的行驶里程 情况 在本次行驶过后数据存入 EEPROM 中 以便下次行驶时在其基础上继续计 数送出显示总共的里程数 以达到记忆的目的 键盘的作用是提供人对整个系 统的控制 它将实现整个系统开关 显示器的开关 部分单元电路的控制 以 上所诉就是整个系统的总体设计思想 利用霍尔元件对里程进行测量 将霍尔元件安装在车前叉的一侧 在车圈 侧面贴一个磁片 当磁片经过霍尔元件时 霍尔元件输出端的电压发生变化产 P1 4 P1 5 AT8951 A0 VCC A1 WP A2 SDA A3 SCL 8 生脉冲 单片机根据脉冲数来计算里程 霍尔元件不受天气的影响 即便被泥 沙或灰尘覆盖对测量也不会有任何影响 由霍尔元件加整形电路构成的霍尔开 关系统 具有输出响应快 数字脉冲性能好 安装方便 性能可靠 不受光线 泥水等因素影响 价格便宜的优点 该设计能实时地将所测的累计里程数显示出来 主要是将传感器输入到单 片机的脉冲信号的频率 传感器将不同车速转变成不同频率的脉冲信号 实时 地测量出来 考虑到信号的衰减 干扰等影响 在信号送入单片机前应对其进 行放大整形 然后通过单片机计算出里程 再将所得的数据存储到数据存储器 并由 LED 显示模块交替显示所测里程 本设计的里程数的算法是一种大概的算 法 假设在一定时间内自行车是匀速行进 平均速度与时间的乘积即为里程数 设计时 应综合考虑测速精度和系统反应时间 本设计在计算里程时取了自 行车的理想状态 实际中 误差控制在几米之内 相对于整个里程来说不是很 大 为了保证系统的实时性 系统的速度转换模块和显示数据转 BCD 码模块都 采用快速算法 另外 还应尽量保证其他子模块在编程时的通用性和高效性 本设计的里程值采用 3 位 LED 显示 3 23 2 霍尔传感器测量系统霍尔传感器测量系统 计数法是智能测速系统中常用的方法 只要转轴每旋转一周 产生一个或固 定的多个脉冲 并将脉冲送入微处理器中进行计数 即可获得转速的信息 可以 有多种方式来获得脉冲信号 A44E 的磁输入为单极磁场 即施加磁场的方式是改变磁铁和A44E 之间 的距离 判定磁铁极性方法是 把磁铁的两个极分别靠近A44E 的正面 当其OUT 引脚电平由高变低时即为正确的安装位置 如图3 1所示 BH L 图3 1 A44E 判别磁铁极性 经过实验得知 A44E 只对磁铁的S 级有响应而对N级没有丝毫响应 安装时 IC SN 9 一定要让磁铁的S级对准A44E的反应传感区 把一块小永久磁铁固定在车轮的辐条上 A44E在车轮辐条附近 如图4 所示 经过实验得知 当磁铁和霍尔开关A44E移近到一定距离 设此距离为r 时 A44E 芯片的OUT引脚有脉冲信号输出 当二者的距离大于r时 OUT引脚没有脉冲信号 输出 反复实验得出霍尔开关A44E导通的距离r为4mm或5mm 图3 2 A44E导通距离测量 3 33 3 系统硬件电路的设计系统硬件电路的设计 电动车速度里程测量仪采用 AT89C51 单片机作控制 速度及里程传感器采 用霍尔元件 其电气原理图如图 3 3 所示 车轮 霍尔传感器 单片机 小磁铁 10 P0 0 P0 1 P0 2 P0 3 P0 4 P0 5 P0 6 P0 6 P0 0 P0 1 P0 2 P0 3 P0 4 P0 5 P0 6 G N D P0 1 P0 2 G N D G N D G N D P0 6 P0 0 P0 1 P0 2 P0 3 P0 4 P0 5 XT AL2 18 XT AL1 19 ALE 30 E A 31 PS E N 29 R ST 9 P0 0 A D 0 39 P0 1 A D 1 38 P0 2 A D 2 37 P0 3 A D 3 36 P0 4 A D 4 35 P0 5 A D 5 34 P0 6 A D 6 33 P0 7 A D 7 32 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 P3 0 R X D 10 P3 1 T X D 11 P3 2 IN T 0 12 P3 3 IN T 1 13 P3 4 T 0 14 P3 7 R D 17 P3 6 W R 16 P3 5 T 1 15 P2 7 A 15 28 P2 0 A 8 21 P2 1 A 9 22 P2 2 A 10 23 P2 3 A 11 24 P2 4 A 12 25 P2 5 A 13 26 P2 6 A 14 27 U 1 AT 89C 51 C 1 30P F C 2 30P F X 1 12M H Z R 1 8 2k C 3 10uF R 2 4 7k R 3 4 7k D 2 LE D R 4 1k R 5 1k Q 1 Q 2 VC C SC K 6 SD A 5 T EST 7 A 0 1 A 1 2 A 2 3 U 224C 01C R 6 1 8k R 8 4 7k R 9 4 7k R 10 4 7k R 11 4 7k R 12 4 7k R 13 4 7k R 144 7k R 15 330hm VC C 4 7k4 7k Q 3 PN 4917 Q 4 PN 4917 Q 5 PN 4917 LS 1 SPEA K E R D 1 LE D D C LK Q Q U 3 D T FF Q 7 PN 3638 D 4 LU M ILE D 图 3 3 电气原理图 P0 口和 P2 口用于七段 LED 显示器的段码及扫描输出 P1 0 口和 P1 1 口分别用 于显示里程状态和速度状态 P1 2 P1 3 P1 6 和 P1 7 口分别用于设置轮圈 大小 P3 0 口的开关用于确定显示的方式 当开关闭合时 显示速度 打开时 显示里程 第 12 脚外中断 0 用于对轮子圈数的计数输入 轮子每转一圈 霍尔 传感器输出一个低电平脉冲 13 脚外中断 1 用于控制定时器 T1 的启停 当输 入为 0 时关闭定时器 此控制信号是将轮子圈数的计数脉冲经二分频后形成 见图 3 4 这样 每次定时器 T1 的开启时间刚好为转一圈的时间 根据轮 子的周长就可以计算出自行车的速度 P1 4 口和 P1 5 口用于 EEPROM 存储器 24C01 的存储控制 11 脚输出用于速度超速时的报警 11 图 3 4 二分频 第四章第四章 电动车电动车里程表软件实现方法里程表软件实现方法 4 14 1 系统主要程序的设计系统主要程序的设计 1 初始化程序 在本系统初始化程序中 主要完成以下工作 将 T1 设为外部控制定时器方 式 外中断 0 及外中断 1 设为边沿触发方式 将部分内存单元清零 设置轮子 周长 开中断及定时器 将 EEPROM 中的数据调入内存等 2 轮圈设置出错处理程序 P1 2 P1 3 P1 6 P1 7 端口的开关用于设定轮子的周长 当没有设定 时 至少让一个开关闭合 能从 P3 1 口输出一个周期为 0 5 的方波信号 用 12 作发光管闪烁及信响器提醒 3 主程序 主程序根据 P3 0 口的开关状态选择里程显示或速度显示 其流程图如图 4 1 所示 速度处理子程序流程图如图 4 2 所示 N Y 图 4 1 主程序流程图 N Y 开始 初始化 P3 1 1 计算里程计算速度 显示里程显示速度 开始 计算里程 是否超速 13 图 4 2 速度处理子程序流程图 4 里程计数程序 外中断 0 服务程序 外中断 0 服务程序用于对 12 脚输入的圈脉冲进行计数 为十六进制计数 器 60H 为低位 62H 为高位 每计数一次后 对里程数据进行一次存储操作 5 外中断 1 服务程序 外中断 1 服务程序用于处理轮子转动一圈后的计时数据 当标志位 00H 为 1 时 说明计数器溢出 放入最大时间指 为 0FFH 当标志位为 0 时 将 计数单元 TL1 TH1 6CH 6DH 的值放入 68H 6BH 单元 6 EEPROM 存储程序 本系统使用归一化 I C 串口存储子程序 使用一条数据线和时钟线 采用 ATMEL 公司的 24C01 串口存储器 应用简单方便 7 显示程序 当显示里程时 先要将圈数计数器中德数据进行运算 求出总里程 当要 显示速度时 要将轮子的周长和转一圈的时间数相除 然后换算成 km h 单位 最后放入 70H 73H 进行数据的显示 4 24 2 电动车的速度里程表软件程序设计电动车的速度里程表软件程序设计 60H 61H 62H 作里程计数单元 6CH 6DH 作 T1 计数扩充单元 68H 69H 6AH 6BH 存放自行车每圈时间数 70H 71H 72H 73H 作显示 BCD 码存放 数用 11H 15H 存放被除数 16H 19H 存放除数 定义 VSDA EQU P1 4 VSCL EQU P1 5 SLA EQU 50H 显示速度报警 返回 14 NUMBYT EQU 51H MTD EQU 30H MRD EQU 40H SLAW EQU 0A0H SLAR EQU 0A1H DPHH EQU 62H TH1H EQU 6CH TH1HH EQU 6DH ORG 0000H LJMP START ORG 0003H LJMP INTEX0 ORG 000BH RET ORG 0013H LJMP INTEX1 ORG 001BH LJMP INTT1 ORG 0023H RET ORG 002BH RET 上电初始化程序 CLEARMEN MOV TMOD 90H MOV SP 75H SETB PX0 SETB IT0 SETB IT1 CLR A MOV 20H A MOV 6CH A MOV 6DH A MOV 70H A 15 MOV 71H A MOV 72H A MOV 73H A MOV 60H A MOV 61H A MOV 62H A MOV 63H A DEC A MOV 68H A MOV 69H A MOV 6AH A MOV 6BH A MOV P1 A CLEAR1 JB P1 2 KEY1 MOV 21H 0FH LJMP CLEAR2 KEY1 JB P1 3 KEY2 MOV 21H 12H LJMP CLEAR2 KEY2 JB P1 6 KEY3 MOV 21H 14H LJMP CLEAR2 KEY3 JB P1 7 ERR MOV 21H 19H CLEAR2 SETB TR1 SETB EA SETB EX0 SETB ET1 SETB P3 1 LCALL VIICREAD RET ERR CPL P3 1 LCALL DL5S LJMP CLEAR1 16 START LCALL CLEARMEN START1 JB P3 0 DISPLAYS LCALL DISPLAYV START2 SJMP START1 里程计数子程序 用外中断 0 实现 计数用 60H 62H 内存单元 INTEX0 PUSH ACC PUSH PSW INC 60H CLR A CJNE A 60H INTEX0OUT INC 61H CJNE A 61H INTEX0OUT INC 62H INTEX0OUT LCALL VIICWRITE SETB EX1 POP PSW POP ACC RET 每转一圈时间计数处理程序 每圈时间放在 8H 6BH 单元中 INTEX1 PUSH ACC PUSH PSW CLR EX1 JNB 00H INTEX11 MOV TL1 0FFH MOV TH1 0FFH MOV 6CH 0FFH MOV 6DH 0FFH INTEX11 MOV 68H TL1 MOV 69H TH1 MOV 6AH 6CH MOV 6BH 6DH CLR A MOV TL1 A 17 MOV TH1 A MOV 6CH A MOV 6DH A CLR 00H POP PSW POP ACC RET T1 计数器中断服务程序 计数器 T1 由外中断 1 输入控制 当为高电平时计时 开始 INTT1 PUSH ACC PUSH PSW INC 6CH MOV A 6CH JNZ INTT11 INC 6DH MOV A 6DH JNZ INTT11 SETB 00H INTT11 POP PSW POP ACC RET 里程显示控制程序 DISPLAYS SETB P1 0 CLR P1 1 SETB P3 7 LCALL SSS LCALL DISPLAY LJMP START1 速度显示控制程序 DISPLAYV CLR P1 0 18 SETB P1 1 CLR P3 7 LCALL VVV MOV A 71H SUBB A 04H JNC WARING SETB P3 1 V1 LCALL DISPLAY RET WARING CLR P3 1 AJMP V1 归一化 EEPROM 存入程序 12MHZ 时钟 存入数在 50H 起单元 VIICWRITE ACALL WMOV9 MOV SLA SLAW MOV NUMBYT 09H LCALL WRNBYT RET WMOV9 MOV 5FH 50H MOV R0 MTD MOV R1 5FH MOV R2 09H WMOV MOV A R1 MOV R0 A INC R0 INC R1 DJNZ R2 WMOV RET 归一化 EEPROM 读出程序 12MHZ 时钟 读出数放入 60H 67H 单元 VIICREAD MOV MTD 50H MOV SLA SLAW MOV NUMBYT 01H LCALL WRNBYT 19 MOV SLA SLAR MOV NUMBYT 08H LCALL RDNBYT ACALL RMOV8 RET RMOV8 MOV R0 MRD MOV R1 60H MOV R2 08H RMOV MOV A R0 MOV R1 A INC R0 INC R1 DJNZ R2 RMOV RET I C 串行归一化存储子程序 STA SETB VSDA SETB VSCL NOP NOP NOP NOP CLR VSDA NOP CLR VSDA NOP NOP NOP NOP CLR VSCL RET STOP CLR VSDA SETB VSCL NOP 20 NOP NOP NOP SETB VSDA NOP NOP NOP NOP CLR VSDA CLR VSCL RET MACK CLR VSDA SETB VSCL NOP NOP NOP NOP CLR VSCL SETB VSDA RET MNACK SETB VSDA SETB VSCL NOP NOP NOP NOP CLR VSCL CLR VSDA RET CACK SETB VSDA SETB VSCL CLR F0 MOV C VSDA JNC CEND 21 SETB F0 CEND CLR VSCL RET WRBYT MOV R0 08H WLP RLC A JC WR1 AJMP WR0 WLP1 DJNZ R0 WLP RET WR1 SETB VSDA SETB VSCL NOP NOP NOP NOP CLR VSCL CLR VSDA AJMP WLP1 WRO CLR VSDA SETB VSCL NOP NOP NOP NOP CLR VSCL AJMP WLP1 RDBYT MOV R0 08H RLP SETB VSDA SETB VSCL MOV C VSDA MOV A R2 RLC A MOV R2 A CLR VSCL 22 DJNZ R0 RLP RET WRNBYT MOV R3 NUMBYT LCALL STA MOV A SLA LCALL WRBYT LCALL CACK JB F0 WRNBYT MOV R1 MTD WRDA MOV A R1 LCALL WRBYT LCALL CACK JB F0 WRNBYT INC R1 DJNZ R3 WRDA LCALL STOP RET RDNBYT MOV R3 NUMBYT LCALL STA MOV A SLA LCALL WRBYT LCALL CACK JB F0 RDNBYT RDN MOV R1 MRD RDN1 LCALL RDBYT MOV R1 A DJNZ R3 ACK LCALL MNACK LCALL STOP RET ACK LCALL MACK INC R1 SJMP RDN1 23 显示程序 显示 BCD 码在 70H 73H 单元内 采用共阴 LED 数码管 DISPLAY MOV R1 70H MOV R2 0FEH PLAY MOV A R2 MOV P2 A MOV A R1 ANL A 0FH MOV DPTR TAB MOVC A A DPTR MOV P0 A LCALL DL1MS INC R1 MOV A R2 JNB ACC 3 ENDOUT RL A MOV R2 A AJMP PLAY ENDOUT SETB P2 0 SETB P2 1 SETB P2 2 SETB P2 3 RET TAB DB 3FH 06H 5BH 4FH 66H 6DH 7DH 07H DB 7FH 6FH 77H 7CH 39H 5EH 79H 71H DB 00H 里程处理程序 将自行车圈数据换算成公里数 SSS MOV 19H 64H MOV 18H 00H MOV 17H 00H MOV 16H 00H 24 MOV 11H 00H MOV 12H 00H MOV 13H 62H MOV 14H 61H MOV 15H 60H LCALL DIVST LCALL BCDST MOV A 25H ANL A 0FH MOV 70H A MOV A 25H SWAP A ANL A 0FH MOV 71H A MOV A 24H ANL A 0FH MOV 72H A MOV A 24H SWAP A ANL A 0FH MOV 73H A RET 时速处理程序 最大显示速度为 99KM H 用作自行车 VVV MOV 18H 68H MOV 17H 69H MOV 16H 6AH MOV 11H 00H MOV 12H 00H MOV 13H 36H MOV 14H 0EEH MOV 15H 80H LCALL DIVST MOV 14H 00H 25 LCALL BCDST MOV A 25H ANL A 0FH MOV 70H A MOV A 25H SWAP A ANL A 0FH MOV 71H A MOV 72H 00H MOV 73H 00H RET 1ms 延时程序 LED 点亮用 DL1MS MOV R6 14H DL1 MOV R7 19H DL2 DJNZ R7 DL2 DJNZ R6 DL1 RET 出错闪烁用延时 255ms DL5S MOV R5 0FFH DL3 LCALL DL1MS DJNZ R5 DL3 RET 除法子程序 用作四位除法 除数在 16H 19H 被除数在 11H 15H DIVST CLR C MOV A 13H SUBB A 18H MOV A 12H SUBB A 17H MOV A 11H 26 SUBB A 16H JNC LOOP4 MOV B 10H NDIV1 CLR C MOV A 15H RLC A MOV 15H A MOV A 14H RLC A MOV 14H A MOV A 13H RLC A MOV 13H A MOV A 12H RLC A MOV 12H A MOV A 11H RLC A MOV 11H A MOV F0 C CLR C MOV A 13H SUBB A 18H MOV 1AH A MOV A 12H SUBB A 17H MOV 19H A MOV A 11H SUBB A 16H JB F0 NDIV2 JC NDIV3 NDIV2 MOV 11H A MOV A 19H 27 MOV 12H A MOV A 1AH MOV 13H A INC 15H NDIV3 DJNZ B NDIV1 CLR F0 DIVEND RET LOOP4 SETB F0 SJMP DIVEND 将 14H 15H 单元内数据转换成十进制 BCD 码放在 24H 25H 单元内 BCDST MOV R7 10H CLR C MOV 25H 00H MOV 24H 00H KKK MOV A 15H RLC A MOV 15H A MOV A 14H RLC A MOV 14H A MOV A 25H ADDC A 25H DA A MOV 25H A MOV A 24H ADDC A 24H DA A MOV 24H A DJNZ R7 KKK RET END 28 第五章第五章 仿真与测试仿真与测试 5 1 系统仿真调试 在 PROTEUS 中准备好电气原理图 用 KEIL 软件编程 将程序添加源文件到 PROTEUS 中 开始仿真调试 仿真调试结果如下 里程显示 P0 0 P0 1 P0 2 P0 3 P0 4 P0 5 P0 6 P0 6 G ND P0 1 P0 2 G ND P0 4 P0 5 P0 6 P0 0 P0 1 P0 2 P0 3 P0 4 P0 5 P0 6 P0 0 P0 1 P0 2 P0 3 P0 4 P0 5 XT AL 2 1 8 XT AL 1 1 9 AL E 3 0 E A 3 1 PS E N 2 9 R ST 9 P0 0 A D 0 3 9 P0 1 A D 1 3 8 P0 2 A D 2 3 7 P0 3 A D 3 3 6 P0 4 A D 4 3 5 P0 5 A D 5 3 4 P0 6 A D 6 3 3 P0 7 A D 7 3 2 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 P3 0 R X D 1 0 P3 1 T X D 1 1 P3 2 IN T 0 1 2 P3 3 IN T 1 1 3 P3 4 T 0 1 4 P3 7 R D 1 7 P3 6 W R 1 6 P3 5 T 1 1 5 P2 7 A 1 5 2 8 P2 0 A 8 2 1 P2 1 A 9 2 2 P2 2 A 1 0 2 3 P2 3 A 1 1 2 4 P2 4 A 1 2 2 5 P2 5 A 1 3 2 6 P2 6 A 1 4 2 7 U 1 AT 89C 5 1 C 1 30P F C 2 30P F X 1 12M H Z R 1 8 2 k C 3 10u F R 2 4 7 k R 3 4 7 k D 2 LE D R 4 1 k R 5 1 k Q 1 Q 2 VC C SC K 6 SD A 5 T EST 7 A 0 1 A 1 2 A 2 3 U 224C 01 C R 6 1 8 k R 8 4 7 k R 9 4 7 k R 10 4 7 k R 11 4 7 k R 12 4 7 k R 13 4 7 k R 144 7 k R 15 33 0 h m VC C 4 7 k4 7 k Q 3 PN 49 1 7 Q 4 PN 49 1 7 Q 5 PN 49 1 7 LS 1 SPEA K E R D 1 LE D D C L K Q Q U 3 D T FF Q 7 PN 36 3 8 D 4 LU M ILE D 速度显示 29 P0 0 P0 1 P0 2 P0 3 P0 4 P0 5 P0 6 P0 6 P0 0 P0 1 P0 2 P0 3 P0 4 P0 5 P0 6 G N D P0 1 P0 2 G N D G N D G N D P0 6 P0 0 P0 1 P0 2 P0 3 P0 4 P0 5 XT AL2 18 XT AL1 19 ALE 30 E A 31 PS E N 29 R ST 9 P0 0 A D 0 39 P0 1 A D 1 38 P0 2 A D 2 37 P0 3 A D 3 36 P0 4 A D 4 35 P0 5 A D 5 34 P0 6 A D 6 33 P0 7 A D 7 32 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 P3 0 R X D 10 P3 1 T X D 11 P3 2 IN T 0 12 P3 3 IN T 1 13 P3 4 T 0 14 P3 7 R D 17 P3 6 W R 16 P3 5 T 1 15 P2 7 A 15 28 P2 0 A 8 21 P2 1 A 9 22 P2 2 A 10 23 P2 3 A 11 2

温馨提示

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

评论

0/150

提交评论