钻石会员
主题
回帖0
积分11063
阅读权限50
注册时间2009-12-25
最后登录1970-1-1
在线时间 小时
|
是的,有强上拉的stc的c51芯片跟avr的芯片都可以。
程序上面可以自动识别的。如果判断到是总线寄生供电就多一句强上拉供电而已。
//读ds18b20供电情况,
//如果返回1表示ds18b20是由外部电源供电
//返回0表示是利用1-wire总线寄生供电
//返回2表示ds18b20不存在
unsigned char read_power_supply(ds18b20_typedef * _ds18b20_)
{
// cli();
if ( RESET_18b20(_ds18b20_) == 1 )
{
write_18b20( 0xcc, _ds18b20_ ); //跳过Rom 没有这个就不起作用了。
write_18b20(0xb4, _ds18b20_); //读电源供电方式(B4H) 了解18B20的供电方式
_ds18b20_->ds18b20_power = read_byte(_ds18b20_) & 1;
//return (read_byte(_ds18b20_)&1);//其实只要取1bit,这只是为了减少代码,但要读8bit
}
else
_ds18b20_->ds18b20_power = 2;
// sei();
return (_ds18b20_->ds18b20_power);
}
//发送温度转换命令后,如果不是1-wire总线寄生供电,就不使用,强上拉,减少损坏电路可能。 |
|