找回密碼
         注冊會員
        搜索附件  
        MCU資訊論壇 附件中心 單片機論壇 51單片機論壇 51jianyijisuanqi.doc

        51jianyijisuanqi.doc

         

        51單片機實現的能進行浮點運算(包括浮點乘法,除法等)的計算器:

        51單片機實現的簡易計算器

        1. 4X4鍵盤輸入,點陣字符型液晶顯示。
        2. 由于所采用的浮點程序庫的限制(MCU平臺只找到這個……),浮點運算采用3字節二進制補碼表示,有效數字6位。對于輸入輸出,采用3字節BCD碼浮點數格式,有效數字只有4位,因此最終有效數字只有4位。
        3. 可進行連續輸入,例如:1.23+4.56*8.23/234.8 ,但是運算結果為從左到右,這也是8位簡易計算器的方式。
        4. 可進行錯誤判斷,溢出、除零等錯誤將顯示一個字符 E
        5. 由于鍵盤只有16個按鍵,安排如下:
        +---------------+
        | 7 | 8 | 9 | + |
        | 4 | 5 | 6 | - |
        | 1 | 2 | 3 | * |
        | 0 | . | = | / |
        +---------------+
        6. 按鍵的缺少導致取消了一些特殊函數,即開根號,三角函數(sin, cos, tan, ctg)的實現,由于這些函數在浮點程序庫中均已提供,如果硬件允許,在原來的框架上添加這些附加功能是很容易的(可以看作和+, -, *, /等價的按鍵操作,調用不同的子程序進行運算即可)
        7. 按兩次 = 等于清靈。因為按鍵實在太少,才采用了這個做法。
        8. 相應舉例:
        按鍵 結果 說明
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        123+= 123 按下等號而沒有第二個操作數,保留第一個操作數并認為此次運算結束(等號的功能)

        123+321/111 4.0 等價于(123+321) / 111

        2.3+5.4=/0.1+ 77 等號后直接按 / ,則將前面的運算結果作為第一個操作數
        1/0= E 錯誤顯示

        9. 不足
        使用3字節的浮點數表示,不可避免的帶來了數表示的不精確,加上有效數字比較少,因此計算結果很容易產生誤差,尤其是進行連續多次運算后,結果和精度較高的科學計算器的誤差會很快達到0.01以上,當然這個差距和所測試的用例也有關系,4位有效數字導致了數字123456只能表示為123400,最后兩位有效數字被摒棄了。
        同時,雖然純整數可以進行較為高精度的運算,實現也較為容易,但是考慮到要和浮點數混合在一起處理,如果在算法上分別考慮整數和浮點數,整個程序框架代碼將會膨脹不少,因此將其簡化為統一作為浮點數對待。

        10. 源代碼
        2000行左右(含注釋、空行),其中浮點程序庫約900行。其余為鍵盤輸入掃描、液晶輸出顯示和按鍵處理程序。文件大小 47.2 KB



        kan kan 希望有用  不過還是謝謝樓主
        看看 您的帖子長度不符合要求。 當前長度: 6 字節系統限制: 20 到 10000 字節!!!!!!!!
        DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
        額...是匯編實現的呀...
        額...是匯編實現的呀...
        為啥子不用c編呢,比匯編好些
        回復 admin 的帖子

        樓主真是太牛了
        下來才發現是匯編的……能發個C編的么?
        想學習用匯編語言實現浮點相乘,希望幫助得到
        我就是要做一個計算器。
        無奈之舉啊。。。。。
        再次感謝樓主!!!{:e154:}

        QQ|手機版|MCU資訊論壇 ( 京ICP備18035221號-2 )|網站地圖

        GMT+8, 2025-3-18 13:00 , Processed in 0.039979 second(s), 8 queries , Redis On.

        Powered by Discuz! X3.5

        © 2001-2024 Discuz! Team.

        返回頂部
        欧美精品在线免费| 久久精品一本到99热免费| 久久精品视频免费| 亚洲国产精品一区二区成人片国内 | 精品无码人妻夜人多侵犯18| 国产99视频精品免视看7| 午夜男人女人爽爽爽视频| 国精品产露脸自拍| 亚洲精品自产拍在线观看动漫| 99热精品在线| .精品久久久麻豆国产精品| 亚洲国产成人精品不卡青青草原 | freefron性中国国产高清| 四库影院永久四虎精品国产| 久久精品亚洲欧美日韩久久| 国产精品香蕉在线观看| 91探花国产综合在线精品| 久久精品草草草| 久久精品国产免费一区| 久久久久亚洲精品天堂久久久久久 | 亚洲AV永久无码精品一区二区| 国产伦精品一区二区免费| 色先锋影音5566| 九九精品成人免费国产片| 亚洲第一区精品日韩在线播放| 97久久精品无码一区二区天美| 欧美精品高清在线xxxx| 精品久久久久中文字幕日本| 久久精品中文騷妇女内射| 国产精品无码永久免费888| 亚洲∧v久久久无码精品| 久久久国产精品亚洲一区| 国产精品免费久久| 欧美久久久久久午夜精品| 精品久久久噜噜噜久久久| 免费看污污的网站欧美国产精品不卡在线观看| 久久66热人妻偷产精品9| 精品久久久久久国产三级| 麻豆精品视频在线观看| 国产精品免费一区二区三区四区| 99re这里只有精品热久久|