自行车里程表的设计(基于2051)_第1页
自行车里程表的设计(基于2051)_第2页
自行车里程表的设计(基于2051)_第3页
自行车里程表的设计(基于2051)_第4页
自行车里程表的设计(基于2051)_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

课程 单片机原理及应用课程设计 题目 自行车里程表的设计 主要内容 基本要求 主要参考资料等 1 主要内容 根据单片机课程所学内容 结合其他相关课程知识 设计一个自行车里程 表 以加深对单片机知识的理解 锻炼实践动手能力 为以后的毕业设计和工 作打下坚实基础 2 基本要求 以 AT89C2051 型单片机为核心 实时测量并显示自行车行驶过程中两项运 动参数 速度和里程 所测量各值可单独显示 测量值误差小于 1 超速行驶 设置两各可选择的限速参数 10m s 8m s 时 能自动发出声光报警 3 主要参考资料 1 张毅坤 陈善久 单片微型计算机原理及应用 西安 西安电子科技大学 出版社 2002 2 张友德 赵志英 徐时亮 单片微机原理应用与实验 上海 复旦大学出 版社 2000 3 伟福 Lab2000P 系列单片机仿真实验系统说明书 完成期限 2010 3 15 2010 3 19 指导教师 专业负责人 2010 年 3 月 13 日 1 目目 录录 第一章第一章 概概 述述 2 2 第二章第二章 硬件设计硬件设计 3 3 2 1 系统组成结构框图 3 2 2 具体硬件电路及工作原理 3 2 3 AT89C2051 单片机简介 4 2 3 1 芯片概述 4 2 4 其他外围硬件电路 6 2 4 1 电源电路 6 2 4 2 霍尔传感器 6 2 4 3 4 位串行静态显示电路 7 第三章第三章 软件设计软件设计 8 8 3 1 主程序设计 8 3 2 外中断 0 和 T1 定时溢出中断服务子程序设计 8 3 3 速度 里程显示控制子程序设计 8 3 4 系统完整源程序 9 总总 结结 1010 参考文献参考文献 1111 附录附录 1212 附录 1 整体电路图 12 附录 2 源程序 13 2 第一章 概 述 本设计介绍的速度与里程表设计以单片机和光电传感器为核心 传感器将 不同车速转变成的不同频率的脉冲信号输入到单片机进行控制与计算 再采用 LED 模块进行显示 使得电动自行车的速度与里程数据能直接的显示给使用者 该设计能实时地将所测的速度与累计里程数显示出来 主要是将传感器输入到 单片机的脉冲信号的频率 传感器将不同车速转变成不同频率的脉冲信号 实 时地测量出来 考虑到信号的衰减 干扰等影响 在信号送入单片机前应对其 进行放大整形 然后通过单片机计算出速度和里程 再将所得的数据存储到串 口数据存储器 并由 LED 显示模块交替显示所测速度与里程 本设计的里程数 的算法是一种大概的算法 假设在一定时间内自行车是匀速行进 平均速度与 时间的乘积即为里程数 本系统由信号预处理电路 单片机 AT89C2051 系统化 LED 显示模块 串 口数据存储电路和系统软件组成 其中信号预处理电路包含信号放大 波形变 换和波形整形 对待测信号进行放大的目的是降低对待测信号的幅度要求 波 形变换和波形整形电路则用来将放大的信号转换成可与单片机相连的 TTL 信号 通过单片机的设置可使内部定时器 T1 对脉冲输入引脚 T0 进行控制 这样能精 确地算出加到 T0 引脚的单位时间内检测到的脉冲数 设计中速度显示采用 LED 模块 通过速度换算得来的里程数采用 I2C 总线并通过 E2PROM 来存储 既节省 了所需单片机的口线和外围器件 同时也简化了显示部分的软件编程 设计时 应综合考虑测速精度和系统反应时间 本设计用测量脉冲频率 来计算速度 因而具有较高的测速精度 在计算里程时取了自行车的理想状态 实际中 误差控制在几米之内 相对于整个里程来说不是很大 为了保证系统 的实时性 系统的速度转换模块和显示数据转 BCD 码模块都采用快速算法 另 外 还应尽量保证其他子模块在编程时的通用性和高效性 本设计的速度和里 程值采用 6 位显示 并包含两个小数位 3 第二章 硬件设计 2 1 系统组成结构框图 根据功能要求 首先要进行的是总体方案的设计于论证 构思一个符合实 际要求的系统 如图 2 1 所示 系统由测量模块 功能选择模块 显示模块 供电模块和单片机小系统构 成 功能选择后启动测量 大片及实时采集 处理后显示 霍尔传感器 开关功能选 择 显 示 功能指示灯 2051 单 片 机 稳压器 5V 电池组 充电电路 发电机 图 2 1 系统组成结构框图 2 2 具体硬件电路及工作原理 具体硬件电路如图2 2所示 4 RST 1 RXD 2 TXD 3 X2 4 X1 5 P3 2 6 P3 3 7 P3 4 8 P3 5 9 GND 10 P3 7 11 P1 0 12 P1 1 13 P1 2 14 P1 3 15 P1 4 16 P1 5 17 P1 6 18 P1 7 19 VCC 20 U 89C2051 1 2 J2 CON2 C 30p C 30pY 12M R 10k C 10u vcc 1 2 3 J1 件件件件 VCC P3 2 GND R 470 R 470 R 470 R 470 D1 D2 D3 D4 C 0 1u S SW PB R 10k VCC S SW PB S SW PB S SW PB R 5 1K R 5 1K R 5 1K VCCLS SPEAKER Q 9012 VCC 图2 2 系统硬件电路原理图 速度和里程由开关型霍尔传感器测量 已知自行车轮子的周长 本系统采 用的是1 8m 设为L 轮子每转动一圈 传感器采样一个下降沿信号并送到单 片机的外中断0产生一次中断 全书加1 两个相邻下降沿信号的时间由单片机 定时器1计时 设为T 哪么计算当前速度 设为V 和行驶里程 设为S 的 公式为 V 1 8 T S 1 8m 所行驶的圈数 S1是单片机的复位开关 系统采用按键电平复位开关 S2是电源开关 并 由灯D1指示 S3为速度和里程切换开关 S4为限速切换开关 可以根据自身需 要选择不同的最大超速速度 S5为里程单位切换开关 P1 4输出低电平时 控 制D2亮 表示此时显示的里程值为km h P1 5输出低电平时 控制灯D3亮 提示 速度太慢 P1 6输出低电平时 控制灯D4亮 表示此时的显示值时里程 否则 为速度 P1 7控制超速报警电路 其为高电平表示行驶速度正常 为低电平 时 三极管9012导通 驱动蜂鸣器报警 2 3 AT89C2051 单片机简介 2 3 1 芯片概述 AT89C2051是一个低电压 高性能CMOS 8位单片机 片内含2k bytes的可反 复擦写的只读Flash程序存储器和128 bytes的随机存取数据存储器 RAM 器 件采用ATMEL公司的高密度 非易失性存储技术生产 兼容标准MCS 51指令系统 片内置通用8位中央处理器和Flash存储单元 功能强大AT89C2051单片机可为您 5 提供许多高性价比的应用场合 AT89C2051是一个功能强大的单片机 但它只有20个引脚 15个双向输入 输 出 I O 端口 其中P1是一个完整的8位双向I O口 两个外中断口 两个16位 可编程定时计数器 两个全双向串行通信口 一个模拟比较放大器 同时 AT89C2051的时钟频率可以为零 即具备可用软件设置的睡眠省电功能 系统的 唤醒方式有RAM 定时 计数器 串行口和外中断口 系统唤醒后即进入继续工 作状态 省电模式中 片内RAM将被冻结 时钟停止振荡 所有功能停止工作 直至系统被硬件复位方可继续运行 管角配置图2 3所示 图2 3 2051引脚图 主要功能介绍 1 兼容MCS51指令系统 2 15个双向I O口 3 两个16位可编程定时 计数器 4 时钟频率0 24MHz 5 两个外部中断源 6 可直接驱动LED 7 低功耗睡眠功能 8 可编程UARL通道 9 2k可反复擦写 1000次 Flash ROM 10 6个中断源 11 2 7 6 V的宽工作电压范围 12 128x8bit内部RAM 13 两个串行中断 14 两级加密位 6 15 内置一个模拟比较放大器 16 软件设置睡眠和唤醒功能 可见 2051可以为很多的嵌入式控制应用提供高度灵活而且价格低廉的方 案 特别适合小系统 本系统仅用到单片机的10个I O口 所以选用2051单片机 做主系统 2 4 其他外围硬件电路 2 4 1 电源电路 如图 2 4 所示 发电机发出 15V 的交流电 经整流滤波后 再给镍氢电池 组充电 充电采用恒流方式 已充电的电池组经 7805 稳压 给霍尔传感器和单 片机系统供电 由 MG MOTOR AC Vin 1 GND 2 Vout 3 U 7805 1 2 3 4 D BRIDGE1 C 3300u R 1k R 5k 5w Q 8050 R 2 2k D 1N4148 S SW SPST C 0 1u C 0 01u R 10k BT 7 2v vcc 图 2 4 电源电路原理图 于充电电流可达 400 500mA 且充电时间较长 所以三极管选用功率高的 C8050 5K 的电位器用于调节充电电流 避免电流过大烧坏元件 当然 实验设计过程中为了简便 我们可以不用电机 直接用 4 个 1 5V 的 电池组经 7805 稳压后得到 5V 电压给单片机系统和霍尔传感器供电 2 4 2 霍尔传感器 霍尔传感器是利用霍尔效应把磁输入信号转换成电信号的器件 本系统采 用 JK8002D 霍尔接近开关 他是一种非接触型无触点开关 系统通过它探测外 部的磁场的强弱变化 继而控制开关输出 磁场由外部的磁钢产生 JK8002D 霍尔接近开关的内部原理图和输入 输出特性如图 5 和图 6 所示 JK8002D 霍尔接近开关的输入量是磁感应强度 B 当 B 值达到一定的程度 如 Bl 时 霍尔开关内部的触发器翻转 其输出电平状态也随之翻转 当探头与磁钢距离由远而近为 8mm 时 霍尔元件输出端输出一个无抖动的 7 低电平 约为 0 2V 当两者距离足够远时 霍尔元件输出端输出一个无抖动 的高电平 约为 3 7V 所以输出信号可直接到单片机的外中断 0 的引脚 2 4 3 4 位串行静态显示电路 当单片机的 UART 口部进行串行通信时 可设置其工作于同步移位寄存器方 式 0 以输出显示信息 实现 n 位 LED 的静态显示 这样做只占用了很少的 I O 口线 系统中 4 各共阳极得 LED 数码管和 4 片 74LS164 构成 4 位数字显示电 路 74LS164 将串行输入的显示信息转换成并行输出 驱动数码管显示 74LS164 在低电平输出时允许通过的电流为 8mA 故不必添加驱动电路即可获取 理想亮度 与动态扫描方式相比较 该方式无须 CPU 做不停的扫描 频繁地为 显示服务 节省了 CPU 的时间 软件世界也比较简单 显示电路如图 2 5 所示 A 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9 U 74LS164 A 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9 U 74LS164 A 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9 U 74LS164 A 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9 U 74LS164 R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k a bf c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp com 0 DS DPY 7 SEG DP a bf c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp com 0 DS DPY 7 SEG DP a bf c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp com 0 DS DPY 7 SEG DP a bf c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp com 0 DS DPY 7 SEG DP vcc VCC 1 2 J2 CON2 8 图 2 5 4 位串行静态显示电路原理图 第三章 软件设计 3 1 主程序设计 主程序流程图见图 3 1 开机后系统自检 正常时 LED 显示 同时等待自行车行驶 轮子开始转 圈后 系统进行记录和计算 并根据速度 里程开关的选择显示数值 N 系统初始化 主程序 P3 2 0 Y 开始初始显示 P1 0 1 N 显示里程显示速度 Y 图 3 1 主程序流程图 3 2 外中断 0 和 T1 定时溢出中断服务子程序设计 外中断 0 服务子程序用于对输入脉冲的个数即轮子转圈的次数计数 每计 数一次 系统保存圈数值的同时保存定时器的计时值 并根据功能开关键实时 显示相应的值 T1 定时溢出中断服务子程序用于实时统计记一次数的经历时间 T1 定时的 基准时间设为 20ms 假设记一次数中 T1 中断的次数为 C 1 8 20C ms 即当 前自行车行驶的速度 9 用内部定时加外中断的方法实现了对输入脉冲信号的测量 这是本系统最关键 的程序部分 3 3 速度 里程显示控制子程序设计 最大允许速度由限速切换开关 S4 控制 超速使单片机的 P1 7 输出低电平 报警 若行驶速度太慢 0 5m s 灯 D3 不断闪烁 LED 交替显示 Erro Sudu 和当前速度值 以引起骑车者的注意 速度显示值的单位有 km h 和每 m s 由功能键 S5 切换 对于里程值 为了较精确地显 示 程序设置了不同里程范围时所显示的小数点后数字的位数 里程为 10m 99m 显示 2 位小数 里程为 100m 999m 显示 1 位小数 3 4 系统完整源程序 如附录 1 10 总 结 本设计以 AT89C2051 为核心 通过光电传感器来检测自行车的运转情况进 而实现电动自行车的速度 里程的计算及里程的累计 存储 最后用 6 位的 LED 能直观的将速度与里程显示给用户 并且在速度高于一定的值时可自动向 用户报警 从而达到智能速度里程表 这次课程设计使我掌握了很多实践知识 在老师和同学的帮助下对单片机 有了进一步的了解 通过这次课程设计使我懂得了理论与实际相结合是很重要 的 只有理论知识是远远不够的 只有把所学的理论知识与实践相结合起来 从理论中得出结论 进而提高自己的实际动手能力和独立思考的能力 整个设 计过程可以说不是很顺利 因为有很多知识已经淡忘 还有很多新的东西没有 掌握 所以这次设计在不断的复习 学习中度过 使我受益匪浅 也使我对单 片机的运用有了进一步的了解和掌握 也为今后的学习生活和工作打下良好的 基础 11 参考文献参考文献 1 张毅坤 陈善久 单片微型计算机原理及应用 西安 西安电子科技大学出 版社 2002 2 张友德 赵志英 徐时亮 单片微机原理应用与实验 上海 复旦大学出版 社 2000 3 伟福 Lab2000P 系列单片机仿真实验系统说明书 12 附录附录 附录附录 1 整体电路图整体电路图 A 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9 U 74LS164 A 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9 U 74LS164 A 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9 U 74LS164 A 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9 U 74LS164 R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k R 1k a bf c g d e DP Y 1 2 3 4 5 6 7 a b c d e f g 8 dp dp com 0 DS DPY 7 SEG DP a bf c g d e DP Y 1 2 3 4 5 6 7 a b c d e f g 8 dp dp com 0 DS DPY 7 SEG DP a bf c g d e DP Y 1 2 3 4 5 6 7 a b c d e f g 8 dp dp com 0 DS DPY 7 SEG DP a bf c g d e DP Y 1 2 3 4 5 6 7 a b c d e f g 8 dp dp com 0 DS DPY 7 SEG DP vcc VCC RST 1 RXD 2 TXD 3 X2 4 X1 5 P3 2 6 P3 3 7 P3 4 8 P3 5 9 GND 10 P3 7 11 P1 0 12 P1 1 13 P1 2 14 P1 3 15 P1 4 16 P1 5 17 P1 6 18 P1 7 19 VCC 20 U 89C2051 1 2 J2 CON2 1 2 J2 CON2 C 30p C 30p Y 12M R 10k C 10u vcc 1 2 3 J1 件件件件 VCC P3 2 GND R 470 R 470 R 470 R 470 D1 D2 D3 D4 C 0 1u S SW PB R 10k VCC S SW PB S SW PB S SW PB R 5 1K R 5 1K R 5 1K VCC LS SPEAKER Q 9012 VCC MG MOTOR AC Vin 1 GND 2 Vout 3 U 7805 1 2 3 4 D BRIDGE1 C 3300u R 1k R 5k 5w Q 8050 R 2 2k D 1N4148 S SW SPST C 0 1u C 0 01u R 10k BT 7 2v vcc 13 附录附录 2 源程序源程序 自行车里程表 各引脚用途及系统功能说明 P1 0 速度和里程切换 1 显示速度 0 显示里程 P1 1 限速度切换 1 10m s 0 8m s P1 2 km h 和 m s 的切换 P1 4 指示显示器单位为 km h P1 5 速度太慢灯闪烁警告 P1 6 0 时灯亮 指示里程 为以灯不亮 显示速度 P1 7 超速度报警 距离最大值为 9999m 6H 圈 38H 圈 22C 圈 15B6 圈 0m S 10m 10m S 100m 100m S 1000m 1000m S 10000m 周长 0707H 00B4H 0012H 0012H 0AH 变量定义 XIAOSHU EDU 57H 小数点位数单元 GEWEI EDU 40H 显示单元 SHIWEI EDU 41H BAIWEI EDU 42H QIANWEI EDU 43H QSHU1 EDU 43H QSHU0 EDU 61H 自行车圈数存储单元高位 QSHU0 EDU 62H 自行车圈数存储单元低位 SJIAN0 EDU 6CH T1 定时溢出存储单元高位 SJIAN1 EDU 6DH T1 定时溢出存储单元低位 主程序 ORG 000H AJMP START ORG 0003H AJMP INTEX0 ORG 001BH AJMP IT11 ORG 0030H START MOV SP 75H 设置堆栈指针 MOV SCON 00H 串行口工作方式 MOV GEWEI 0AH 开机显示 MOV SHIWEI 0AH MOV BAIWEI 0AH MOV QIANWEI 0AH ACALL DIS11 SETB P3 2 外中断 0 为输入查询方式 14 JB P3 2 等待第一个有效脉冲 下降 沿 到来 ACALL CLEARRAM 调用系统准备显示初始化子 程序 STLOOP JNB P1 0 ST1 p1 0 0 显示速度 ACALL DISPLAYS P1 0 1 显示里程 SJMP STLOOP 循环显示 ST1 ACALL DISPLAYV 第一个下降沿来后显示速度 AJMP STLOOP 循环显示 系统准备显示初始化子程序 CLEARRAM MOV TMOD 10H T1 用于定时 工作于模式 1 MOV TH1 0B1H 定时 20ms 初始值 SETB P1 2 P1 2 P1 0 为输入 SETB P1 1 SERB P1 0 CLR A 相应内 RAM 空间清零 MOV 21H A 速度 里程的 BCD 码高位清 0 MOV 22H A 速度 里程的 BCD 码低位清 0 MOV QSHU1 A 圈数空间清 0 MOV QSHU0 A MOV 6AH A T1 溢出次数暂存单元高位清 0 MOV 6BH A T1 溢出次数暂存单元低位清 0 MOV SJIAN0 A 计数器空间清零 MOV SJIAN1 A MOV XIAOSHU 01H 默认显示 3 位小数 SETB IT0 设置外中断为边沿触发方式 SETB PT1 T1 优先级最高 SETB EA 开总中断 SETB ET1 开 T1 中断 SETB EX0 开外 0 中断 外中断 0 服务子程序 INTEX0 PUSH ACC 累加器堆栈保护 PUSH PSW 状态字堆栈保护 INC QSHU0 圈加 1 SETB P1 7 置 1 不报警 CLR A 清 A CJNE A QSHU0 SUBX0 计数没溢出转 SUBX0 INC QSHU1 溢出进位 61H 加 1 SUBX0 CLR TR1 关计时 读轮子转一圈的时间 MOV 6AH SJIAN0 时间暂存 MOV 6BH SJIAN1 MOV TH1 0B1H 定时器 T1 重付初值 MOV TL1 0DFH CLR A 15 MOV SJIAN0 A 清计时空间 MOV SJIAN1 A SETB TR1 重新计时 POP PSW 状态字恢复 POP ACC 累加器恢复 RETI 中断返回 T1 定时器溢出时中断服务子程序 IT11 PUSH ACC 堆栈保护 PUSH PSW INC SJIAN1 定时 20 毫秒溢出次数 MOV A SJIAN1 读一圈定时的次数 CJNE A 0BBH SUBT1 速度太慢 0 5 处理 AJMP SUBT2 SUBT1 JC SUBT2 INC 69H 69H 为奇数 LED 显示 Erro MOV A 69H 再显示具体速度的值 JB ACC 0 ERRO 69H 为偶数 LED 显示 Sudu MOV GEWEI 05H 再显示具体速度的值 MOV SHIWEI 0BH MOV BAIWEI 0DH MOV QIANWEI 0BH MOV XIAOSHU 0BH ACALL DIS11 SJMP FS12 ERRO MOV GEWEI 0CH MOV SHIWEI OBH MOV BAIWEI 0BH MOV QIANWEI 0DH ACALL DIS21 Erro 或 sudu 和具体速度大值交替闪烁显示 FS12 MOV R2 01H CLR P1 5 ACALL DELAY2 SETB P1 5 ACALL DELAY2 DJNZ R2 FLASH SUBT2 MOV TH1 0B1H MOV TL1 0DFH SETB TR1 POP PSW POP ACC RETI 16 里程显示控制子程序 DISPLAYS CLR P1 6 ACALL JULI MOV A QSHU1 CJNE A 02H DIAOYONG AJMP PANDY DIAOYONG JNC PANDY1 AJMP BUDY PANDY MOV A QSHU0 CJNE A 2CH PANDY2 AJMP PANDY1 PANDY2 JC BUDY PANDY1 MOV R6 00h MOV R7 0AH ACALL JULI2 ACALL BCDC ACALL FENKAI ACALL DIS21 ACALL DELAY1 RET BUDY MOV R6 00h MOV R7 01h ACALL JULI2 ACALL BCDC ACALL FENKAI ACALL DIS11 ACALL DELAY1 ACALL DELAY1 RET 速度显示控制子程序 DISPLAYV SETB P1 6 ACALL SUDU ACALL BCDC ACALL FENKAI MOV XIAOSHU 01H RET 处理子程序 1 JULI PUSH PSW PUSH ACC MOV R2 QSHU1 MOV R3 QSHU0 JNZ GAO MOV A QSHU0 CJNE A 06H PAN1 17 AJMP PAN2 PAN1 JNC PAN2 AJMP CZ707 PAN2 MOV A QSHU0 CJNE A 38H PAN3 AJMP GAO PAN3 JC CZB4 GAO AJMP CZ12 CZ707 MOV R6 07H MOV R7 07H MOV XIAOSHU 01H AJMP KAISHI CZB4 MOV R6 00H MOV R7 0B4H MOV XIAOSHU 02H AJMP KAISHI CZ12 MOV R6 00H MOV R7 00H MOV XIAOSHU 03H KAISHI 为两字节乘两字节程序段 KAISHI MOV A R3 MOV B R7 MUL AB MOV R4 B MOV R5 B MOV A R3 MOV B R6 MUL AAB ADD A R4 MOV R4 A CLR A ADDC A B MOV B R7 MUL AB ADD A R4 MOV R4 A MOV A R3 ADDC A B MOV R3 A CLR A RLC A XCH A R2 MOV B R6 MUL AB 18 ADD A R3 MOV R3 A MOV A R2 ADDC A B MOV 50H R2 MOV 51H R3 MOV 52H R4 MOV 53H R5 POP PSW POP ACC RET 处理里程子程序 2 Juli2 PUSH PSW PUSH ACC MOV R2 50H MOV R3 51H MOV R4 52H MOV R5 53H DIVD11 CLR C MOV A R3 SUBB A R7 MOV A R2 SUBB A R6 JC DVD11 SETB OV RET DVD111 MOV B 10H DVD211 CLR C MOV A R5 MOV R5 A MOV A R4 RLC A MOV R4 A MOV A R3 RLC A MOV R3 A XCH A R2 XCH A R2 MOV F0 C CLR C SUBB A R7 MOV R1 A MOV A R2 SUBB A R6 19 ANL C F0 JC DVD311 MOV R2 A MOV A R1 MOV R3 A INC R5 DVD311 DJNZ B DVD211 MOV A R4 MOV R2 A MOV A R5 MOV R3 A CLR OV MOV 30H R2 MOV 31H R3 POP ACC POP PSW NOP RET 十六进制转换乘 BCD 子程序 BCDC PUSH ACC PUSH PSW MOV R6 30H MOV R7 31H CLR A MOV R3 A MOV R4 A MOV R5 A MOV R2 10H HB322 MOV A R7 RLC A MOV R7 A MOV A R6 RLC A MOV R6 A MOV A R5 DA A MOV R5 A MOV A R4 ADDC A R4 DA A MOV R4 A MOV A R3 ADDC A R3 DJNZ R2 HB322 20 MOV 20H R3 MOV 21H R4 MOV 22H R5 POP PSW POP ACC NOP RET 算速度十六进制值子程序 SUDU PUSH PSW PUSH ACC JB P1 2 KM SJMP JUBU KM MOV R2 00H MOV R3 04H MOV R4 0F1H MOV R5 0A0H CLR P1 4 SJMP QUANJU JUBU MOV R2 00H MOV R3 001H MOV R4 05FH MOV R5 090H CLR P1 4 QUANJU MOV A 6BH JB P1 1 XIAN10 CJNE A 0BH BUXIANG SJMP JC0 XIAN10 CJNE A 09H BUXIANG SJMP JC0 BUXIANG JC JC0 SJMP BUJG JC0 MOV A 6AH CJNE A 00H BUJG AJMP JIANGGAO JIANGGAO CLR P1 7 MOV GEWEI 0CH MOV SHIWEI 0BH MOV BAIWEI 0BH MOV QIANWEI 0DH ACALL DIS21 ACALL DELAY1 MOV GEWEI 0EH MOV SHIIWEI 0EH MOV BAIWEI 0EH 21 MOV QIANWEI 0EH ACALL DIS21 ACALL DELAY1 SJMP QUANJU BUJU MOV A 6BH CJNE A 0AFH LING0 AJMP LING1 LING0 JC LING1 AJMP BUJING LING1 MOV A 6AH CJNE A 00J BULING0 AJMP BULING1 BULING0 JC BULING1 BULING MOV SJIAN0 00H MOV SJIAN1 00H RET 4 字节除 2 字节除法子程序 BULING1 MOV R6 6AH MOV R7 6BH DIVD CLR C MOV A R3 SUBB A R7 MOV A R2 SUBB A R6 JC DVD1 SETB OV RET DVD1 MOV B 10H DVD2 CLR C MOV A R5 RLC A MOV R5 A MOV A A4 RLC A MOV R4 A MOV A R3 RLC A MOV R3 A XCH A R2 XCH A R2 MOV F0 C CLR C SUBB A R7 MOV R1 A 22 MOV A R2 SUBB A R6 ANL C F0 JC DVD3 MOV R2 A MOV A R1 MOV R3 A INC R5 DVD3 DJNZ B DVD2 MOV A

温馨提示

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

评论

0/150

提交评论