单片机 三字节除法子程序

发布者:trendsetter9最新更新时间:2016-01-22 来源: eefocus关键字:单片机  三字节除法  子程序 手机看文章 扫描二维码
随时随地手机看文章
ORG 0000H
AJMP MAIN

ORG 0030H
MAIN:
MOV 77H,#0FH
MOV 78H,#42H
MOV 79H,#40H

MOV 7AH,#00H
MOV 7BH,#03H
MOV 7CH,#0E8H
LCALL DIV_MB

SJMP MAIN

;=================================================
; DIVISION FOR THREE-BYTE DATA
; DIVIDEND FROM 77H&78H&79H
; DIVISOR FROM 7AH&7BH&7CH
; QUOTIENT TO   77H&78H&79H
;ARITHMETICAL COMPLIMENT TO 7DH&7EH&7FH
; 2008_05_08 BY SZCKIC
;=================================================
DIV_MB: MOV 7DH,#00H
MOV 7EH,#00H
MOV 7FH,#00H
MOV R7,#18H
NEXTBIT:
CLR C
MOV A,79H
RLC A
MOV 79H,A

MOV A,78H
RLC A
MOV 78H,A

MOV A,77H
RLC A
MOV 77H,A
;Arithmetical compliment
MOV A,7FH
RLC A
MOV 7FH,A

MOV A,7EH
RLC A
MOV 7EH,A

MOV A,7DH
RLC A
MOV 7DH,A

MOV 5AH,7DH
MOV 5BH,7EH
MOV 5CH,7FH
MOV 5DH,7AH
MOV 5EH,7BH
MOV 5FH,7CH

LCALL TDEC
JNC UPDATE
DJNZ R7,NEXTBITTMP
RET
UPDATE: INC 79H   
MOV 7FH,5CH
MOV 7EH,5BH
MOV 7DH,5AH

DJNZ R7,NEXTBITTMP

RET
NEXTBITTMP:LJMP NEXTBIT  

;=================================================
; Subtracter for three-byte data
;=================================================
TDEC: CLR C
MOV A,5CH
SUBB A,5FH
MOV 5CH,A

MOV A,5BH
SUBB A,5EH
MOV 5BH,A

MOV A,5AH
SUBB A,5DH
MOV 5AH,A
RET

除法程序写成了子程序形式,很方便调用,除法中要频繁用到三字节数据大小的比较,所以也写成了一个小子程序。

思路很简单,抛开我们习惯了的乘法口诀,以一个小学二年级学生的思路去做就简单了,一步一步的比较、移位,只不过这里是二进制而不是习惯了的十进制,当然二进制也有一个优点那就是:

假设A,B是两个同样位数的二进制数据(首位不为0),且A>B,则A肯定小于2倍的B,所以对于每次移位只用比较一次。

关键字:单片机  三字节除法  子程序 引用地址:单片机 三字节除法子程序

上一篇:单片机 散转表程序的使用
下一篇:单片机 双字节除法子程序

推荐阅读最新更新时间:2024-03-16 14:45

