打印

18B20温度计程序中温度值是如何算出不的?

[复制链接]
1195|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jzfbbs|  楼主 | 2014-10-19 17:06 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
uint read_temperature()
{
   1:uchar a,b;
   2:ds_reset();
   3:ds_write_byte(0xcc);//写入跳过序列号命令字
   4:ds_write_byte(0xbe);//写入读取数据令字
   5:a=ds_read_byte();//读温度低8位
   6: b=ds_read_byte();//读温度高8位
   7:temp=b;
   8:temp=temp<<8;
   9:temp=temp|a;
   10:temp=temp*0.0625*10+0.5;
   11:return temp;
}
假设当前温度为125度。温度高8位为:0000 0111。 温度低8位为:1101 0000  。第7行代码中temp=0000 0111  。第8行代码中temp=0。第9行代码中temp=1101 0000 。第10行代码中temp=208*0.0625*10+0.5=130.5
按这样算是不对的。  请各位高手指教。:'(

666666.png (43.42 KB )

666666.png

相关帖子

沙发
znmcu| | 2014-10-19 17:43 | 只看该作者
振南《单片机基础外设9日通》视频教程 [第四日 DS18B20 温度传感器] 课程详细介绍


视频教程课程主要内容:
1、认识DS18B20
2、基础资源模块上的DS18B20      
      1)电路讲解   
      2)模块实物介绍
3、DS18B20的驱动方法详解      
      1)单总线接口时序        
         a.复位过程   
         b.读过程   
         c.写过程      
      2)主要功能部件         
         a.ROM        
         b.暂存器            
      3)指令集      
      4)读取温度的方法         
         a.精度设置   
         b.多点读取   
         c.单点读取      
      5)得到最终的温度值  

在线观看:



高清视频下载:
振南电子网站视频教程下载区:http://www.znmcu.cn/zntec_video.html



使用特权

评论回复
板凳
ningling_21| | 2014-10-19 17:59 | 只看该作者
第8行代码中temp=0。

你是怎么算的? temp 是如何定义的?

使用特权

评论回复
地板
jzfbbs|  楼主 | 2014-10-19 18:51 | 只看该作者
ningling_21 发表于 2014-10-19 17:59
第8行代码中temp=0。

你是怎么算的? temp 是如何定义的?

   6: b=ds_read_byte();//读温度高8位,温度高8位为:0000 0111
   7:temp=b;//b=:0000 0111
   8:temp=temp<<8;//左移后结果就为0了。  
我是一菜鸟。:D     请指教。

使用特权

评论回复
5
jzfbbs|  楼主 | 2014-10-19 18:53 | 只看该作者
jzfbbs 发表于 2014-10-19 18:51
6: b=ds_read_byte();//读温度高8位,温度高8位为:0000 0111
   7:temp=b;//b=:0000 0111
   8:t ...

#define  uint  unsigned int
uint temp;//temp定义为16位整形。

使用特权

评论回复
6
ningling_21| | 2014-10-19 20:35 | 只看该作者
jzfbbs 发表于 2014-10-19 18:51
6: b=ds_read_byte();//读温度高8位,温度高8位为:0000 0111
   7:temp=b;//b=:0000 0111
   8:t ...

如果是 整形的变量,左移后肯定不会是0,肯定哪里错了

使用特权

评论回复
7
李冬发| | 2014-10-19 23:44 | 只看该作者
有8位模式和12位模式,你用12位模式时,右移4位或乘以0.0625就是你要的温度值。

使用特权

评论回复
8
menfiss| | 2014-10-20 07:49 | 只看该作者
楼主的语文是体育老师教的

使用特权

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

本版积分规则

112

主题

387

帖子

3

粉丝