一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 5798|回复: 11

[其他综合] DS18S20数据转换求助【已解决】

[复制链接]
发表于 2012-8-2 21:18 | 显示全部楼层 |阅读模式
本帖最后由 灰太狼8888 于 2012-8-3 20:38 编辑

1820.jpg

已解决,问题出在蓝色字体标注的地方


根据上表,
unsigned int a=0;
unsigned int b=0;
unsigned int t=0;
a=低八位
b=高八位



[code]// 零下温度判断
sflag=0; //温度零下标志 0:零上,1:零下
if(b!=0x00)
{
sflag=1; //零下标志位置1
a=~a; //低8位取反      问题是int a  是16位  改成char型,正常。感谢各位的指点。
tt=a+0x01; //低8位加1
a=tt; //计算后重新存入数组

}


/****************DS18S20*************************/

t=((a>>1)+(a&0x01)*0.5)*10;//DS18S20

return(t);




负温度不正常

请教各位朋友,想要正常显示温度,需要如何修改。
 楼主| 发表于 2012-8-2 23:18 | 显示全部楼层

标题

a=低八位
b=高八位
01. // 零下 温度 判断
02. sflag=0; //温度零下标志 0:零上,1:零下
03. if(b!=0x00)当符号位非零,这句不会错
04. {
05. sflag=1; //零下标志位置1
06. a=~a; //低8位取反
07. tt=a 0x01; //低8位加1
08. a=tt; //计算后重新存入数组
09.//以上的计算有错误????????????
10. }
11.
12.
13. /****************DS18S20*************************/
14. //这句不加的话负数显示乱码,为什么。加上并没有改变什么啊。为什么就可以显示了? 之前计算有问题???? a=a&0x7F;
15.
16. t=((a>>1) (a&0x01)*0.5)*10;//DS18S20
17.
18. return(t);
回复

使用道具 举报

发表于 2012-8-3 07:15 | 显示全部楼层
18B20?

评分

参与人数 1一乐金币 +8 收起 理由
灰太狼8888 + 8 程序已正常,谢谢指点

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2012-8-3 09:05 | 显示全部楼层
18B20?
无锡风 发表于 2012-8-3 07:15 https://www.yleee.com.cn/images/common/back.gif



    18s20
回复

使用道具 举报

发表于 2012-8-3 09:50 | 显示全部楼层
负温度
1.判断正负
2、取补码(取反)
3、+1
4、当正温度处理
回复

使用道具 举报

 楼主| 发表于 2012-8-3 12:15 | 显示全部楼层
负温度
1.判断正负
2、取补码(取反)
3、+1
4、当正温度处理
steven888 发表于 2012-8-3 09:50 https://www.yleee.com.cn/images/common/back.gif



    晚上看看是不是读出的数据有问题,算法没发现错误,且正温度正常。
回复

使用道具 举报

发表于 2012-8-3 14:20 | 显示全部楼层
晚上看看是不是读出的数据有问题,算法没发现错误,且正温度正常。
灰太狼8888 发表于 2012-8-3 12:15 https://www.yleee.com.cn/images/common/back.gif


我用的是18B20,以上说法也是基于此。不清楚S的是不是有区别。
回复

使用道具 举报

发表于 2012-8-3 14:23 | 显示全部楼层
另外,你的正温度正确吗?
回复

使用道具 举报

发表于 2012-8-3 14:26 | 显示全部楼层
IMG_20120721_230011_compress.jpg

评分

参与人数 1一乐金币 +8 收起 理由
灰太狼8888 + 8 程序已正常,谢谢指点

查看全部评分

回复

使用道具 举报

发表于 2012-8-3 18:28 | 显示全部楼层
负温度算法不一样的,
不过计算前,先把接收到的数据crc啊。
代码你可以在仿真软件测试,也可以输说明书的例子数值进代码,然后看输出正负温度是否正确,来确定你的算法是否正确啊。
你图片中哦表不是给出一堆数值了吗?不用硬件都可以测试代码算法了

评分

参与人数 1一乐金币 +8 收起 理由
灰太狼8888 + 8 程序已正常,谢谢指点

查看全部评分

回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-11-3 17:24 , Processed in 0.040820 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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