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

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

DS18B20    高精度溫度測量應用

作者:greatcai 欄目:電路欣賞
DS18B20 高精度溫度測量應用
DS18B20    高精度溫度測量應用
以前網上流傳的DS18B20 程序一般都是只有顯示小數點前的兩位,有的可顯示小數后一位。但DS18B20是12位的高精度測量器件,它可精確到小數點后四位,所以沒有充分利用它的價值。
本人在網上瀏覽了不少的資料,總結了前人的經驗,編寫了相應的完整程序,把測量得到的溫度值顯示在1601液晶顯示器上(在1602上也可顯示),可精確到小數點后四位,本程序只須稍加修改可用于高精度溫度控制設備。
只須按照如下接線就可,其中的DS18B20的信號線接單片機的p3.3口,晶振使用11.0592Hz的
非常適合實驗板上實驗用
其相應的電路如下 供實驗時參考:
由于編的過程工作量不小,還不想就這么把程序公開了
大家有耐心的話可以看看
以下是一個編的過程中的有漏洞的程序:(有上限和下限,但測室溫是沒誤差的)
hex代碼如下:

:100000007581607580FF7590FE75A0FF75B0FF1259
:1000100000171200A6010FD2B312003B20000122EC
:1000200074CC12006A744412006A12003B74CC1241
:10003000006A74BE12006A12008222D2B300C2B3F8
:10004000786B7903D8FE786BD9FAD2B300000078C8
:100050002530B305D8FB02005ED200020063C20067
:10006000020067786BD8FED2B3227A08C3C2B37B92
:1000700006DBFE1392B37B17DBFED2B300DAEED2BF
:10008000B3227C02792F7A08C3D2B30000C2B30036
:100090000000D2B37B09DBFEA2B37B17DBFE13DAD1
:1000A000E7F719DCE122D2D3AB2EAC2F7E277F10ED
:1000B0001201C57F101201977F0A1201978F367FB8
:1000C0000A1201978F357F0A1201978F347F0A1227
:1000D00001978F337F0A1201978F327F0A1201979F
:1000E0008F318C30C2D31200F612018E227C0A7D31
:1000F000D8DDFEDCFA22C2A312018975800112014B
:100100002E75803812012E75800F12012E75800613
:1001100012012E75808012012E9001F012013A75A5
:1001200080C012012E9001F3790812017122C2A041
:10013000C2A1D2A2120189C2A222E530243012014A
:010140007B43
:10014100E531243012017BE532243012017B742E1B
:1001510012017BE533243012017BE5342430120196
:100161007BE535243012017BE536243012017B22F8
:1001710074009312017BA3D9F722F580D2A0C2A10A
:10018100D2A2120189C2A2227F96DFFE227FFF7EC8
:10019100FFDEFEDFFA22EA8FF084C0E0AAF075F0FC
:1001A10010C3EC33FCEB33FBEA33FA92D5C39F2047
:1001B100D5024002FA0CD5F0E8D0E0C2D26002D2FA
:1001C100D2CAFF22EC8FF0A4CCADF08EF0A42DFDAD
:1001D100E435F0FAEB8FF0A42DFDE5F03AFAE434C2
:1001E10000CB8EF0A42AFAE5F03BCDFBC2D222204F
:0B01F100202020DF43203D5420202070
:00000001FF

如果有任何朋友想要完整代碼或原程序的可與作者聯系
聯系方式:E-mail   mcu.8888@yahoo.com.cn
QQ:415997763


2樓: >>參與討論
ehoosee
但精度到不了那么高的,后面的幾位沒用的.
 
3樓: >>參與討論
awey
分辨率不等于精度,精度0.05C的表就的買上萬元。
 
4樓: >>參與討論
jiangtian
好,不過過于保手
 
