DS18B20實現多路溫度檢測,無非就是兩個方法,一是匹配ROM,優點是占用IO口最少,缺點是每個程序不一樣,想統一程序,還得專門編一個控制和識別匹配ROM的程序,可能用起來也不方便,二是一個IO口連一路18B20,缺點是占用IO口較多,優點是所有程序相同,不用匹配ROM。我已經編過兩個IO口接兩路18B20的程序,現在準備編三個IO口接三路18B20的程序,既然樓主已經編出單路18B20的程序,為什么多路的編不出來呢?說明樓主這個單路18B20的程序肯定有問題,問題就是樓主沒有按步驟讀寫18B20,所有的溫度測量都是漸變,基本上沒有突變的可能,那為什么不能按步驟慢慢的讀寫18B20呢?從初始化18B20到發命令讀寫ROM到得到溫度值,這些都可以按步驟讀,沒有必要一次搞完。我提醒樓主,初始化18B20可以全部同時進行,然后按步驟讀第一個18B20的溫度,讀完之后再來一次全部初始化18B20,然后按步驟讀第二個18B20的溫度,直到把你需要的溫度全部讀完,照著這個思路,讀10路18B20甚至100路18B20都沒有問題,無非就是多花點時間編程而已,這個思路以匹配ROM的方式讀出多路18B20也是沒有問題。讀10路18B20哪怕超過一秒鐘到幾秒鐘都沒有關系,溫度永遠是漸變不是突變,不影響后續的溫度控制,分步驟讀寫單路或者多路18B20的目的是為了提高CPU應用率,樓主不要到任何地方找任何實例,這種CPU應用率的單片機程序實例任何地方都不可能有,照我的思路肯定可以編出來,關鍵問題是不管讀多少路18B20,CPU循環周期越短越好,樓主如果做到,就明白了CPU應用率的編程概念,樓主的單片機編程就基本上算是過關了。 |