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应用率的编程概念,楼主的单片机编程就基本上算是过关了。 |