我开始用单片机的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的方式)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
{
DQ=temp1;
readtemp();
}
一周热门 更多>