新聞中心

        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.104case.com/article/172834.htm


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 贵港市| 那曲县| 永靖县| 新丰县| 井研县| 无棣县| 同德县| 大丰市| 汕尾市| 江都市| 福安市| 连城县| 乳山市| 淅川县| 永胜县| 石棉县| 社旗县| 恩施市| 长海县| 尖扎县| 镇远县| 宜丰县| 顺平县| 新化县| 永定县| 元谋县| 修水县| 白银市| 禄丰县| 三河市| 昭平县| 松桃| 上饶市| 萨迦县| 桦甸市| 三明市| 县级市| 上虞市| 松阳县| 鄢陵县| 新泰市|