DS18B20中有一个64位光刻ROM,按说明书说法,开端8位(28H)是产品类型标号,接着的48位是该DS18B20本身的序列号,最终8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以完成一根总线上挂接多个DS18B20的意图。
读取ROM办法:先复位DS18B20,成功后履行读取ROM指令(33H),然后将这64位以8个字节的方法存入数组,最终用LCD或LED逐一字节显现出来。下面是读取ROM的主程序:
void main()
{
uchar i;
uint j=200;
rest_ds18b20();//复位
write_ds18b20(0x33); //读序列号
for(i=0;i<8;i++)
Rom_18B20[i]=read_ds18b20();
while(1)
{
for(i=0;i<8;i++)
{
while(j–)
dis(i,16,Rom_18B20[i]/16,Rom_18B20[i]%16,16,16);//数码管显现
j=200;
}
}
}
在读取ROM试验中发现:仿真或实践电路试验第0字节均为28,这情有可原,由于这是DS的产品类型标号。但第5、6字节均为00,不管仿真或实践电路试验都是如此。假如真的这样,那第5、6字节就失掉含义了,64位ROM其实就只有48位了。真的吗?
关于DS18B20系列号
DS18B20中有一个64位光刻ROM,按说明书说法,开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/fpga/318261.html