hi
我發(fā)現(xiàn)在溫度試驗中,根據(jù)給的ds18b20芯片資料,其應(yīng)該是8位傳感器,其給出的溫度的例子為:
溫度 高位 低位
+125 0x00 0xFA
+25 0x00 0x32
+0.5 0x00 0x01
0 0x00 0x00
-0.5 0xFF 0xFF
-25 0xFF 0xCE
-55 0xFF 0x92
根據(jù)上表,程序似乎采集溫度程序似乎應(yīng)該這樣寫:
if (temph > 0) // 負(fù)號處理
{
templ = (~templ)+1;
f = 1;
}
tempdf = templ & 0x1; // tempdf > 0 代表0.5度
tempint = templ>>1;
但是這樣在實際板子上顯示結(jié)果不正確。
通過讀程序,發(fā)現(xiàn)templ的低4位是小數(shù),temph的低4位加上templ的高4位組成溫度值的整數(shù)部分,因此應(yīng)該是十二位的溫度傳感器,不知道我的理解對不對?
如果正確請?zhí)峁┌遄由蠝囟葌鞲衅鞯恼_資料,謝謝!
另外,程序在22.1184MHz晶振下工作正常,在11.0592MHz下LED數(shù)碼管不停閃爍,不知道是什么原因?
[此貼子已經(jīng)被作者于2010-5-27 23:31:03編輯過]
|