找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3119|回复: 3
收起左侧

LCD1602如何显示FLOAT变量?

[复制链接]
ID:906479 发表于 2021-4-15 20:11 | 显示全部楼层 |阅读模式
小白一枚,最近在用51单片机做个小设计:单片机RXD获取GPS速度后在1602上显示出来。GPS给到的速度数据格式是X.XXX或XX.XX或XXX.X,单位是节。



回复

使用道具 举报

ID:906479 发表于 2021-4-15 20:29 | 显示全部楼层
本帖最后由 空闲游真 于 2021-4-15 20:41 编辑

现在的想法是把获取到的数据先赋给一个float变量再用LCD1602输出。输出这一步犯了难,LCD1602如何输出一个浮点数呢,望指教!
回复

使用道具 举报

ID:207421 发表于 2021-4-15 21:37 | 显示全部楼层
LCD1602只支持字符显示,那么小数或数字必须一个一个都转换成字符,如3 -> '3'   
如果显示函数是 show(0,0,字符),要显示num=3.14  先乘以100变成整数,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);
回复

使用道具 举报

ID:906479 发表于 2021-4-15 22:02 | 显示全部楼层
lwh999995 发表于 2021-4-15 21:37
LCD1602只支持字符显示,那么小数或数字必须一个一个都转换成字符,如3 -> '3'   
如果显示函数是 show(0, ...

感谢回复!我一开始也是这么做的,但是这种做法有个缺点,就是变量的小数点位置是固定的。
我刚才又查了查资料,找到一种比较便捷的方法。就是把浮点变量转换成字符串再输出

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表