您当前的位置:五五电子网电子知识单片机-工控设备源码-程序51单片机的高精度除法程序及使用 正文
51单片机的高精度除法程序及使用

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

点击数:7504 次   录入时间:03-04 11:37:43   整理:http://www.55dianzi.com   源码-程序
      开发人员在开发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 


本文关键字:单片机  程序  源码-程序单片机-工控设备 - 源码-程序