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

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

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

    作者: 時間:2012-06-23 來源:網絡 收藏

    開發人員在開發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/171257.htm


    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 巴林左旗| 德令哈市| 尼勒克县| 平山县| 镇赉县| 闽侯县| 乌兰县| 牡丹江市| 辽阳县| 太湖县| 临高县| 临潭县| 武陟县| 钟祥市| 怀仁县| 鹤山市| 泾阳县| 平泉县| 陆丰市| 寿光市| 光山县| 南和县| 中阳县| 清徐县| 白河县| 松桃| 施甸县| 古蔺县| 大安市| 托克逊县| 论坛| 德兴市| 渭源县| 仙桃市| 邛崃市| 报价| 屏东县| 准格尔旗| 遂平县| 平凉市| 永康市|