新聞中心

        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


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 阳春市| 嘉禾县| 咸阳市| 枞阳县| 阿尔山市| 米林县| 淮北市| 基隆市| 灌阳县| 卢湾区| 邛崃市| 中西区| 固安县| 普陀区| 灵璧县| 石城县| 永修县| 武宁县| 铜鼓县| 临沭县| 云南省| 应城市| 嵊泗县| 通化县| 合阳县| 西林县| 乡宁县| 西宁市| 遂昌县| 堆龙德庆县| 桦甸市| 汉阴县| 东乌珠穆沁旗| 朔州市| 淅川县| 彰化县| 克东县| 荣昌县| 洛隆县| 娱乐| 襄垣县|