新聞中心

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

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

        作者: 時間:2012-11-03 來源:網絡 收藏
        科技人員在開發(fā)應用系統(tǒng)過程中,往往遇到多字節(jié)除法及。但目前一些資料中所介紹的有關程序,復雜且功能單一、精度低。本人在研制((GZ93多功能程控測試儀》過程中,自行設計的4字節(jié)除4字節(jié)程序具有功能多、精度高、簡短、運行速度快等特點,可用于求4字節(jié)倒數,求商的整數(結果為4字節(jié)),求商的小數部分(結果為4字節(jié)),調用兩次即可求8字節(jié)商。
        一、使用方法
        1.求商的整數
        (1)16進制被除數送51內部RAM中20(低位)至23(高位)單元,除數送50(低位)至53(高位)單元,擴充單元24至27清零。 ’
        (2)調子程序DIV。
        (3)20(低位)至23(商位)單元為所求商,24至27單元為余數。
        2.求八字節(jié)商
        (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


        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 禄丰县| 濮阳县| 宝兴县| 沙洋县| 泰和县| 满城县| 崇左市| 松桃| 建宁县| 武安市| 定陶县| 拉萨市| 彝良县| 高台县| 彰化市| 黔西| 榆林市| 巫溪县| 平果县| 江川县| 汕头市| 嫩江县| 江都市| 朝阳区| 资源县| 梨树县| 库尔勒市| 耒阳市| 娄烦县| 仲巴县| 泗水县| 保亭| 平度市| 喜德县| 英超| 余干县| 马龙县| 麻栗坡县| 平遥县| 卢湾区| 大庆市|