基于ADC0809和51单片机的多路数据采集系统设计方案
“数据采集”是指将温度、压力、流量、位移等模拟物理量采集并转换成数字量后,再由计算机进行存储、处理、显示和打印的过程,相应的系统称为数据采集系统。 本文的主要任务是对0~5V的直流电压进行测量并送到远端的PC机上进行显示。由于采集的是直流信号,对于缓慢变化的信号不必加采样保持电路,因此选用市面上比较常见的逐次逼近型ADC0809芯片,该芯片转换速度快,价格低廉,可以直接将直流电压转换为计算机可以处理的数字量。同时选用低功耗的LCD显示器件来满足其在终端显示采集结果的需求。终端键盘控制采用尽可能少的键来实现控制功能,为了防止键盘不用时的误操作,设计时还设置了锁键功能,在键盘的输入消抖方面,则采用软件消抖方法来降低硬件开销,
[单片机]
基于ADC0809和51<font color='red'>单片机</font>的多路数据采集系统设计方案
单片机知识(四)
单片机指令(二) 数据传递类指令 (3)以直接地址为目的操作数的指令 MOV direct,A 例: MOV 20H,A MOV direct,Rn MOV 20H,R1 MOV direct1,direct2 MOV 20H,30H MOV direct,@Ri MOV 20H,@R1 MOV direct,#data MOV 20H,#34H (4)以间接地址为目的操作数的指令 MOV @Ri,A 例:MOV @R0,A MOV @Ri,direct MOV @R1,20H MOV @Ri,#data MOV @R0,#34H (5)十六位数的传递指令 MOV DPTR,#data16 8051是一种
[单片机]
MSP430单片机热敏电阻温度测量系统设计
MSP430单片机计数法测温原理 以NE555定时器为核心组成典型的多谐振荡器,把被测热敏电阻Rt 作为定时元件之一接入电路中,NE555定时器输出引脚接MSP430单片机的P1.2脚(Timer_A:捕获、CCIlA输入引脚)。系统电路如图所示。 由上述测量原理可知,误差主要来源为:R1、R2精度,单片机的定时器和电容器的精度以及稳定度。这里选用高精度(士O.001%)、温度系数小于土O.3×10-6/℃的精密金属箔电阻器。因此当选用高精度、高稳定度的电容器,且单片机的工作频率足够高,就可以得到较好的测温精度。 由测量原理知:被测电阻的阻值越大,测量误差越小。笔者已应用该方法设计出一款温度计,测量范围为一10~
[单片机]
MSP430<font color='red'>单片机</font>热敏电阻温度测量系统设计
STM32单片机-输入捕获、FFT测频
一、硬件连接 1、电压信号处理电路仿真 图1.1.1 ----------------------------------------------------------- 2、单片机连接 主控MCU:STM32F103ZET6,LM293输出连接在PB0上检测电压信号的频率,如图1.1.1与图1.2.1所示。 图1.2.1 图1.2.2 如图1.2.2所示,注意其中的TIM3_CH2N是PWM捕获比较输出,TIM3_CH3才是输入捕获。 图1.2.3 ------------------------------------------------------------------------------
[单片机]
STM32<font color='red'>单片机</font>-输入捕获、FFT测频
DIY遥控手柄程序入驻单片机需要几步
一般来讲我们编译出的可执行程序是一个二进制文件,对于Keil编译环境来说他会生成一个以.hex为后缀的文件。我们的目的就是把这个*.hex文件下载(烧录、写入)到我们的单片机中,下面看看如何来操作。 图16-02是一个USB转串口的模块,使用它前需要安装相关驱动程序。通过这个模块我们可以对单片机进行编程,线路的连接比较简单USB一端插在我们的PC机上,另外的3根线对应的是GND、TX、RX(地、发、收),分别与我们的手柄电路板上的编程接口相连,对应关系是GND-GND、RX-TX、TX-RX。电路连接完毕后开始下载程序,由于我们使用的是STC系列的51 单片机 所以我们使用STC-ISP.exe这个工具对 单片机 进行编程,看一下
[电源管理]
DIY遥控手柄程序入驻<font color='red'>单片机</font>需要几步
Atmel面向汽车、物联网和工业推出ARM Cortex-M7系列MCU
拓展了Atmel | SMART MCU产品系列,超越行业最高性能的ARM Cortex -M处理器系列MCU,CoreMark评分高达1500分; 具备性能卓越的连接能力和独特内存架构,针对实时决定性代码执行和低延迟外设数据访问实现了优化; 业内首款符合汽车使用要求的Cortex-M7系列MCU,为实现汽车联网和音频应用程序提供了以太网AVB和媒体LB外设功能; 中国北京,2015年1月14日 全球微控制器(MCU)和触控解决方案领域的领导者Atmel 公司(NASDAQ:ATML)近日发布了4个新系列产品,均属于其Atmel | SMART ARM Cortex -M7系列MCU产品。新系列为市场带来了最高性能的
[单片机]
飞思卡尔单片机DZ60---SCI(查询接收)
#include hidef.h /* for EnableInterrupts macro */ #include derivative.h /* include peripheral declarations */ //整个功能:PC-单片机-PC,PC串口发数据-单片机串口接收数据-单片机将接收到的数据发送回给PC #define LED_D1 PTDD_PTDD0 #define LED_D1_DIR PTDDD_PTDDD0 #define LED_ON 0 #define LED_OFF 1 unsigned char SCANF_SEND_STRINGS = HELLO MCU WORLD ;
[单片机]
51单片机开发板的主要功能 51单片机开发板能做什么
51单片机开发板是一种基于8051系列单片机芯片的开发板,具有丰富的功能和广泛的应用。下面将详细介绍51单片机开发板的主要功能以及能够实现的各种应用。 一、基本功能: 通用输入输出:51单片机开发板具有多个通用输入输出引脚,可以连接各种外部设备和传感器,实现数据的输入和输出。 时钟管理:开发板通常会集成时钟电路,包括晶振、时钟发生器等,可以提供稳定的时钟信号给单片机使用。 存储器管理:开发板通常会搭载闪存、EEPROM、SRAM等各种类型的存储器,用于存储程序代码和数据。 电源管理:开发板通常会提供多种电源供电方式,可以选择外部电源或者USB供电。 通信接口:如串口、SPI、I2C等,可以连接各种外部设备进行数据通信
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved