关于18B20的ROM搜索函数的一些问题

2019-07-15 16:39发布

小弟菜鸟,最近再弄这个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
  }
}
}
希望各路高手给解释解释。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
今日电子
1楼-- · 2019-07-15 19:32
   write_dat(0x37+temp);//大于10的数字显示ABCD等 最佳答案
wwtwin
2楼-- · 2019-07-15 20:26
好东西,我正愁这个不清楚呢?
今日电子
3楼-- · 2019-07-16 00:51
取ASCII码呢
YEYENAINAI521
4楼-- · 2019-07-16 01:56
今日电子 发表于 2015-7-10 11:12
write_dat(0x37+temp);//大于10的数字显示ABCD等

是这样的,谢谢。
YEYENAINAI521
5楼-- · 2019-07-16 07:48
 精彩回答 2  元偷偷看……

一周热门 更多>