开发人员在开发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
关键字:51单片机 高精度除法 程序清单
引用地址:
51单片机的高精度除法使用及程序清单
推荐阅读最新更新时间:2024-03-16 13:01
MCS-51单片机定时器和计数器的4种工作方式解析
MCS-51单片机含有2个定时器/计数器,具有4种工作方式。具有两种工作模式(计数器模式和定时器模式) MCS-51单片机含有1个全双工串行口,具有4种工作方式。 TMOD-》定时器/计数器方式控制寄存器 TCON-》定时器/计数器控制寄存器 SMOD-》串行口波特率系数选择位 SCON-》串行口控制寄存器 SBUF -》串行口数据缓冲器 TH0 -》定时器/计数器0(高字节) TL0 -》定时器/计数器0(低字节) TH1 -》定时器/计数器1(高字节) TL1 -》定时器/计数器1(低字节) MCS-51单片机定时器和计数器的4种工作方式解析 一、定时器/计数器 定时器/计数器T0由特殊功能寄存器TH0、TL0
[单片机]
51单片机,点阵显示汉字(C语言)
#include reg51.h #include intrins.h //要用到 _nop_() #define uint unsigned int #define uchar unsigned char sbit SH_595=P2^1; sbit DATA_595=P2^0; sbit ST_CP_595=P2^2;//74HC595(12)-ST_CP上升沿-移位寄存器的数据进入数据存储寄存器 输出锁存器的时钟信号端口 sbit MR_595=P2^3; //74HC595(10)-MR 为0将移位寄存器的数据清0 sbit E1_154=P2^4;//74HC154(18)-E1为0开列(col)输出 显示允许
[单片机]
基于嵌入式的便携式信号发生及检测装置系统研究
我们都知道,在很多领域内需要电子仪器长期在室外甚至许多恶劣的环境中进行工作,虽然在仪器设计之初针对其所适用的不同环境,在硬件方面有很多针对性的设计,尽管如此在室外环境中因自然或人为因素造成的仪器损坏的事件也会时有发生,由于缺少示波器、信号发生器等常用的电子仪器检测设备因而不便于对其进行实时的检测,只能停止工作将其带回有条件的实验室进行检测。 针对上述需求本文设计了一种采用广泛应用的嵌入式技术的便携式信号发生与测量装置,考虑到二者使用的不同情况,对信号发生和信号测量装置采用了独立的设计,在使用时既可以单独使用也可以组合使用,信号发生装置以AT89S51为核心通过DDS芯片AD9851产生任意可调的函数信号,信号测量装置
[电源管理]
HT1621液晶驱动芯片的51单片机程序
/******************************************************** 功能描述: HT1621芯片测试程序 说 明:本测试程序能够测试HT1621的每一个字段, 依次点亮每一个字段 参数: ********************************************************/ #include reg51.H #include intrins.h #define uchar unsigned char #define uint unsigned int #define _Nop() _nop_();_nop_();
[单片机]
MSP430系列单片机与51单片机的区别及优劣势对比
MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16 位超低功耗的混合信号处理器(Mixed Signal Processor)。称之为混合信号处理器,主要是由于其针对实际应用需求,把许多模拟电路、数字电路和微处理器集成在一个芯片上,以提供“单片”解决方案。MSP430是16位单片机,51是8位单片机,MSP430采用RISC精简指令集,单个时钟周期就可以执行一条指令,相同晶振,速度较51快12倍。其它片上资源也是MSP较丰富。 有很多应用领域,比如智能仪器或仪表、自动化控制设备、家用电器等,其对于运算及控制功能的要求不高,用简单的控制软件便可达到令人满意的控制效果,但是针对一些对于体积、成本及能耗有着
[单片机]
MCS-51单片机在饱和蒸汽的流量计量补偿中的应用
0 引 言
流体流量的检测与控制是各行各业加强能源、物料管理、进行经济分析、结算和决策的重要依据,也是监控生产过程使其保持优质、安全、提高效率和改善环境的重要手段。尽管目前流量计量计已有几十种之多,然而对于越来越高的计量精确性而言,往往都要采用补偿措施。如用差压式流量计检测饱和蒸汽的流量,设计压力为0.5MPa,当蒸汽压力变化到1.0MPa时其流量误差达-26%左右 [1] 。工况变化越大,引入的误差越大。所以,在一些需要精确计量或者工况波动范围大而且波动频繁的场合必须采用补偿措施。
流体计量补偿技术,就是针对不同的流量计,检测不同流体而建立的一种修正方法。随着自动化技术的进步,计算机及其它智能装置的出现,自动补偿的技
[单片机]
8051单片机教程第二十八课:单片机音乐程序的设计
利用单片机(或单板机)奏乐大概是无线电爱好者感兴趣的问题之一。本文从单片机的基本发间实验出发,谈谈音乐程序的设计原理,并给出具体实例,以供参考。 单片机的基本发音实验 我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单处机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调。 例如,要产生200HZ的音频信号,按图1接入喇叭(若属临时实验,也可将喇叭直接接在P1口线上),实验程序为: 其中子程序DEL为延时子程序,当R3为1时,延时时间约为20us,R3中存放延时常数,对200
[单片机]
基于普通51单片机的LIN协议实现方案
1 概述 LIN协议是新出现的一种新型低成本串行通信总线,其全称是Local Interconnect Network,即局部互联网络。它最开始出现于汽车行业,是为解决汽车智能化和网络化的发展要求和降低汽车制造成本的矛盾而提出来的一种串行总线协议,主要用于车门、车灯等需要简单控制但又要求智能控制的场合。它的主要特点是:采用单个主控制器/多从设备通信模式;基于普通UART/SCI接口硬件实现,协议简单;网络传输速率不高,最高可达20kb/s。由于LIN协议的突出特点是协议对硬件的依赖程度低,可以基于普通单片机的通用串口等硬件资源以软件方式实现,成本低廉,因此可广泛应用于汽车行业以外的其他领域,如智能家庭网络内部的数据传输、节点控
[单片机]