5樓: >>參與討論
henrygliet
只是數據處理上的小技巧
只是數據處理上的小技巧,沒有什么大不了的,我第一次用DS18B20時就已經實現了你所說的功能,不過正如ehoosee所說的,后面幾位是沒有用的,DS18B20的精度是0.5`C,呵呵,不過從圖片上看,做的還不錯~~~

6樓: >>參與討論
henrygliet
單總線的真正精髓
說到網上流傳的DS18B20的程序中,我覺得最缺少的就是對一根單總線上的多個DS18B20的識別和定點溫度采集,這才是單總線的真正精髓所在。這一功能的實現涉及到多個ROM指令和CRC校驗,相對于你的小數點后四位,這個才是“大巫”,如果樓主有興趣的話可是做下這個方面的研究,才有點“不公開程序”的意義。呵呵~~

7樓: >>參與討論
總是掉線
henrygliet說的有道理
同感!

8樓: >>參與討論
江南魅影
現在做這個都直接到網上抄過來
數據方面的程序直接網上就有了,不有費腦子,還是花心思在多個點測量上的好

9樓: >>參與討論
davidli88
高分辯率不是高精度
雖然顯示到四位小數,但全無意義。

精確到萬分之一攝氏度的溫度計,應該還無法實現。

10樓: >>參與討論
李冬發(fā)
0.1度就非常難了
 
11樓: >>參與討論
滄海一簇
用浮點顯示很簡單的事。
樓主大概認為這很難實現是吧?其實很簡單的。只是18B20沒有那么高精度,顯示出來的也沒有實際意義?赡軜侵鳑]好好研究18B20使用手冊。

12樓: >>參與討論
baillso
問 henrygliet
DS18B20按照外部供電方式接入430的3v系統(tǒng)中總是將電源電壓拉低是什么原因?

由于上面的問題一直沒有解決后來改為寄生電源供電方式,發(fā)現測的值很不準,特別是負溫度的時候

DS18B20寄生電源供電方式要注意什么?手冊里面說的提高強上拉具體怎么做?

13樓: >>參與討論
henrygliet
回baillso
對于DS18B20外部供電方式將電源電壓拉低的問題,會不會是你的430無法識別DS18B20的供電方式,在手冊中有這樣的一段話:
In some situations the bus MASTER may not know whether the DS18B20s on the bus are parasite powered or powered by external supplies. The MASTER needs this information to determine if the strong bus pullup should be used during temperature conversions. To get this information, the MASTER can issue a Skip ROM[CCh] command followed by a Read POWER Supply [B4h] command followed by a “read time slot”.During the read time slot, parasite powered DS18B20s will pull the bus low, and externally powered DS18B20s will let the bus remain high. If the bus is pulled low, the MASTER knows that it must supply the strong pullup on the 1-Wire bus during temperature conversions.
從中可以看到,如果總線控制器將DS18B20識別為寄生供電方式(注意上段話中的“In some situations”),而你的電路是外部供電方式的話,就有可能產生沖突,而發(fā)生將電源電壓拉低的可能性,要強調的是,這只是我個人根據手冊的一點看法,我用51控制DS18B20時都不用執(zhí)行[B4h]指令,51應該是能自動識別DS18B20的供電方式,我沒有用過430,不知道其具體的內部結構,只能是給你一個思路,希望對你有用。

至于寄生供電方式測溫不準,手冊上也提到了這種供電方式的局限性,那就是當溫度高于+100·C時會出現測溫不準的問題,不過你的問題出在負溫度上,就有點莫名其妙了,不過有可能是你在軟件上對數據處理時正負標志位沒有分清,可以從這個方面檢查一下。
除此之外,說道測溫不準還有以下兩個可能的原因:
從硬件上來說,你沒有讓1-wire強上拉,所謂的強上拉,就是寄生供電方式電路中的MOSFET管,請檢查你的MOSFET的好壞以及電路是否正確連接,至少沒有斷路。另外,我不知道你的DS18B20是怎樣接入電路的,如果不是焊上去的,而是通過針座或者延長線插接上去的,請檢查接觸是否良好,我就曾經出現過由于接觸不好而測溫不準的問題。
從軟件上來說,那就是1-wire的時序問題,時序不對就會丟失數據或者采集的是無效數據,也請好好檢查一下軟件時序。



14樓: >>參與討論
baillso
非常感謝henrygliet
我再按照你的思路查查

15樓: >>參與討論
bluecup
基本概念沒搞清楚
 
16樓: >>參與討論
xwj
就這么一個東西還拿出來現?還藏著挾著的...
 
17樓: >>參與討論
dan_xb
DALLAS只承諾0.5度的精度,要想精度高,用熱敏電阻吧
 
18樓: >>參與討論
zhusonglinw
0.5度的精度顯示那么多位,有什么意義??
 
19樓: >>參與討論
高勇
分辨率
費力不求好。什么意義都沒有。

20樓: >>參與討論
baillso
熱敏電阻能達到0.1吧
還有更高精度的嘛?

21樓: >>參與討論
binbinwb
呵呵
多點采集也不難,關鍵在協(xié)議的理解和CRC
LZ的鉆研精神還是不錯的,繼續(xù)努力哈

22樓: >>參與討論
da_xi
發(fā)現一個小問題!
DS18B20得參數
Measures temperatures from –55°C to +125°C (–67°F to +257°F)
0.5C accuracy from –10°C to +85°C
摟主液晶上顯示已超過 +125°C了,肯定不準了

23樓: >>參與討論
computer00
這個電路板倒是搭得蠻緊湊的~~~~~~~~萬用板搭的
 
24樓: >>參與討論
hsj0615
搞笑
太搞笑了

25樓: >>參與討論
one16
加水!
 
26樓: >>參與討論
lin_512
錯誤的理解
awey說得有道理,分辨率不等于精度,你所顯示的數字不代表你的精確度就有那么高,你是一個錯誤的理解.

27樓: >>參與討論
Wxy8030
單總線的一個較實用的問題——
判斷總線上有多少個點,每個點的溫度是多少都可以實現......

可現實中一般都有定位的要求,需要知道每個點的確切位置,而且其中一個點壞了后,換上一個位置點還要求不變,這個實現起來就有點麻煩了......

有沒有大蝦有好的思路?

28樓: >>參與討論
王紫豪
沒有一點意義。W學誤差理論?????
 
29樓: >>參與討論
mohanwei
數字溫度傳感器,暫時還沒見過精度優(yōu)于0.5度的……
就是這個“0.5度”,還是在狹窄區(qū)間內有效的……

高精度,就算你用上了A級精度的鉑電阻,還要在電路上花一番苦功呢……

30樓: >>參與討論
liucg86
李冬發(fā)大俠
李冬發(fā)大俠或各位大俠:
    本人是初入道的小蝦,先在此有禮了。我做了一個數字溫度測量儀,精度達0.1℃,這精度已通過國家計量部門檢定,該精度可溯源至國家計量標準。有R232接口,可多路測量,并可記錄歷史數據,繪制溫度變化曲線,采樣速率每秒1次,保證該精度的測溫范圍10-40℃。請各位評論一下,該測量儀在業(yè)界的地位。我的郵箱:liucg86@163.com

參與討論
昵稱:
討論內容:
 
 
相關帖子
要產生一個20MHz的矩形脈沖并不容易啊。請賜教!
我想找一款CPLD/FPGA的開發(fā)板的電路原理圖
光電隔離電路,請各位指點錯誤。多謝!
延時電路求教
幫忙解決一下電路的問題
免費注冊為維庫電子開發(fā)網會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號