单总线,onewire bus,只有一条数据线,所有从器件的DQ都是挂在总线上的,需要有单总线的器件才能用。
ds18b20直接将模拟温度转化为数字信号传送给单片机,所以不需要信号放大,AD转换的外设,数据线DQ漏极开路,需外接上拉保证输出,每一个ds18b20都有一个64位的芯片地址序列编码,便于onewire总线寻址。
由于单片机接收到的温度数据为16进制数,需转换为十进制的数据显示出来,
温度转换计算公式温度大于0:
假设输出为07D0H,对应125℃,则
实际温度=07D0H/16=(0*16∧3+7*16∧2+13*16+0*16)/16=125℃
假设温度小于0,-55℃,输出FC90H,由于补码,对它取反再加1,得0370H,则
实际温度=0370H/16=(0*16∧3+7*16∧2+7*16+0*16)/16=-55℃