找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3136|回復(fù): 3
收起左側(cè)

LCD1602如何顯示FLOAT變量?

[復(fù)制鏈接]
ID:906479 發(fā)表于 2021-4-15 20:11 | 顯示全部樓層 |閱讀模式
小白一枚,最近在用51單片機(jī)做個小設(shè)計:單片機(jī)RXD獲取GPS速度后在1602上顯示出來。GPS給到的速度數(shù)據(jù)格式是X.XXX或XX.XX或XXX.X,單位是節(jié)。



回復(fù)

使用道具 舉報

ID:906479 發(fā)表于 2021-4-15 20:29 | 顯示全部樓層
本帖最后由 空閑游真 于 2021-4-15 20:41 編輯

現(xiàn)在的想法是把獲取到的數(shù)據(jù)先賦給一個float變量再用LCD1602輸出。輸出這一步犯了難,LCD1602如何輸出一個浮點數(shù)呢,望指教!
回復(fù)

使用道具 舉報

ID:207421 發(fā)表于 2021-4-15 21:37 | 顯示全部樓層
LCD1602只支持字符顯示,那么小數(shù)或數(shù)字必須一個一個都轉(zhuǎn)換成字符,如3 -> '3'   
如果顯示函數(shù)是 show(0,0,字符),要顯示num=3.14  先乘以100變成整數(shù),num = 314,那么如下:
show(0,0,num/100%10 + 0x30);
show(0,0,'.');
show(0,0,num/10/%10 + 0x30);
show(0,0,num%10 + 0x30);
回復(fù)

使用道具 舉報

ID:906479 發(fā)表于 2021-4-15 22:02 | 顯示全部樓層
lwh999995 發(fā)表于 2021-4-15 21:37
LCD1602只支持字符顯示,那么小數(shù)或數(shù)字必須一個一個都轉(zhuǎn)換成字符,如3 -> '3'   
如果顯示函數(shù)是 show(0, ...

感謝回復(fù)!我一開始也是這么做的,但是這種做法有個缺點,就是變量的小數(shù)點位置是固定的。
我剛才又查了查資料,找到一種比較便捷的方法。就是把浮點變量轉(zhuǎn)換成字符串再輸出

float x=12.783
char str[6];
sprintf(str,"%f",x);
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表