導航:首頁 > 操作系統 > 單片機如何接收浮點型數據

單片機如何接收浮點型數據

發布時間:2024-07-10 01:10:12

⑴ 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;
....... //然後就開始顯示了

}

閱讀全文

與單片機如何接收浮點型數據相關的資料

熱點內容
伺服器如何確認有沒有裝系統 瀏覽:490
匯編語言debugg命令 瀏覽:491
買菜app的菜怎麼來的 瀏覽:174
51單片機如何自檢 瀏覽:80
單片機用延時來實現pwm 瀏覽:739
php在線問卷調查 瀏覽:2
java字元串填充 瀏覽:612
c嵌入式編程設計式pdf 瀏覽:791
如何讓安卓手機定時播放音樂 瀏覽:624
學霸教你學cpa什麼app 瀏覽:870
iso系統文件夾最多多大 瀏覽:441
java線程啟動方法是 瀏覽:571
亞洲文件夾 瀏覽:375
python執行linux命令 瀏覽:324
單片機消毒櫃 瀏覽:888
企業伺服器如何選 瀏覽:717
java選課管理 瀏覽:91
程序員疲勞圖片 瀏覽:40
曼哈頓距離和歐式距離python 瀏覽:274
程序員軟考高級哪個好考 瀏覽:309