|
通過網(wǎng)上資料收集,自己程序?qū)嶒?yàn)終于把溫度精度設(shè)置成功!設(shè)置成功后溫度是以0.5℃為單位跳變。
最關(guān)鍵的一點(diǎn):設(shè)置精度在DS18B20復(fù)位之前完成,代碼如下:
uchar Ds18b20Init()
{
uchar i;
Ds18b20WriteByte(0xcc); //跳過ROM操作命令
Ds18b20WriteByte(0x4e); //寫暫存器指令4E
Ds18b20WriteByte(0x64); //寫高速緩存器TH高溫限值100度
Ds18b20WriteByte(0x00); //寫高速緩存器TL低溫限值0度
Ds18b20WriteByte(0x1f); //精度設(shè)置
DSPORT = 0; //將總線拉低480us~960us 復(fù)位信號(hào)
i = 70;
while(i--); //延時(shí)642us
DSPORT = 1; //然后拉高總線,如果DS18B20做出反應(yīng)會(huì)將在15us~60us后總線拉低 應(yīng)答信號(hào)
i = 0;
while(DSPORT) //等待DS18B20拉低總線
{
Delay1ms(1);
i++;
if(i>5)//等待>5MS
{
return 0;//初始化失敗
}
}
return 1;//初始化成功
|
評(píng)分
-
查看全部評(píng)分
|