久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6706|回復(fù): 2
收起左側(cè)

關(guān)于溫度傳感器試驗(yàn)ds18b20芯片資料不正確

[復(fù)制鏈接]
ID:24072 發(fā)表于 2010-5-27 23:23 | 顯示全部樓層 |閱讀模式

hi

 

我發(fā)現(xiàn)在溫度試驗(yà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;

    

但是這樣在實(shí)際板子上顯示結(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編輯過]
回復(fù)

使用道具 舉報(bào)

ID:1 發(fā)表于 2010-5-27 23:36 | 顯示全部樓層

   資料難道有誤?待我仔細(xì)看看.

 

   我一共了提供了 3個(gè)以上的 ds18b20 程序,其中有一個(gè)c語言寫的精度是0.5度,其他的精度都是0.1攝氏度晶振 都是11.0592 或者是12m 的 .

[此貼子已經(jīng)被作者于2010-5-27 23:39:51編輯過]
回復(fù)

使用道具 舉報(bào)

ID:24072 發(fā)表于 2010-5-28 08:40 | 顯示全部樓層

hi

溫度試驗(yàn)的源程序:

void read_ds1820()                //讀
{
 uchar delay,i,j,k,temp,temph,templ;
 j=2;                           //讀2位字節(jié)數(shù)據(jù)
 do
 {
  for(i=8;i>0;i--)            //一個(gè)字節(jié)分8位讀取
  {
   temp>>=1;                //讀取1位右移1位
   TMDAT=0;                 //數(shù)據(jù)線置低電平
   delay=1;
   while(--delay);          //延時(shí)2us
   TMDAT=1;                 //拉高總線
   delay=4;
   while(--delay);          //延時(shí)8us
   if(TMDAT)temp|=0x80;     //讀取1位數(shù)據(jù)
   delay=25;
   while(--delay);          //讀取1位數(shù)據(jù)后延時(shí)50us
  }
  if(j==2)templ=temp;         //讀取的第一字節(jié)存templ
  else temph=temp;            //讀取的第二字節(jié)存temph
 }while(--j);
 f=0;                           //初始溫度標(biāo)志為正
 if((temph&0xf8)!=0x00)         //若溫度為負(fù)的處理,對二進(jìn)制補(bǔ)碼的處理
 {
  f=1;                        //為負(fù)溫度f置1
  temph=~temph;
  templ=~templ;
  k=templ+1; // 下面幾行代碼應(yīng)該在判斷是否溢出,當(dāng)templ取反恰好等于255時(shí),加1將溢出,此時(shí)templ將為零
  templ=k;

//我覺得是否可以根據(jù)PSW.Cy來判斷溢出,if (CY != 0)作為判斷條件
  if(k>255)  // 當(dāng)k>255時(shí)判斷為溢出情況,所以k似乎應(yīng)該聲明為short型
  {
   temph++;
  }
 }
 tempdf=templ&0x0f;            //將讀取的數(shù)據(jù)轉(zhuǎn)換成溫度值,整數(shù)部分存tempint,小數(shù)部分存tempdf,這里可以看出,小數(shù)部分是低字節(jié)的低4位
 templ>>=4;
 temph<<=4;
 tempint=temph|templ;  // 溫度整數(shù)部分是高字節(jié)的低4位在加上低字節(jié)的高4位
}

回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区在线免费观看 | 黑人粗黑大躁护士 | 在线免费观看黄色av | 亚洲午夜在线 | 久久噜噜噜精品国产亚洲综合 | 精品久久久久久久 | 99成人| 亚洲一区二区高清 | 久久综合九色综合欧美狠狠 | 精品无码三级在线观看视频 | 一区在线视频 | 91资源在线播放 | 特a毛片| 在线播放精品视频 | 波多野结衣一二三区 | 成人影院午夜 | 久久精品99国产精品 | 亚洲成人午夜在线 | 黄色高清视频 | 精品国产一二三区 | 久久免费高清视频 | 成人精品一区二区 | 久久色视频 | 国产日韩欧美 | 精品欧美一区二区精品久久久 | 亚洲欧美一区二区三区国产精品 | 欧美在线一区二区三区 | 日韩欧美在线观看视频 | 国产精品久久久久久久久久久新郎 | 精品麻豆剧传媒av国产九九九 | 亚洲激情一区二区三区 | 欧美网址在线观看 | 综合久久99 | 国产福利在线 | 成人精品高清 | 午夜精品三区 | 日韩欧美在线视频 | 国产激情精品一区二区三区 | 中文字幕日韩欧美 | 久久久九九九九 | 中文字幕在线二区 |