|
DS18B20實(shí)現(xiàn)多路溫度檢測,無非就是兩個(gè)方法,一是匹配ROM,優(yōu)點(diǎn)是占用IO口最少,缺點(diǎn)是每個(gè)程序不一樣,想統(tǒng)一程序,還得專門編一個(gè)控制和識別匹配ROM的程序,可能用起來也不方便,二是一個(gè)IO口連一路18B20,缺點(diǎn)是占用IO口較多,優(yōu)點(diǎn)是所有程序相同,不用匹配ROM。我已經(jīng)編過兩個(gè)IO口接兩路18B20的程序,現(xiàn)在準(zhǔn)備編三個(gè)IO口接三路18B20的程序,既然樓主已經(jīng)編出單路18B20的程序,為什么多路的編不出來呢?說明樓主這個(gè)單路18B20的程序肯定有問題,問題就是樓主沒有按步驟讀寫18B20,所有的溫度測量都是漸變,基本上沒有突變的可能,那為什么不能按步驟慢慢的讀寫18B20呢?從初始化18B20到發(fā)命令讀寫ROM到得到溫度值,這些都可以按步驟讀,沒有必要一次搞完。我提醒樓主,初始化18B20可以全部同時(shí)進(jìn)行,然后按步驟讀第一個(gè)18B20的溫度,讀完之后再來一次全部初始化18B20,然后按步驟讀第二個(gè)18B20的溫度,直到把你需要的溫度全部讀完,照著這個(gè)思路,讀10路18B20甚至100路18B20都沒有問題,無非就是多花點(diǎn)時(shí)間編程而已,這個(gè)思路以匹配ROM的方式讀出多路18B20也是沒有問題。讀10路18B20哪怕超過一秒鐘到幾秒鐘都沒有關(guān)系,溫度永遠(yuǎn)是漸變不是突變,不影響后續(xù)的溫度控制,分步驟讀寫單路或者多路18B20的目的是為了提高CPU應(yīng)用率,樓主不要到任何地方找任何實(shí)例,這種CPU應(yīng)用率的單片機(jī)程序?qū)嵗魏蔚胤蕉疾豢赡苡校瘴业乃悸房隙ǹ梢跃幊鰜恚P(guān)鍵問題是不管讀多少路18B20,CPU循環(huán)周期越短越好,樓主如果做到,就明白了CPU應(yīng)用率的編程概念,樓主的單片機(jī)編程就基本上算是過關(guān)了。 |
|