音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

溫度傳感器DS18B20奇怪問題

作者:song_qing 欄目:技術(shù)交流
溫度傳感器DS18B20奇怪問題
最近做了個(gè)儀器,里面包括溫度測量功能,儀器剛上電時(shí),顯示溫度85度,肯定是不正確的,這時(shí)將單片機(jī)復(fù)位,顯示的溫度就正常了。但是若一開機(jī)就按復(fù)位鍵也是顯示錯(cuò)誤,需等液晶顯示器把錯(cuò)誤的溫度顯示完再復(fù)位,溫度就沒錯(cuò)了,有誰知道這是怎么回事?
   我試過好幾種方法:
    1:多讀幾遍溫度,再顯示;
    2:開機(jī)后延時(shí)幾秒再開始工作;
可這些都不管用!。

2樓: >>參與討論
lucidmask
re
供電沒問題吧?

3樓: >>參與討論
spwp
好像是單片機(jī)的事,開機(jī)時(shí)保持對(duì)18B20復(fù)位看看
 
4樓: >>參與討論
qzl
估計(jì)是顯示問題
正常工作后溫度正常。說明讀取溫度的程序部分是正常的。
要等液晶顯示之后才能正確讀取溫度。也許是只是開機(jī)的時(shí)候顯示緩沖區(qū)的數(shù)據(jù)不對(duì)。即溫度是正確的,只是你顯示出來的是錯(cuò)的而已。從每次開機(jī)顯示固定的錯(cuò)誤數(shù)據(jù)可以看出來。
第二個(gè)可能是:18B20的轉(zhuǎn)換溫度時(shí)間是很長的。需要750ms。
在正常開機(jī)的時(shí)候你讀取這個(gè)溫度是否有正確讀取。如果不正常。就看看這部分代碼。

5樓: >>參與討論
nickings
初始化
 
6樓: >>參與討論
song_qing
顯示緩沖區(qū)的數(shù)據(jù)應(yīng)該沒問題
回復(fù)qzl:在開機(jī)時(shí),儀器首先顯示的是儀器的版本等介紹信息,然后才顯示溫度的,每次開機(jī)都顯示的是85度。
而第二個(gè)也不大可能啊,為什么復(fù)位后每次都讀取正確呢?

回復(fù)lucidmask:供電肯定沒問題。

回復(fù)nickings:初始化什么?LCD? DS18B20?還是單片機(jī)?

7樓: >>參與討論
mikejovi
一點(diǎn)看法
同意qzl的看法

8樓: >>參與討論
czlbj
我想應(yīng)該是這么回事:
18B20內(nèi)溫度寄存器初始值為85,你應(yīng)該不先讀值,先進(jìn)行一次溫度轉(zhuǎn)換。

9樓: >>參與討論
song_qing
czlbj的方法也試過了,沒效果啊
 
10樓: >>參與討論
spwp
先進(jìn)行一次溫度轉(zhuǎn)換。
czlbj 的說法有道理,是問題所在?纯闯绦蛄。

11樓: >>參與討論
song_qing
先進(jìn)行溫度轉(zhuǎn)換,怎么還不行呢?
原先程序:
   Write_Position(1,8);
  DISPLAY("......");delay(2000); clear_screen;
Write_Position(1,8);
  DISPLAY("....");delay(2000); clear_screen;
  tempr=read_T();//讀溫度;
Write_Position(1,8);
  DISPLAY_DoubleData((tempr&0x07FF)*0.0625);

經(jīng)修改后:
   Write_Position(1,8);
  DISPLAY("......");delay(2000); clear_screen;
Write_Position(1,8);
  DISPLAY("....");delay(2000); clear_screen;

         resetDS18B20();
    writeByteDS18B20(0xcc);     //跳過ROM
    writeByteDS18B20(0x44);        //啟動(dòng)溫度轉(zhuǎn)換
         delay(100);

  tempr=read_T();//讀溫度;
Write_Position(1,8);
  DISPLAY_DoubleData((tempr&0x07FF)*0.0625);

即在讀溫度之前就先進(jìn)行溫度轉(zhuǎn)換;可是讀的溫度還是有錯(cuò);有誰知道這到底是怎么回事嗎?


12樓: >>參與討論
google
try it
我也遇到同樣的問題。一般是在上電第一次讀溫度值的時(shí)候。
+85是18B20內(nèi)溫度寄存器初始值,文檔中說DS18B20在收到溫度轉(zhuǎn)換指令后需要有最少750ms的轉(zhuǎn)換時(shí)間。試著在第一次發(fā)送溫度轉(zhuǎn)換指令后,延時(shí)一段時(shí)間后再讀溫度值。


13樓: >>參與討論
1234
我也遇到同樣的問題。 我的解決辦法是在測溫之后,延時(shí)大約1s了,這個(gè)問題就沒了。
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
用了cypress的SRAM,遇到問題了
我有一軟盤突然讀不出文件
求助16和弦的音樂插件IC
對(duì)風(fēng)扇如何監(jiān)控!
哪位高手知道ke-2050,ke-2060為什么會(huì)拋料,有什么解決的辦法
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)