历史上的今天
今天是:2025年01月17日(星期五)
2018年01月17日 | 51多字节除法程序及使用
2018-01-17 来源:eefocus
在开发51单片机 应用系统过程中,往往遇到多字节除法及倒数问题。但目前一些资料中所介绍的有关程序,复杂且功能单一、精度低。本人在研制((GZ93多功能程控测试仪》过程中,自行设计的4字节除4字节程序具有功能多、精度高、简短、运行速度快等特点,可用于求4字节倒数,求商的整数(结果为4字节),求商的小数部分(结果为4字节),调用两次即可求8字节商。
一、使用方法
1.求商的整数
(1)16进制被除数送51内部RAM中20(低位)至23(高位)单元,除数送50(低位)至53(高位)单元,扩充单元24至27清零。 ’
(2)调子程序DIV。
(3)20(低位)至23(商位)单元为所求商,24至27单元为余数。
2.求八字节商
(1)先求商的整数部分
方法同上,然后将20至23单元的整数商送其它单元保存。
(2)求商的小数部分
20至23单元清零;其余单元内容不变;调DIV子程序;小数商在23至20单元中,小数点位于23单元
前。
3.求倒数
(1)20至23单元及25至27单元清零,01H送24单元,除数送50(低位)至53(高位)单元。
(2)调子程序DIV。
(3)倒数在23至20单元,小数点位于23单元前。
二、程序清单
ORG 0500H
DIV: CLR 7EH
MOV R0,#50H
MOV R7,#03H
DV0: MOV A,@R0
INC R0
ORL A,@R0
JNZ DV1
DJNZ R7,DV0
SETB 7EH
SJMP DV8
DV1: MOV R6,#20H
CLRC
DV2: MOV R0,#20H
MOV R7,#08H
DV3: MOV A,@R0
RLC A
MOV @R0,A
INC R0
DJNZ R7,DV3
MOV 0F0H,C
CLR C
MOV R0,#24H
MOV R1,#50H
MOV R7,#04H
DV4: MOV A,@R0
SUB A,@R1
MOV @R0,A
INC R0
INC Rl
DJNZ R7,DV4
JNB 0F0H,DV5
CLR C
SJMP DV6
DV5: JNC DV6
MOV A,24H
ADD A,50H
MOV 24H,A
MOV A,25H
ADDC A,51H
MOV 25H,A
MOV A,26H
ADDC A,52H
MOV 26H,A
MOV A,27H
ADDC A,53H
MOV 27H,A
DV6: CPL C
DJNZ R6,DV2
MOV R0,#20H
MOV R7,#04H
DV7: MOV A,@R0
RLC A
MOV @R0,A
INC R0
DJNZ R7,DV7
DV8: RET
END
上一篇:DS1302的原理及应用
下一篇:74hc595驱动串行led显示
史海拾趣
|
本文介绍了uC/GUI 的组织结构, PROTEUS 仿真环境, 以及在PROTEUS 仿真环境下实现uC/GUI 移植到MCS51 系列单片机P89C51RD2 的过程; 并且对移植过程中涉及到的修正C51 调用树和代码优化等问题进行了简明阐述。… 查看全部问答> |
|
一个LED的N种玩法(五)----WatchDog Timer 一个LED的N种玩法(五)--WatchDog Timer Author: chenzhufly Email: chenzhufly@126.com 2010-05-02 一.WatchDog Timer 概述 看门狗的目的是当进入错误状态一定时间后复位微控制器。当看门狗使能时,如果用户没有在一定时间内喂狗(看门狗定时 ...… 查看全部问答> |
|
是这样的,写了verilog的一个小程序,编译成功了,然后创建bdf文件以后,再编译,就出错。 报错是: Error: Can\'t compile duplicate declarations of entity \"sig\" into library \"work\" Error: Instance could be entity \" ...… 查看全部问答> |
|
eboot显示一个 logo, 但进去系统的中间黑屏,我想继续在 oal中显示 logo, 去掉lcd初始化函数调用, 可看 OEMInit 函数,没见 初始化LCD部分代码, OEMInit 上下文周围也没找到 初始LCD有关的函数. 麻烦给个提示,谢谢 平台是 PXA270+WINCE6.0… 查看全部问答> |
|
我现在正在弄EBOOT启动(用网络下载NK.BIN), 有几个问题想请教一下,希望各位帮帮忙,多谢 1.PB中本来有提供eboot.bin,我需要再重新编译吗? 2.Target ->ConnectivityOptions里面应该怎么设? 3.除了这两个地方,还有哪里需要注意的. 感激!(我没分了 ...… 查看全部问答> |
|
请教台达VFD-P系列11KW的\"CFF\"故障 一台达VFD-P系列11KW变频器,驱动一惯量较大的负载(外接有BRAKE单元),以前正常,现在出现\"CFF\"故障. \"CFF\"的意义是:“变频器有异常输出现象.输出接地(接地电流大于额定电流的50%以上时),功率模组 ...… 查看全部问答> |
|
为什么STR710的PLL1有输入限制?如果超过了有什么影响吗? 我的有源晶振是16MHz的,2分频后,输入PLL1,然后倍频16倍,再2分频,输出64MHz给MCLK,相关实验都做过了,没有什 ...… 查看全部问答> |
|
1. 数据位宽与对齐 嵌入式开发中,对于移植性来说,数据类型的长度和对齐,是一个很容易出错的问题。1.1. 对齐 关于什么是对齐,有很多资料,不明白的,可以google,这里不占用篇 ...… 查看全部问答> |




