導航:首頁 > 操作系統 > c51單片機浮點數

c51單片機浮點數

發布時間:2023-02-04 10:37:46

Ⅰ 51單片機怎麼實現浮點運算

要先按裝浮點庫C51FPS.LIB,按裝路徑為:將 C51FPS.LIB 文件復制到 C:\Keil\C51\LIB\ 文件夾下面。
而後在程序中用浮點型變數float或double進行運算即可。

Ⅱ 51單片機通常如何輸入浮點數

單片機處理浮點數效率不高,一般是浮點數乘以10的n次方變成整數進行計算等處理,在輸出的時候再次處理小數點。比如,你輸入的是1234.567,1234保存到2個unsigned char型變數裡面,567保存到2個unsigned char型變數裡面,如果是有符號浮點數,可以把符號單獨保存到一個unsigned char裡面,計算的時候所有的數都乘以1000,輸出的時候單獨輸出整數部分和小數部分。

Ⅲ 單片機C51中將浮點數轉成字元用串口發出,有時會出錯

仔細看了一下,問題出現在Send_Data(num_ganguo[i]);這里。你去看一下,你是如何處理字元串的,是不是,把數據中的除上位機的數據的數字都處理成了0的ASCII碼了。(個人見解,如有不足,請指出)

Ⅳ 在C51中,為什麼很少使用長整型和浮點型數據

C51單片機最多16位,無需用長整形,不用浮點么為了節省ram ,減少CPU佔用率。

Ⅳ 51單片機long,double,float,int范圍是多大,各多少位元組

在keilC51或者iar for c8051編譯器下:

一、int 占兩個位元組 范圍:-32768~+32767

二、long佔四個位元組 范圍:-2147483648~+2147483647

三、float佔四個位元組 范圍:3.40E+38 ~ +3.40E+38

四、double佔8個位元組 范圍:-1.79E+308 ~ +1.79E+308

51單片機是對所有兼容Intel 8031指令系統的單片機的統稱。該系列單片機的始祖是Intel的8004單片機,後來隨著Flash rom技術的發展,8004單片機取得了長足的進展,成為應用最廣泛的8位單片機之一。

(5)c51單片機浮點數擴展閱讀:

51單片機功能特性

1、可以模擬63K程序空間,接近64K 的16位地址空間;

2、可以模擬64Kxdata 空間,全部64K 的16位地址空間;

3、可以真實模擬全部32 條IO腳;

4、完全兼容keilC51 UV2 調試環境,可以通過UV2 環境進行單步,斷點, 全速等操作;

5、可以使用C51語言或者ASM匯編語言進行調試 ;

6、可以非常方便地進行所有變數觀察,包括滑鼠取值觀察,即滑鼠放在某 變數上就會立即顯示出它此的值;

7、可選 使用用戶晶振,支持0-40MHZ晶振頻率;

8、片上帶有768位元組的xdata,您可以在模擬時選 使用他們,進行xdata 的模擬;

9、可以模擬雙DPTR 指針;

10、可以模擬去除ALE 信號輸出. ;

11、自適應300-38400bps 的所有波特率通訊;

12、體積非常細小,非常方便插入到用戶板中.插入時緊貼用戶板,沒有連接電纜,這樣可以有效地減少運行中的干擾,避免模擬時出現莫名其妙的故障;

13、模擬插針採用優質鍍金插針,可以有效地防止日久生銹,選擇優質園腳IC插座,保護模擬插針,同時不會損壞目標板上的插座. ;

14、模擬時監控和用戶代碼分離,不可能產生不能模擬的軟故障;

15、RS-232介面不計成本採用MAX202集成電路,串列通訊穩定可靠,絕非一般三極體的簡易電路可比。

Ⅵ 單片機C51十六進制浮點型轉換為十進制,怎麼轉

用一個聯合體就可以解決你的問題

union temp{
float x;
char table[4];
};
比如上位機發給你一個4位元組的浮點數給你,存放在recbuf[4]中
那麼你只要執行了
temp.table[0]=recbuf[0];
temp.table[1]=recbuf[1];

temp.table[2]=recbuf[2];

temp.table[3]=recbuf[3];
後,temp.x就是浮點數的結果

Ⅶ 關於C51單片機的小數點四捨五入處理

將你需保留的那一位的低一位加5之後舍掉即可

單片機內一般採用整數計算,如果要保留兩位小數,需將原數據擴大100倍,小數點該向左移2位
18754/100=187·54 但單片機只能算整數,因此結果只能是187
因此計算時我們我們將被除數擴大100倍 相當於小數點向右移2位,1875400/ 100=18754
然後我們將計算結果的小數點再向左移回來2 位,即變成了 187.54 這就是定點小數的演算法
如果18754/100我們只保留一位小數
我們可以這樣處理 (18754*100+500)=1875900
1875900/100=18759
小數點左移2位,結果187.59 最後一位不考慮取187.5
但如果18755/100我們只保留一位小數
(18755*100+500)=1876000
1876000/100=18760

