打印

浮点数

[复制链接]
1737|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wgq5416|  楼主 | 2008-4-10 10:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当plc传给我的从站为浮点数时,我收到的的是符合IEEE754国际标准的四字节形式,但是我想把他通过数码管显示出去,我怎么处理这个译码的过程呢?想了好久没有想明白。比如说在plc端传一个浮点数11.375,我的从站底层收到的就是41 36 00 00(16进制四字节形式)。我在单片机里怎么处理才能正确显示11.375。 (我用的单片机是AT89S52)

相关帖子

沙发
农民讲习所| | 2008-4-10 10:42 | 只看该作者

转换

先使用union,将收到的4个字节数据转为浮点,再用sprintf将浮点转为字符串,存在字符串数组中,显示对此字符串数组处理

使用特权

评论回复
板凳
dztb| | 2008-4-10 14:15 | 只看该作者

浮点比较难

使用特权

评论回复
地板
westsfw| | 2008-4-10 14:21 | 只看该作者

指针

用一个浮点指针指向收到的数据的第一个字节地址

使用特权

评论回复
5
lws| | 2008-4-11 08:27 | 只看该作者

为什么一定要传浮点数呢

plc里乘1000换算成整数多简单,这只是一个思路。

使用特权

评论回复
6
johnwjl| | 2008-4-11 09:06 | 只看该作者

浮点数放大

但要考虑整数溢出问题.

还是所长的方法好.

使用特权

评论回复
7
wgq5416|  楼主 | 2008-4-11 10:13 | 只看该作者

谢谢大家的回复

是这样的,我做的是一个profibus数显表,也就是plc传过来一个数据在我的表上显示就可以了,但是那边传过来的是小数的时候也就是浮点数的时候,我这边在底层收到的就是四字节形式,我怎么把这四字节用数码管显示出去,小数点位置怎么定?

使用特权

评论回复
8
2shift| | 2008-4-11 16:40 | 只看该作者

用union,然后自己编写一个转换成字符串的函数

sprintf好像是代码比较大,还不如自己编写一个

使用特权

评论回复
9
gyt| | 2008-4-11 17:09 | 只看该作者

9楼说的是

使用特权

评论回复
10
mohanwei| | 2008-4-11 19:48 | 只看该作者

union比较好。转换还是用sprintf比较好

占用1k flash,30个data

使用特权

评论回复
11
guanyumou| | 2014-11-20 12:18 | 只看该作者
2楼的高手,你好,能否举个例子,我现在也是遇到这个问题了,
单片机读取一个32位的16进制数,符合IEEE754国际标准的四字节形式,我要想把它转换为10进制并放大100倍后,在数码管上显示!请问怎么操作?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

35

帖子

2

粉丝