標(biāo)題:
DS18b20溫度怎么計(jì)算?
[打印本頁(yè)]
作者:
nan1325738369
時(shí)間:
2018-5-15 11:39
標(biāo)題:
DS18b20溫度怎么計(jì)算?
uint retemp(){
uint a,b,tt;
uint t;
init_ds18b20();
writebyte(0xcc);
writebyte(0x44);
init_ds18b20();
writebyte(0xcc);
writebyte(0xbe);
a = readbyte();
b = readbyte();
t = b;
t <<= 8;
t = t|a;
if((t<=0xfc90)&&(t>=0x00)){ //當(dāng)溫度大于-55° 小于0°
num = 0;
tt = t*0.0625*10;
return(tt);
}else if((t>0x00)&&(t<=0xffff)){ //當(dāng)溫度大于0°小于127°時(shí)
num = 1;
tt = (~t+2)*0.0625*10;
return(tt);
}
}
作者:
老田8310
時(shí)間:
2018-5-15 15:05
你從18D20讀到的16位數(shù)據(jù),中間八位就是溫度的整數(shù)位值?梢詤⒖枷旅娴某绦颍
work_temp(uint tem)
{
uchar n=0;
if(tem>6348) // 溫度值正負(fù)判斷
{tem=65536-tem;n=1;} // 負(fù)溫度求補(bǔ)碼,標(biāo)志位置1
display[4]=tem&0x0f; // 取小數(shù)部分的值
display[0]=ditab[display[4]]; // 存入小數(shù)部分顯示值
display[4]=tem>>4; // 取中間八位,即整數(shù)部分的值
display[3]=display[4]/100; // 取百位數(shù)據(jù)暫存
display[1]=display[4]%100; // 取后兩位數(shù)據(jù)暫存
display[2]=display[1]/10; // 取十位數(shù)據(jù)暫存
display[1]=display[1]%10;
作者:
zl2168
時(shí)間:
2018-5-15 21:16
本帖最后由 zl2168 于 2018-5-15 21:17 編輯
實(shí)例97 一線式DS18B20測(cè)溫
先
Proteus
仿真一下,
確認(rèn)有效。
實(shí)例97 DS18B20測(cè)溫.rar
(51.78 KB, 下載次數(shù): 19)
2018-5-15 21:16 上傳
點(diǎn)擊文件名下載附件
DS18B20 測(cè)溫.jpg
(141.32 KB, 下載次數(shù): 67)
下載附件
2018-5-15 21:17 上傳
以上摘自張志良編著《
80C51
單片機(jī)仿真設(shè)計(jì)實(shí)例教程——基于
Keil C
和
Proteus
》清華大學(xué)出版社
ISBN 978-7-302-41682-1
,
內(nèi)有常用的單片機(jī)應(yīng)用
100
案例,用于仿真實(shí)驗(yàn)操作,電路與程序真實(shí)可靠可信可行。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1