DS18B20多點(diǎn)測(cè)溫 Proteus仿真
???????以前使用DS18B20進(jìn)行溫度采集都是控制一個(gè)傳感器進(jìn)行單獨(dú)的溫度采集,DS18B20的單總線是支持多點(diǎn)組網(wǎng)的功能的,可以將多個(gè)DS18B20掛在同一個(gè)總線上進(jìn)行溫度采集,這樣只使用單片機(jī)的1個(gè)IO就可以完成8個(gè)測(cè)溫點(diǎn)的溫度測(cè)量。今天發(fā)一個(gè)基于51單片機(jī)8點(diǎn)溫度采集仿真和程序。Proteus仿真圖如下。

????????仿真中將8個(gè)DS18B20的數(shù)據(jù)端口并聯(lián)接到單片機(jī)的P20引腳上。對(duì)8個(gè)傳感器進(jìn)行編號(hào)加以區(qū)分。
????????DS18B20內(nèi)部具有64-位光刻ROM。64位光刻ROM的前8位是DS18B20的自身代碼,接下來(lái)的48位為連續(xù)的數(shù)字代碼,最后的8位是對(duì)前56位的CRC校驗(yàn)。64-位的光刻ROM又包括5個(gè)ROM的功能命令:讀ROM,匹配ROM,跳躍ROM,查找ROM和報(bào)警查找。

????????DS18B20在進(jìn)行數(shù)據(jù)操作時(shí),必須進(jìn)行相應(yīng)的ROM操作,在進(jìn)行多個(gè)傳感器溫度測(cè)量時(shí),就需要通過(guò)溫度傳感器內(nèi)部的ROM數(shù)據(jù)對(duì)各個(gè)溫度傳感器加以區(qū)分。如上圖所示為該仿真中8個(gè)溫度傳感器DS18B20的ROM數(shù)據(jù),在仿真中可以通過(guò)對(duì)器件右鍵選擇"Edit Properties",在彈出的對(duì)話框中對(duì)DS18B20器件的ROM數(shù)據(jù)進(jìn)行修改,只需要保證仿真中器件的ROM數(shù)據(jù)與程序中定義的數(shù)據(jù)相同即可。



????????程序的主要功能是循環(huán)控制8個(gè)溫度傳感器進(jìn)行溫度采集,并將采集的溫度通過(guò)液晶顯示器進(jìn)行顯示。液晶顯示器滾動(dòng)對(duì)各個(gè)傳感器的測(cè)溫值進(jìn)行顯示。