小數點左移2位,結果187.60 最後一位不考慮取187.6
看到了吧,4捨去了 5就入上去了
所以要保留三位小數,需將原來數據擴大1000倍,再除1000
所以要保留4位小數,需將原來數據擴大10000倍,再除10000
.......
擴大100倍或1000倍操作要放在除法之前,因除法才會導致小數丟失
需4舍5 入,將要保留的那一位數的低一位加5即可
當然這是低級演算法,用C語言編程直接可以用浮點數,結果輸出 時會自動四舍5 入
你所要做的是將浮點數轉換為字元(用sprint函數)並控制輸出數據的位數,格式控制類似於printf函數

Ⅷ C51單片機浮點數運算

因為沒有電路,所以程序我就沒法給你寫,給你個思路.
第一,不知道你的a和b是什麼類型的,如果是定義成浮點型,那麼,可以這樣寫:
float f_Div = a/b;
如果兩個有一個是整形的,那麼,把整型強制轉換成浮點型:
float f_Div = (float)a/(float)b;
注意,那個f_Div變數必須是float型,才能有小數產生

第二,你要進行顯示,肯定要把各個位都取出來,這裡面肯定有一個取模運算,就是"%",
對於浮點型,不運行取模運算的,所以,你必須把浮點型轉換成整型,但是,不能強制轉換,
比如: unsigned int I_Div = (unsigned int)f_Div;這是不可以的,你的小數部分就沒有了.
所以,你必須要放大一定的倍數,根據你的要求,你是要保留三位,那麼,這里還有個問題,你的
小數點之前有幾位,決定了你小數點後面保留幾位.
比如,你得到的結果是 1.2345,那麼,你就保留1.23
如果你得到的結果是 12.345,那麼,就保留12.3
如果你得到的結果是 123.45,你就只能保留123了
如果得到的結果是 0.123,你就只能保留 0.12

所以可以看出,你的浮點型結果整數部分有多少位,決定了你的小數能保留多少位,所以還要進行如下運算:

unsigned int i_Div = unsigned int)f_Div;;
unsigned char Dot_Bit = 0; //---這個變數用來表示在第幾位上顯示小數點,因為
//---通過下面的操作,已經把小數變成整數了
if(I_Div >= 100) //---表示前面有3個整數部分位
{
; //---那就沒什麼可操作的,unsigned int i_Div = unsigned int)f_Div;;就符合要求
}
else if (I_DIV >= 10) //---表示整數部分有2位
{
I_DIV = f_Div *10;
Dot_Bit = 1; //---在右數第2個地方顯示小數點,也就是十位後顯示小數點
}
else
{
I_DIV = f_Div *10;
Dot_Bit = 2; //---在右數第2個地方顯示小數點,也就是最前面那位後面顯示
}
void Display(void)
{

unsigned char Hundred = I_Div/100;
unsigned char TenBit = (I_Div/%00)/10;
unsigned char TenBit = I_Div%10;
....... //然後就開始顯示了

}

Ⅸ C51中浮點數

單精度浮點數是雙字4個位元組,浮點數-12.34對應的16進制是0XC14570A3,至於為什麼是這個數,你還是去看下16進制數表示浮點數的原理吧,這里就不說了

Ⅹ 51單片機能不能計算浮點數,支不支持浮點運算有人說能,有人說不能。

不能直接硬體計算浮點(就是所謂的FPU),只能通過程序庫(調用函數)模擬完成,非常耗時!

閱讀全文

與c51單片機浮點數相關的資料

熱點內容
十三排電影院坐第幾排 瀏覽:121
尼故福利院 瀏覽:601
哪有好看的電影網站 瀏覽:772
紅顏薄命女斗小說 瀏覽:940
法國電影戀愛love2012電影完整版 瀏覽:459
在線影視 不卡 瀏覽:168
老男孩韓國完整版百度網盤 瀏覽:485
用箱子運水怪結果被放出來了電影 瀏覽:519
徐錦江空中飛人片名 瀏覽:164
手機免費在線看福利電影 瀏覽:457
羅麗星克萊爾經典 瀏覽:342
台灣紅羊有哪些經典電影 瀏覽:568
免下載你懂的 瀏覽:975
新建文件夾1女演員三位 瀏覽:740
不用下載就能看的視頻網站 瀏覽:330
我一個神偷硬生生把國家偷成強國 瀏覽:600
樣子是五歲小男孩和郭富城演的 瀏覽:460
韓國演員也美娜 瀏覽:898
陸離是哪部小說的主角 瀏覽:49
華娛開局佟麗婭 瀏覽:17