1樓:泉修翁凡桃
1:接收資料為雙位元組--先低位,後高位;先低位元組,後高位元組;
2:高位元組的前5位若為「0」,則將資料乘以0.0625;即[t=(d*0.0625)].
3:高位元組的前5位若為「1」,則將資料先取反,再加一,再乘以0.0625;即
【t=[(~d)+1]*0.0625]】
溫度是-55~+125
對應的值是
:(-55>>ff92)
(-0.5>>ffff)
(0>>0000)
(0.5>>0001)
(125>>00fa)
2樓:倪豫葉羽
把tplsb和tpmsb都是8位的合成一個16位的有符號數tt;temp為浮點數
t=tpmsb<<8;
t=t|tplsb;
if(t<0)
//負溫度
else
temp=t*0.0625*10+0.5;
//正溫度
if(t<0)
bai='-';
//負溫度時百位顯示負號
else
bai=(const)
temp/1000+0x30;
//百位
shi=((const)
temp%1000)/100;
//十位
ge=((const)
temp%1000)%100/10;
//個位
shifen=((const)
temp%1000)%100%10;
//十分位
ds18b20的精度問題,DS18B20的精度問題
你把測量值和實際值做成一套 或曲線圖,再做下濾波 不同的18b20溫度測出了有一兩度差別,這樣測出來的精度雖有0.0625也只是個樣子 ds18b20的測溫最小精度為0.0625 怎麼提高?暫存器2的第四位為小數部分的精度,變化一位代表變化了0.0625 這個是沒辦法改變的。但就目前我還沒看到過ds...
溫度計的設計,(使用DS18B20)
at89c51微控制器 那可以的要求的撒 微控制器數字式溫度計設計,用ds18b20和12864液晶屏 1 我做過的是ds18b20 pic微控制器 數碼管顯示。2 也做過微控制器 熱電偶 12864顯示溫度3 最近要做的是,微控制器 ds18b20 數碼管顯示 時間顯示。有按鍵,設定溫度上限和下限...
我編寫ds18b20程式想顯示溫度在led燈上但
include reg52.h include include 要用到取絕對值函式abs define uchar unsigned char define uint unsigned int sbit ds p2 1 sbit ds p3 2 ds18b20 sbit duan p2 6 sbit...