请教多个IO口接多个DS18B20的程序问题。

2020-01-30 13:45发布

我开始用单片机的P1.0口接了一个DS18B20,用单片机读出然后用数码管显示出来,都很正常,部分程序代码如下。(部分省略没写出来)
#include<intrins.h>
........
......
sbit DQ=P1^0;
......

void reset()
{  do{
       DQ=0;
       time500();//  延时500微妙程序
       DQ=1;
       time60();//延时60微妙程序
      }
     while(DQ!=DQ);
     DQ=1;


}
..........
....
  省略其他程序...
.....
uchar  readtemp(void)
{
   reset();
   time500();
   writebyte(0xCC);
   writebyte(0x44);
   rest();
  time500();
  writebyte(0xCC);
  writebyte(0xBE);
  c[1]=readbyte();
  c[0]=readbyte();
return (c[2]);
}
实验完全正确,能准确读出温度并显示,但当我在做如下修改时就不行了
sbit temp1=P1^0;
sbit temp2=P1^1;
....
main()
{
   DQ=temp;
  readtemp();
  ......

}

这样修改后就不能读出温度了,请各位大虾指教指教如何修改。难道每多加一个DS18B20就要多重复写一遍代码?(不采用一个IO口挂多个DS18B20的方式)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。