单片机
返回首页

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

2012-06-25 来源:21ic

开发人员在开发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

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 简洁的过零调功器电路设计与分析

  • 永不缺相启动运行的电动机控制电路

  • IGBT模块通过控制门极阻断过电流

  • 比较常见的功率整流器和滤波电路

  • 基于M66T旋律发​​生器的电路图解析

  • 基于CA3193的热电偶放大器电路

    相关电子头条文章