新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 用軟件實現DAA的方法

        用軟件實現DAA的方法

        作者: 時間:2013-09-09 來源:網絡 收藏
        ebkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">  該組子程序由定點整數二翻十、定點整數十翻二、定點小數二翻十和定點小數十翻二等4個子程序組成,分別稱為CONV1、CONV2、CONV3和CONV4。由于AVRAT90系列單片機只有字節乘字節指令,計算功能不強,故采用移位調整法實現多字節數據的數制轉換。其中,整數二翻十子程序CONV1和小數十翻二子程序CONV4采取左移調整的方法,而整數十翻二子程序CONV2和小數二翻十子程序CONV3采用右移調整的方法。不論左移還是右移,調整總是對十進制數進行,其目的是使十進制數的移位規則符合于二進制數移位規則:左移1位值增倍,右移1位值折半。當某位BCD中的最高位(8)左移移入高位BCD中時,按二進制數看待應為16,而按十進制數相鄰位看待只能為10,故要做加6調整。另外,左移過程中若出現非法BCD碼時也要對其調整。BCD碼左移只不過是BCD碼相加的特例,故調用 BCD碼相加調整子程序A1就可完全解決左移調整問題。當右移BCD碼時,若某位BCD中的1移入低位BCD最高位,按二進制數看待,1折半應為 0.5,而低位BCD中最高位值為0.8,故要做減3(即0.3)調整。因8421BCD碼其各位之權(某位上的1所代表的實際數值)分別為8、4、2和 1,若只在本碼位內部移動,則符合左移1位值增倍、右移1位值折半的規則,故不須調整。

          本組定點運算及數制轉換子程序為適應大多數應用場合而設,具體使用時可加以修改。如整數二翻十時,二進制數不超過$FFFF,為提高運行速度,可將二進制數改為二字節,十進制數改為3字節,并將移位循環次數(R21)改為16。如數據精度不夠,可把乘法子程序改為3字節乘3字節等等。

          A1為左移BCD碼并對其進行調整的子程序。

          R為對右移后的BCD碼進行測試、實施減3調整的子程序,以R20為工作單元。

          注:開平方子程序SQR說明中,請將對開平方數R17、R16、R15、R14加上完整根號。


        上一頁 1 2 3 下一頁

        關鍵詞: 軟件 DAA

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 博湖县| 临洮县| 无锡市| 成都市| 鄂州市| 礼泉县| 精河县| 阿坝| 酒泉市| 肥乡县| 泽普县| 贵阳市| 安陆市| 阳城县| 铜梁县| 阿巴嘎旗| 孟连| 荣成市| 库尔勒市| 全南县| 炉霍县| 手机| 阳山县| 蒲城县| 汽车| 遂昌县| 东阿县| 黄骅市| 肥东县| 芦溪县| 万安县| 宁乡县| 东山县| 开化县| 台安县| 财经| 子长县| 博白县| 呼玛县| 庆安县| 乡城县|