亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6668|回復: 2
打印 上一主題 下一主題
收起左側

DS18b20溫度怎么計算?

[復制鏈接]
跳轉到指定樓層
樓主
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)){                                 //當溫度大于-55° 小于0°
                num = 0;
    tt = t*0.0625*10;
                return(tt);
        }else if((t>0x00)&&(t<=0xffff)){                             //當溫度大于0°小于127°時
                num = 1;
    tt = (~t+2)*0.0625*10;
                return(tt);
        }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:290752 發表于 2018-5-15 15:05 | 只看該作者
你從18D20讀到的16位數據,中間八位就是溫度的整數位值。可以參考下面的程序:
work_temp(uint tem)
{
uchar n=0;
if(tem>6348)                        // 溫度值正負判斷
     {tem=65536-tem;n=1;}            // 負溫度求補碼,標志位置1
      display[4]=tem&0x0f;           // 取小數部分的值
  display[0]=ditab[display[4]];  // 存入小數部分顯示值
      display[4]=tem>>4;             // 取中間八位,即整數部分的值
  display[3]=display[4]/100;     // 取百位數據暫存
  display[1]=display[4]%100;     // 取后兩位數據暫存
  display[2]=display[1]/10;      // 取十位數據暫存
  display[1]=display[1]%10;  

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:111634 發表于 2018-5-15 21:16 | 只看該作者
本帖最后由 zl2168 于 2018-5-15 21:17 編輯

實例97  一線式DS18B20測溫
Proteus仿真一下,確認有效。
實例97 DS18B20測溫.rar (51.78 KB, 下載次數: 19)

以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1內有常用的單片機應用100案例,用于仿真實驗操作,電路與程序真實可靠可信可行。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表