浮点数

[复制链接]
 楼主| 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 | 显示全部楼层

指针

用一个浮点指针指向收到的数据的第一个字节地址
lws 发表于 2008-4-11 08:27 | 显示全部楼层

为什么一定要传浮点数呢

plc里乘1000换算成整数多简单,这只是一个思路。
johnwjl 发表于 2008-4-11 09:06 | 显示全部楼层

浮点数放大

但要考虑整数溢出问题.

还是所长的方法好.
 楼主| wgq5416 发表于 2008-4-11 10:13 | 显示全部楼层

谢谢大家的回复

是这样的,我做的是一个profibus数显表,也就是plc传过来一个数据在我的表上显示就可以了,但是那边传过来的是小数的时候也就是浮点数的时候,我这边在底层收到的就是四字节形式,我怎么把这四字节用数码管显示出去,小数点位置怎么定?
2shift 发表于 2008-4-11 16:40 | 显示全部楼层

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

sprintf好像是代码比较大,还不如自己编写一个
gyt 发表于 2008-4-11 17:09 | 显示全部楼层

9楼说的是

mohanwei 发表于 2008-4-11 19:48 | 显示全部楼层

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

占用1k flash,30个data
guanyumou 发表于 2014-11-20 12:18 | 显示全部楼层
2楼的高手,你好,能否举个例子,我现在也是遇到这个问题了,
单片机读取一个32位的16进制数,符合IEEE754国际标准的四字节形式,我要想把它转换为10进制并放大100倍后,在数码管上显示!请问怎么操作?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

35

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部

16

主题

35

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部