18b20多点测温的实现
改程序的主要目的是实现18b20的多点测温,由于手中只有一个,就修改了一个通过检测ROM,匹配ROM的方法实现温度的测量。在程序中需要测出每个18B20的rom,然后匹配,就能实现多点测温。先读出每个DS18B20的64位ROM码,然后写到程序中进行匹配
方法:
在硬件系统搭建完成时在总线上每次挂接一个DS18B20,对该DS18B20发送读取ROM序列号命令(0x33),这样DS18B20就按照从高位到低位的顺序发送8字节地址到总线上,单片机依次读取、保存即可得到一个DS18B20的序列号。然后在总线上单独挂接另一个DS18B20芯片得到该芯片的序列号。有了这些序列号后,将这些序列号固化在程序中(如数组、查表),当单片机向总线发送匹配ROM命令之后紧跟发送一个序列号,这样接下去的读取温度操作将只有ROM序列号匹配的那个DS18B20做出相应的操作。 我都是先将每个DS18B20的温度报警上下限寄存器内写入自定义地址,使用这个自定义地址来识别,这样子更换探头时,只需要写自定义地址到探头,不用改序列号,做一次器件搜索就好。 adongliu 发表于 2013-5-7 11:58 static/image/common/back.gif
我都是先将每个DS18B20的温度报警上下限寄存器内写入自定义地址,使用这个自定义地址来识别,这样子更换探 ...
我试下! mark…
顶一个… adongliu 发表于 2013-5-7 11:58 static/image/common/back.gif
我都是先将每个DS18B20的温度报警上下限寄存器内写入自定义地址,使用这个自定义地址来识别,这样子更换探 ...
这个注意不错,之前也有做过多点测温的,但是没有想过把地址写在温度报警上下限寄存器里,你这个自定义地址是怎么定义的啊? 以前想做个多点测温的,水平有限一直没成功,make 谢谢分享,我去试试看 学习下, 有用。留名。感谢楼主分享 mark 好东西,正好需要,顶一个 谢谢分享,学习学习。 谢谢分享。 好,长知识了。确实不错。 这个很不错的说
页:
[1]