DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 145|回复: 0
打印 上一主题 下一主题

51单片机的高精度除法程序及使用

[复制链接]
跳转到指定楼层
楼主
发表于 2011-4-30 13:35:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
51单片机的高精度除法程序及使用
开发人员在开发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
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-10-23 07:35 , 耗时 0.100064 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表