• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機的高精度除法程序及使用

    51單片機的高精度除法程序及使用

    作者: 時間:2011-05-01 來源:網絡 收藏

    開發人員在開發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

    本文引用地址:http://www.czjhyjcfj.com/article/172834.htm


    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 通城县| 米脂县| 罗江县| 孟津县| 南木林县| 灵寿县| 雅安市| 潮州市| 清丰县| 柏乡县| 沙坪坝区| 周宁县| 深水埗区| 界首市| 绥德县| 丁青县| 桃园县| 康定县| 聂拉木县| 建宁县| 陈巴尔虎旗| 古田县| 灵石县| 仁寿县| 玛纳斯县| 攀枝花市| 巢湖市| 武胜县| 绵阳市| 常宁市| 偃师市| 吉林市| 峨眉山市| 永寿县| 车险| 澎湖县| 安丘市| 清原| 巴彦县| 乐陵市| 芦溪县|