毕业设计(论文)-基于AT89S51单片机的超声波测距系统设计.doc_第1页
毕业设计(论文)-基于AT89S51单片机的超声波测距系统设计.doc_第2页
毕业设计(论文)-基于AT89S51单片机的超声波测距系统设计.doc_第3页
毕业设计(论文)-基于AT89S51单片机的超声波测距系统设计.doc_第4页
毕业设计(论文)-基于AT89S51单片机的超声波测距系统设计.doc_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

仰恩大学毕业设计(论文) 1 摘 要 在日常生产生活中,很多场合如汽车倒车、机器人避障、工业测井、水库液位测 量等需要自动进行非接触测距。超声波是指频率大于 20 kHz 的在弹性介质中产生的机 械震荡波,其具有指向性强、能量消耗缓慢、传播距离相对较远等特点,因此常被用 于非接触测距。由于超声波对光线、色彩和电磁场不敏感,因此超声波测距对环境有 较好的适应能力,此外超声波测量在实时、精度、价格也能得到很好的折衷。 为此,尝试以单片机 AT89S51 为核心,利用 CXA20106A 超声波芯片设计一款体 积较小、价格低廉、精度较高、具有温度补偿、实时 LCD 显示和报警的超声波测距仪。 关键词:单片机;关键词:单片机;超声波超声波;C C 语言语言 仰恩大学毕业设计(论文) 1 Ultrasonic ranging systemAbstract Abstract In daily life, many occasions such as car backing up, robot obstacle avoidance, industrial logging, reservoir level measurement and need to be automatic no contact ranging. Ultrasonic is to point to more than 20 kHz frequency in the elastic medium produced in mechanical shock waves, it has the directionality of strong, energy consumption is relatively slow, the transmission distance far and other characteristics, so is often used to non-contact ranging. Due to the light, colour and ultrasonic not sensitive electromagnetic field, so the ultrasonic ranging to environment has good adaptability, in addition the ultrasonic measure in real time, the precision and the price to also can get a good compromise. Therefore, this paper try to monolithic integrated circuit AT89S52 as the core, use CXA20106A ultrasound sensor design a small size, low cost, high accuracy, temperature compensation, with real-time LCD display and alarm of ultrasonic ranger. Key Words:LCD; Single-chip microcomputer ; Ultrasonic ranging systemAbstract; C Language 仰恩大学毕业设计(论文) 1 目 录 摘 要 .I Abstract.II 引 言.1 1 超声波简介.2 2 系统功能设计.3 2.1 超声波测距系统的基本原理.3 2.2 AT89S51 芯片超声波简介.4 2.3 AT89S51 芯片的引脚结构.4 3 硬件设计.5 3.1 硬件电路主控.5 3.2 复位电路.5 仰恩大学毕业设计(论文) 2 3.3 显示电路.6 3.4 驱动电路.7 3.5 接口电路.8 3.6 时钟模块.8 4 软件设计.11 4.1 程序流程设计.11 4.2 延时程序.14 4.3 中断系统.14 4.4 完整程序设计.16 5 系统仿真、制作、调试.32 5.1 系统总体仿真.32 5.2 硬件电路制作.34 结 论.35 参 考 文 献.36 致 谢.37 仰恩大学毕业设计(论文) 1 引 言 随着科技的迅猛发展越来越多科技成果被广泛的运用到人们的日常生活当中,给我 们的生活带来了诸多方便。本设计就是本着这个宗旨出发,利用超声波的特性来为我们 服务。由于超声波指向性强,因而常于距离的测量。超声波发射器向某一方向发射超声 波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回 来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为 v,根据 计时器记录的时间 t,就可以计算出发射点距障碍物的距离 s,即:s=vt/2 。这就是 所谓的时间差测距法。 利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量 精度方面能达到工业实用的要求, 随着科学技术的快速发展,超声波将的应用将越来 越广。但就目前技术水平来说,人们可以具体利用的超声波技术还十分有限,因此, 这是一个正在蓬勃发展而又有无限前景的技术及产业领域。 超声波测距技术在社会生活中已有广泛的应用如汽车倒车雷达等,它们测距精度 一般较低。目前对超声波高精度测距系统的需求越来越大。展望未来,超声波作为一 种新型的非常重要有用的工具在各方面都将有很大的发展空间,它将朝着更加高定位 高精度的方向发展,以满足日益发展的社会需求。未来的超声波测距技术将朝着更高 精度,更大应用范围,更稳定方向发展,死角问题也能得以解决。 仰恩大学毕业设计(论文) 2 1 超声波简介 由于超声波所具有的能量很大,就有可能使物质分子产生显著的声压作用、例 如当水中通过一般强度的超声波时超声波流量计的基本原理及类型超声波在流动的流 体中传播时就载上流体流速的信息。因此通过接收到的超声波就可以检测出流体的流 速,从而换算成流量。根据检测的方式,可分为传播速度差法、多普勒法、波束偏移 法、噪声法及相关法等不同类型的超声波流量计。起声波流量计是近十几年来随着集 成电路技术迅速发展才开始应用的一种 非接触式仪表,适于测量不易接触和观察的流体以及大管径流量。它与水位计联 动可进行敞开水流的流量测量。使用超声波流量比不用在流体中安装测量元件故不会 改变流体的流动状态,不产生附加阻力,仪表的安装及检修均可不影响生产管线运行 因而是一种理想的节能型流量计。 众所周知,目前的工业流量测量普遍存在着大管径、大流量测量困难的问题,这是因 为一般流量计随着测量管径的增大会带来制造和运输上的困难,造价提高、能损加大、 安装不仅这些缺点,超声波流量计均可避免。因为各类超声波流量计均可管外安装、 非接触测流,仪表造价基本上与被测管道口径大小无关,而其它类型的流量计随着口 径增加,造价大幅度增加,故口径越大超声波流量计比相同功能,其它类型流量计的功 能价格比越优越。被认为是较好的大管流量测量仪表,多普勒法超声波流量计可测双 相介质的流量,故可用于下水道及排污水等脏污流的测量。在发电厂中,用便携式超 声波流量计测量水轮机进水量、汽轮机循环水量等大管径流量,比过去的皮脱管流速 计方便得多。超声被流量汁也可用于气体测量。管径的适用范围从 2cm 到 5m,从几米 宽的明渠、暗渠到 500m 宽的河流都可适用。 另外,超声测量仪表的流量测量准确度几乎不受被测流体温度、压力、粘度、密 度等参数的影响,又可制成非接触及便携式测量仪表,故可解决其它类型仪表所难以 测量的强腐蚀性、非导电性、放射性及易燃易爆介质的流量测量问题。 仰恩大学毕业设计(论文) 3 超声波具有较好的指向性频率越高,指向性越强。这在诸如探伤和水下声通讯等应用 场合是主要的考虑因素。频率高时,相应地波长将变短,因而波长可与传播超声波的 试样材料的尺寸相比拟,甚至波长可远小于试样材料的尺寸这在厚度尺寸很小的测 量应用中以及在高分辨率的探伤应用中是非常重要的。超声波用起来很安静,人们听 不到它。这一点在高强度工作场合尤为重要。这些高强度的工作用可闻频率的声波来 完成时往往更有效,然而遗憾的是,可闻声波工作时所产生的噪声令人难以忍受,有 时甚至是对人体有害的。 2 系统功能设计 2.1 超声波测距系统的基本原理 本系统包括以下几部分:以单片机 AT89S51 为核心,周围电路包括显示电路、超 声波发射电路、超声波检测接收电路、扫描驱动等。 AT89S51 是一种带 4K 字节闪烁可编程可擦除只读存储器的低电压,高性能 CMOS8 位 微处理器。 采用 AT89S51 来实现对 CX20106A 红外接收芯片和 TCT40-10 系列超声波转换模 块的控制。单片机通过 P1.0 引脚经反相器来控制超声波的发送,然后单片机不停的检 测 INT0 引脚,当 INT0 引脚的电平由高电平变为低电平时就认为超声波已经返 回。计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍 物之间的距离。 仰恩大学毕业设计(论文) 4 AT89S51 超声波接收 超声波发送 LED 显示 扫描驱动 图 2.1 2.2 AT89S51 芯片超声波简介 AT89S51 控制超声波信号的发送和接收,串行数据发送 ,及温度校正 采样频率的输 入,并通过运算转换成温度数据,校正不同温度下,距离误差后,在 LED 上显示所测距的 离厘米数据并和已输入的预置数进行比较, 如达到预置值则进行开或关的开关量信号 输出.LED 显示为动态循环显示,共阳极接法. DS18B20 在本电路中取得外界温度值, 以利于 AT89S51 的运算并校正不同温度下测距的回波数值以及在 LED 上显示实时环境 的温度值.接收电路接收物体反射超声波回波信号,该芯片内部包括了前置放大,限幅放 大,整形,输出数据信号以便 MCU 检测, 判断回波的数据正确与否及时差, 并计算出测 距的距离数值.该板接收可预置超声波控制器,发送的 1200BIT 串行数据信号,直接用导 线和超声波控制器 串口连接时,可传送几十米,如通过 485 串口发送可传送 2 千米以上。 2.3 AT89S51 芯片的引脚结构 本次设计采用了常见的 AT89S51 单片机为核心处理器。AT89S51 是一个低功耗,高 性能 CMOS 8 位单片机,器件采用 ATMEL 公司的高密度、非易失性存储技术制造,兼容 标准 MCS-51 指令系统及 80S51 引脚结构, AT89S51 具有 40 个引脚,4k Bytes Flash 片内程序存储器,128 Bytes 的随机存取数据存储器(RAM),32 个外部双向输入/输 出(I/O)口,5 个中断优先级 2 层中断嵌套中断,2 个 16 位可编程定时计数器,2 个全 双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。AT89S51 单片机共有 40 个引 脚,其引脚图 2.2 如下: 仰恩大学毕业设计(论文) 5 图 2.2 3 硬件设计 3.1 硬件电路 该设计的硬件电路由主控部分(单片机 AT89S51)、计时部分(实时时钟芯片 DS1302)、显示部分(八段数码管)、电源部分(三端稳压器 7805)4 个部分组成。 各部分之间相互协作,构成一个统一的有机整体,实现功能。各部分的硬件电路设计 如下。 3.2 复位电路 (1)单片机AT89S51作为主控芯片,控制整个电路的运行。单片机外围需要一个复 位电路,复位电路的功能是:系统上电时提供复位信号,直至系统电源稳定后,撤消 复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开 关或电源插头分-合过程中引起的抖动而影响复位。该设计采用含有电阻的复位电路, 复位电路可以有效的解决电源毛刺和电源缓慢下降(电池电压不足)等引起的问题, 在电源电压瞬间下降时可以使电容迅速放电,一定宽度的电源毛刺也可令系统可靠复 位。复位电路的设计图如图3.1示: 仰恩大学毕业设计(论文) 6 图 3.1 (2)复位是单片机的初始化操作,使 CPU 及各专用存储器处于一个确定的初始状 态,其中把 PC 的内容初始化为 0000H,使单片机从 0000H 单元开始执行程序,除了系 统的正常开机(上电)复位外,当程序运行出错或操作错误使系统处于死循环状态时, 为摆脱困境,可按复位键进行复位,复位电路由片外和片内两部分电路组成。AT89S51 的 RST 引脚为复位引脚,只要在 RST 引脚上出现两个机器周期以上的高电平,即可实 现复位。复位通常有上电复位和按键复位两种方法。本设计采用的是按键复位,当按 下按键后,电容被短路,RST 引脚就处于高电平,就可以达到复位的目的。电路如图 3.2 所示。 仰恩大学毕业设计(论文) 7 图 3.2 3.3 显示电路 四段数码显示管有两种,一种是共阳极数码管,其内部是由八个阳极相连接的发 光二极管组成;另一种是共阳极数码管,其内部是由四个阳极相连接的发光二极管组 成。二者原理不同但功能相同。本设计的时间显示选用四个共阴极四段数码管 LED,其 外形和内部结构如图 3.3 所示: 图 3.3 3.4 驱动电路 而 LED 显示电路就像单片机系统的眼睛,实时地向人们传递着系统工作的各种状 态信息和处理结果。因此,高效、方便的 LED 显示驱动电路是构成完善的单片机系统 仰恩大学毕业设计(论文) 8 必不可少的元素。常用的 LED 显示驱动电路有并行译码方式、串行并行转换方式、 显示驱动接口芯片方式等。 图 3.4 3.5 接口电路 MCS-51 系列单片机的并行 I/O 口: 接口电路是微机必不可少的组成部分,并行输入确出接口是CPU和外部进行信息交 换的主要通道。MSC51系列单片有4个8位并行双向I/O口P0P3,共32根I/O线。每一 根线能独立用作输入或输出。单片机可以外接键盘、显示器等外围设备还可以进行 系统扩展,以解决硬件资源不足问题。4个并行口都是双向口,既可以输入又可以输出。 P0、P2口经常作外部扩展存储器时的数据、地址线,P3口除作I/O口外,每一根都有第 二功能。这4个I/O口结构基本相同,但仍存在差别。 P1 口:通道 1,双向 I/O 口,本次设计连接按键,用语按键信号的输入 3.6 时钟模块 3.6.1 时钟模块设计 本模块由 DS1302 串行时钟芯片和 32.768K 的晶振组成,负责给系统提供实时时钟。 DS1302 采用的是串行接口,简单的三根连线就可以完成和单片机的通信,具有体积小、 仰恩大学毕业设计(论文) 9 节省 IO 口、接口简单等优点。另外此芯片内部建有 31 字节的静态 RAM,可以用于储 存单片机系统设置的一些参数。为了保证意外断电不会造成时钟复位和参数丢失,本 设计给 DS1302 芯片外接了一个 CR2032 电池。 123456 A B C D 654321 D C B A T itle N um berRevisionSize B D ate:9-Jan-2011 Sheet of File:D :My Docum ents于于51于于于于于于于于于于于于于于于PCBsunsun7.ddbD raw n By: X 1 2 X 2 3 VCC2 1 GND 4 RST 5 IO 6 SCL K 7 VCC1 8 U 1 D S1302(8)Y 1 32.768kHz P30 P31P32 V CC 于于于于 1 2 J2 BAT TE RY 图 3.5 时钟模块 3.6.2 DS1302 时钟芯片简介 DS1302 实时时钟具有能计算 2100 年之前的秒分时日日期月年的能力还有闰年调 整的能力,318 位暂存数据存储 RAM,串行 I/O 口方式使得管脚数量最少,简单 3 线 接口,与 TTL 兼容 VCC=5V1。 图 3.6 DS1302 时钟芯片 仰恩大学毕业设计(论文) 10 表 3.1 DS1302 引脚功能说明 X1, X2 32.768 kHz Crystal Pins 晶振管脚 GND Ground 地 RST Reset 复位脚 I/O Data Input/Output 数据输入输出引脚 SCLK Serial Clock 串行时钟引脚 VCC1, VCC2 Power Supply Pins 主电源和后备电源引脚 DS1302 共有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位 为 BCD 码形式。其日历、时间寄存器及其控制字见表 3.2。 表 3.2 DS1302 的日历、时钟寄存器及其控制字 命令字各位内容 寄存器名 写操作读操作 取值范围 76543210 秒寄存器 80H81H00-59CH10SECSEC 分寄存器82H83H00-59010MINMIN 时寄存器84H85H01-12 或 00-2312/24010HRHR 日寄存器86H87H01-28,29,30,310010DATEDATE 月寄存器88H89H01-1200010MMONTH 周寄存器8AH8BH01-0700000DAY 年寄存器8CH8DH00-9910YEARYEAR 仰恩大学毕业设计(论文) 11 此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与 RAM 相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存 器的内容。DS1302 与 RAM 相关的寄存器分为两类,一类是单个 RAM 单元,共 31 个, 每个单元组态为一个 8 位的字节,其命令控制字为 C0H-FDH,其中奇数为读操作, 偶数为写操作;再一类为突发方式下的 RAM 寄存器,此方式下可一次性读写所有的 RAM 的 31 个字节,命令控制字为 FEH(写)、FFH(读)。 4 软件设计 4.1 程序流程设计 4.1.1 主程序设计 开始 初始化单片机 机 设置中断 检测按键 数码管显示 结束 是否显示完? 图 4.1 仰恩大学毕业设计(论文) 12 4.1.2 按键中断处理流程 图4.2 按键中断处理流程图 仰恩大学毕业设计(论文) 13 4.1.3 软件去抖动流程 图4.3 软件去抖动流程 仰恩大学毕业设计(论文) 14 4.2 延时程序 延时程序延与 MCS - 51 执行指令的时间有关, 如果使用 6 MHz 晶振, 一个机器 周期为 2 s, 计算出一条指令以至一个循环所需要的执行时间, 给出相应的循环次 数, 便能达到延时的目的。10 秒延时程序如下: DELAY: MOV R5, 100 DEL0: MOV R6, 200 DEL1: MOV R7, 248 DEL2: DJNZ R7, DEL2 DJNZ R6, DEL1 DJNZ R5, DEL0 RET 上例程序中采用了多重循环程序, 即在一个循环体中又包含了其它的循环程序, 这种方式是实现延时程序的常用方法。 使用多重循环时, 必须注意: (1) 循环嵌套, 必须层次分明, 不允许产生内外层循环交叉。 (2) 外循环可以层层向内循环进入, 结束时由里往外层层退出。 (3) 内循环可以直接转入外循环, 实现一个循环由多个条件控制的循环结构 方式。 74LS04 反相器,管脚图如附图所示。 图 4.4 4.3 中断系统 仰恩大学毕业设计(论文) 15 4.3.1 中断的概述 程序执行过程中,容许外部或内部事件通过硬件打断程序的执行,使其转向为处理 外部或内部事件的中断服务程序中去;完成中断服务程序后,CPU 继续原来被打断的程序,这 样的过程称为中断过程, 4.3.2 中断响应的一般过程 (1) 在每条指令结束后, 系统都自动检测中断请求信号, 如果有中断请求,且 CPU 处于开中断状态下, 则响应中断。 (2) 保护现场, 在保护现场前, 一般要关中断, 以防止现场被破坏。保护现场一 般是用堆栈指令将原程序中用到的寄存器推入堆栈。 4.3.3 80S51 中有五个中断源 MCS - 51 单片机有 5 个(8052 有 6 个)中断源, 为了使每个中断源都能独立地 被允许或禁止, 以便用户能灵活使用, CPU 内部在每个中断信号的通道中设置了一个中 断允许触发器, 它控制 CPU 能否响应中断。只有对应的中断允许触发器被使能(置“1”) ,相应的中断才能得到相应。 仰恩大学毕业设计(论文) 16 4.3.4 MCS51 中断系统 图 4.5 4.3.5 中断系统的应用 例 1 单步操作的中断实现。 把一个外部中断(设为 INT0)设置为电平激活方式。其中断服务程序的末尾 写上如下几条指令: JNB P3.2, $ ; 在 INT0 变高前,原地等待(死循环) JB P3.2, $; 在 INT0 变低前,原地等待(死循环) RETI ; 返回并执行一条指令 现在,若 INT0 保持低电平, 且允许 INT0 中断, 则 CPU 就进入外部中断 0 服务程序, 由 于有上述几条指令, 它就会停在 JNB 处, 原地等待。当 INT0 端出现一个正脉冲(由 低到高, 再到低)时, 程序就会往下执行, 执行 RETI 后, 将返回主程序, 往下执行一条 指令, 然后又立即响应中断,以等待 INT0 端,出现的下一个正脉冲。 这样在 INT0 端每 出现一个正脉冲, 主程序就执行一条指令, 实现了单步执行的目的, 要注意的是, 这个 正脉冲的高电平持续时间不小于 2 个周期, 以确保 CPU 能采集到高电平值。 仰恩大学毕业设计(论文) 17 4.4 完整程序设计 VOUT EQU P1.0 ; 红外脉冲输出端口 ;* ;* 中断入口程序 * ;* ; ORG 0000H LJMP START ORG 0003H LJMP PINT0 ORG 000BH reti ORG 0013H RETI ORG 001BH LJMP INTT1 ORG 0023H RETI ORG 002BH RETI ; ;* ;* 主 程 序 * ;* ; START: MOV SP,#4FH MOV R0,#40H ;40H-43H 为显示数据存放单元(40H 为 最高位) MOV R7,#0BH CLEARDISP: MOV R0,#00H INC R0 DJNZ R7,CLEARDISP MOV 20H,#00H MOV TMOD,#11H ;T1 为 T0 为 16 位定时器 仰恩大学毕业设计(论文) 18 MOV TH0,#00H ;65 毫秒初值 MOV TL0,#00H MOV TH1,#00H MOV TL1,#00H MOV P0,#0FFH MOV P1,#0FFH MOV P2,#0FFH MOV P3,#0FFH MOV R4,#04H ;超声波肪冲个数控制(为赋值的一半) SETB PX0 SETB ET1 SETB EA SETB TR1 ;开启测距定时器 start1: LCALL DISPLAY JNB 00H,START1 ;收到反射信号时标志位为 1 CLR EA LCALL WORK ;计算距离子程序 clr EA MOV R2,#32h;#64H ;测量间隔控制(约 4*50=200MS) LOOP: LCALL DISPLAY DJNZ R2,LOOP CLR 00H setb et0 mov th0,00h mov tl0,00h SETB TR1 ;重新开启测距定时器 SETB EA SJMP Start1 ; ;* ;* 中断程序* * ;* 仰恩大学毕业设计(论文) 19 ;T1 中断,发超声波用 ;T1 中断,65 毫秒中断一次 INTT1: CLR EA CLR TR0 clr ex0 MOV TH0,#00H MOV TL0,#00H MOV TH1,#00H MOV TL1,#00H SETB ET0 SETB EA SETB TR0 ;启动计数器 T0,用以计 intt11: CPL VOUT ;40KHZ nop nop ; nop ; nop ; nop ; nop ; nop ; nop ; nop DJNZ R4,intt11 ;超声波发送完毕, MOV R4,#04H lcall delay_250 ;延时,避开发射的直达声波信号 SETB EX0 ;开启接收回波中断 RETIOUT: RETI ;外中断 0,收到回波时进入 PINT0: nop jb p3.2,pint0_exit CLR TR0 ;关计数器 仰恩大学毕业设计(论文) 20 CLR EA ; CLR EX0 ; MOV 44H,TL0 ;将计数值移入处理单元 MOV 45H,TH0 ; mov th0,#00h mov tl0,#00h jnb p3.2,$ SETB 00H ;接收成功标志 pint0_exit: RETI ; ;* ;* 显示程序 * ;* DISPLAY: MOV R1,#40H;G MOV R5,#7fH;G PLAY: MOV A,R5 MOV P0,#0FFH MOV P2,A MOV A,R1 MOV DPTR,#TAB MOVC A,A+DPTR MOV P0,A LCALL DL1MS INC R1 MOV A,R5 JNB ACC.4,ENDOUT;G RR A MOV R5,A AJMP PLAY ENDOUT: MOV P2,#0FFH MOV P0,#0FFH RET ; 仰恩大学毕业设计(论文) 21 TAB: DB 18h, 7Bh, 2Ch, 29h, 4Bh, 89h, 88h, 3Bh, 08h, 09h,0ffh ;TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH ;共阳段码表 0 1 2 3 4 56 7 8 9 不亮A- ; ;* ;* 延时程序 * ;* ; DL1MS: push 06h push 07h MOV R6,#14H DL1: MOV R7,#19H DL2: DJNZ R7,DL2 DJNZ R6,DL1 pop 07h pop 06h RET ; ;* ;* 距离计算程序 (=计数值*17/1000cm) * ;* ; work: PUSH ACC PUSH PSW PUSH B MOV PSW, #18h MOV R3, 45H MOV R2, 44H MOV R1, #00D MOV R0, #17D LCALL MUL2BY2 MOV R3, #03H 仰恩大学毕业设计(论文) 22 MOV R2, #0E9H LCALL DIV4BY2 LCALL DIV4BY2 MOV 40H, R4 MOV A,40H JNZ JJ0 MOV 40H,#0AH ;最高位为零,不点亮 JJ0: MOV A, R0 MOV R4, A MOV A, R1 MOV R5, A MOV R3, #00D MOV R2, #100D LCALL DIV4BY2 MOV 41H, R4 MOV A,41H JNZ JJ1 MOV A,40H ;次高位为 0,先看最高位是否为不亮 SUBB A,#0AH JNZ JJ1 MOV 41H,#0AH ;最高位不亮,次高位也不亮 JJ1: MOV A, R0 MOV R4, A MOV A, R1 MOV R5, A MOV R3, #00D MOV R2, #10D LCALL DIV4BY2 MOV 42H, R4 MOV A,42H JNZ JJ2 MOV A,41H ;次次高位为 0,先看次高位是否为不亮 SUBB A,#0AH JNZ JJ2 MOV 42H,#0AH ;次高位不亮,次次高位也不亮 JJ2: MOV 43H, R0 仰恩大学毕业设计(论文) 23 POP B POP PSW POP ACC RET ; ;* ;* 两字节无符号数乘法程序 * ;* ; R7R6R5R4 = R3R2 * R1R0 ; MUL2BY2: CLR A MOV R7, A MOV R6, A MOV R5, A MOV R4, A MOV 46H, #10H MULLOOP1: CLR C MOV A, R4 RLC A MOV R4, A MOV A, R5 RLC A MOV R5, A MOV A, R6 RLC A MOV R6, A MOV A, R7 RLC A MOV R7, A MOV A, R0 RLC A MOV R0, A MOV A, R1 RLC A MOV R1, A 仰恩大学毕业设计(论文) 24 JNC MULLOOP2 MOV A, R4 ADD A, R2 MOV R4, A MOV A, R5 ADDC A, R3 MOV R5, A MOV A, R6 ADDC A, #00H MOV R6, A MOV A, R7 ADDC A, #00H MOV R7, A MULLOOP2: DJNZ 46H, MULLOOP1 RET ; ;* ;* 四字节/两字节无符号数除法程序 * ;* ;R7R6R5R4/R3R2=R7R6R5R4(商).R1R0(余数) ; DIV4BY2: MOV 46

温馨提示

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

评论

0/150

提交评论