DS18B20 是溫度檢測器件,具有單總線、數字化的特點。
每個 DS18B20 都有一個 48 位的系列號,這樣就可以把多個 DS18B20 連接在同一條線上,用系列號來對它們分別進行控制。
但是,據有關資料說明,一條總線上,連接 DS18B20 的個數,不要超過 8 個,否則驅動困難。總線的長度,也不宜太長。
另外,多個 DS18B20 連接在一起,還有些缺點:
1.必須采用 ROM 匹配的方法,這樣,速度、效率就較低。
2.編程比較麻煩,必須先逐個讀出并記錄每個 DS18B20 的 ROM 代碼,然后再編寫到程序中。
3.故障涉及面大,當有一個出現短路,這一條總線上的全部器件就都不會工作。
4.故障查找困難,當總線上有一個 DS18B20 不正常工作時,很難一眼就看出是那一個。
5.無法即插即用,當更換一個 DS18B20 時,必須重新寫入程序,這樣的維修方法為產品的售后服務帶來很大的困難。
那么,較好的方法還是每一個 DS18B20 單獨使用一條總線。
現在,單片機芯片的價位已經很低,有 40 個 I/O 引腳的 STC89C52 才幾塊錢。利用單總線來節約引腳,已經沒有什么意義了。
鑒于目前這種情況,讓每一個 DS18B20 單獨使用一個 I/O 引腳,才能揚長避短。
如果一片單片機所能構成的溫度測試點還不夠用(如孵蛋柜就需要上百個測試點),也可以使用多片單片機,再利用 MAX232 或 MAX485 組成網絡,即可把各個點的溫度信息匯集到中央控制機。
485 總線的長度可達 1200m,半雙工多機串口通信的編程也是簡單的很。
單個的 DS18B20 單獨占用一個引腳,用 51 單片機進行讀寫,這種方案已經相當成熟。
做而論道多年前也寫了一個程序,利用數碼管顯示,精度可以達到兩位小數,還可以測量零下的溫度。
詳細的內容可見博文:
http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/dacd401ac7533f398718bf61.html
當多個 DS18B20 分別使用不同的引腳,電路并不復雜,編程就困難一些了。
因為針對單個的 DS18B20,一般都是用:CLR DQ 和 SETB DQ,這些都是 51 單片機的位操作指令,都是直接尋址。
換了另一個引腳,就要重新編寫一套程序。有些人就是這么做的,這就太麻煩了。
其實并不用針對每個 DS18B20 都編寫一套程序,只要使用字節操作的指令就可以了。
例如 R3 = 1111 1011B,執行 MOV P1, R3 后,就相當于針對 P1.2 執行了 CLR DQ。
想要 SETB P1.2,只需執行 MOV P1, #255 即可。
只是在讀出 DQ 時,需要多編寫幾條指令。
聯系人:陳威
手 機:18898570612
郵 箱:haodu@haodukeji-rtd.com
公 司:PT100/PT1000溫度傳感器/溫度變送器/壓力變送器__深圳市浩渡科技有限公司
地 址:深圳市龍崗區新生社區旗勝達高新科技園B棟三層