ds18b20读取温度程序温度测量程序怎么总是显示85度?

DS18B20&测量温度出现85度问题
&这几天调温度传感器DS18B20,前段电路用的是别的公司带过来的,主控板是自己做的PIC单片机板子。用排线连接。
先是看了一遍DS18B20的数据手册,迷迷糊糊的。然后在网上找了一份中文版的,又找了几份别人贴到网上的程序。开始在MPLAB中参考着这几份资料写代码。一上午时间就搞定了,下面就是调试的无底深渊!!!!
通电后,用MPLAB断电调试,怎么调测量到的数据都是0x0000。拿万用表测了一下主控板和DS18B20的连接,该死的排线竟然搞反了!幸亏18B20具有负压特性,电源接反时,芯片不会因发热而烧坏,只是不能正常工作而已。(粗心失误啊,上电前竟然没有仔细测量。人太自信了也不好,很多事故都是源于不知道哪里来的自信!)将排线重新调整顺序,用万用表测量无误后上电,用MPLAB断点调试。这次终于有读数了0x51;,这温度测的也太离谱了,室温能达到这么高,都成了“烤人”,太便宜外星人了,免费的午餐,还是烤熟的。万恶的85摄氏度,网上搜了一下,原来很多人都碰到这样现象。有人是先显示一阵85℃,然后就恢复正常;有人是偶尔出现85℃问题;有人就像我的一样,总是85℃。。。。。。。其分析的原因大体如下:
1.&硬件连接问题:上拉电阻问题、焊接问题、引脚短路、DS18B20坏掉、电源供电问题
2.&上电复位后温度寄存器的值为+85℃
3.&外界干扰太大
4.&软件问题:时序不对、没有跳过ROM匹配、上电延时不够
喜欢搞硬件的,当然希望用两个元件和一把电烙铁就能把问题搞定。有人说是元件坏掉,难道是刚才排线接错的问题?不对啊,能读到值并且自身有保护,先暂且认为是好的,呵呵,侥幸心理又来作怪,关键是不这样认为还得跑一趟中发去买元件~~~~然后测量电源、引脚,都没问题啊,连接也是牢牢的。难道是上拉电阻问题,5K的上拉太弱?驱动不够?不对,这样的上拉电阻,走10m是没问题的,更有高人的电路可以传输100m以上,“制造商曾试过用双绞线传送到300米以外”,而我的传输距离不到15cm,传输距离问题?太搞笑了,就不是一个数量级!!!
环境问题?干扰太大?不会,实验室除了电脑,大功率的设备都没通电工作啊。
最后只能再次调试自己的程序。先在PROTEUS上做仿真,读到的值有时是85℃,有时候确实正确的,看来真是软件问题了。将自己的程序与18B20数据手册的时序对比了一下,感觉应该是延时程序有问题。与是将自己的延时程序重新在MPLAB
SIM上做了STOPWATCH仿真(用的仿真器是 MPLAB
ICD2,不能在硬件上实现跑表,只能软件仿真一下了),然后看了一下反汇编,感觉好多代码用不到。然后在网上搜了几个延时函数,在自己的IDE上仿真怎么都不能得到网上说的延时效果。询问实验室的师兄,他说他用的延时函数是从一个网站上下的,延时效果很好,底层是用汇编写的。咦~~~~~~这个好,于是把师兄的延时程序拿过来分析了一下。原来是从/上下的。到该网站上浏览了一下,不少PIC的源程序,还都是免费的,又找到一个好网站,哈哈哈!!!重新建立一个项目,试一试这个函数怎么样,效果还是一般,DelayUs(),DelayS()用着还可以,DelayBigUs()和DelayBigMs()直接就是延时错误的。难道我的人品有问题?想想应该不是人品的问题,从来不做坏事,还经常在公交上让座,人又孝顺,实在,做事又低调,呵呵呵呵,人品好的手指数不过来啊。设置问题么?也不是,和实验板上的晶振是一样的。这时想到程序反汇编的效果不好,有种预感——编译器有问题。决定换个编译器试试,目前的是MPLAB自带的C编译器PICC
Lite,免费,自己平时做做实验还可以,但是关键时候就不行了。在网上搜了搜,大部分人认为PICC
V8.05比较稳定,编译效果还不错。于是下了一个破解版。安装测试,果然效果不一样!!看来免费的东西也不一定是好东西,往往会害人害己啊!!软件仿真的延时程序功能基本都实现,误差很小,基本可以忽略。将调试验证好的延时程序加入到DS18B20的驱动程序中,效果果然明显,读数基本正确,室温27℃。找来一个杯子倒上开水,温度测量值86℃。这样不管温度值精不精确,起码程序跑起来,把温度测量到了。至于以后的,就需要进一步调试,修改软件算法了。
总结:程序出问题时,首先需要仔细检查延时程序,看看延时是否准确;然后检查复位和读写程序,是否符合元件的时序,复位时应该检查是否复位成功;读取温度时,注意起到温度转换后的温度转换时间,要提供一定且足够的延时,不能立刻读取。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。为什么单片机控制18B20测温初始总是显示85度然后显示测量值_百度知道}

我要回帖

更多关于 ds18b20温度值格式表 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信