小弟菜鸟,最近再弄这个18B20这块,搜索ROM码,我原来在
论坛里面下过一份有关程序,看的时候一些问题不懂,时间一长,给忘了从哪下得了。其他就不贴了,看不懂的程序如下:void dis_readnumber()
{
uchar i,temp;
init_ds18b20();
write_ds18b20(0x33); //允许只有一个18B20的前提下,通过总线直接搜索ROM码
for(i=0;i<8;i++)
{
save_number[i]=read_ds18b20(); //保存搜索到的序列号
}
write_com(0x80);
for(i=0;i<8;i++)
{
temp=save_number[i]>>4;
if(temp<10)
{
write_dat(0x30+temp);
}
else
{
write_dat(0x37+temp); //问题1:大于10为什么是0X37
}
temp=save_number[i]&0x0f;
if(temp<10)
{
write_dat(0x30+temp);
}
else
{
write_dat(0x37+temp); //同问题1
}
}
}
希望各路高手给解释解释。
是这样的,谢谢。
一周热门 更多>