0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何將數(shù)字溫度數(shù)據(jù)轉(zhuǎn)換為十進(jìn)制度攝氏度值

星星科技指導(dǎo)員 ? 來源:ADI ? 作者:ADI ? 2023-01-14 11:13 ? 次閱讀

DS1847和DS1848具有片內(nèi)直接數(shù)字溫度傳感器。溫度存儲(chǔ)在地址位置 E2h 和 E3h 中。本應(yīng)用筆記解釋了如何將數(shù)字溫度數(shù)據(jù)轉(zhuǎn)換為十進(jìn)制度攝氏度值。

將溫度從十六進(jìn)制轉(zhuǎn)換為十進(jìn)制

轉(zhuǎn)換DS1847和DS1848的溫度值的過程首先讀取以字節(jié)E2h(溫度的MSB)和E3h(溫度的LSB)存儲(chǔ)的十六進(jìn)制值。這兩個(gè)字節(jié)包含最新的溫度讀數(shù)。讀取兩個(gè)字節(jié)后,可以將它們轉(zhuǎn)換為二進(jìn)制。位權(quán)重如表1所示。

E2h (溫度兆字節(jié)) E3h (溫度LSB)
S 27 26 25 24 23 22 21 20 2-1 2-2 2-3 2-4 0 0 0

溫度存儲(chǔ)在二進(jìn)制數(shù)據(jù)的 13 MSB 中。MSB 是符號(hào)位,指示 2 的補(bǔ)碼二進(jìn)制數(shù)是正數(shù)還是負(fù)數(shù)。如果 MSB 為 0,則該值為正。如果 MSB 為 1,則該值為負(fù)數(shù)。接下來的 12 位包含溫度值,并通過不同的方法轉(zhuǎn)換為正負(fù)值的十進(jìn)制。

正溫度轉(zhuǎn)換

以下是如何轉(zhuǎn)換正溫度的示例。在此示例中,地址位置 E2h 和 E3h 分別包含 2Ah 和 88h。將這兩個(gè)字節(jié)組合在一起得到 2A88h。接下來,將十六進(jìn)制數(shù)據(jù)轉(zhuǎn)換為二進(jìn)制。2A88h 的二進(jìn)制等價(jià)物是 0010 1010 1000 1000。由于MSB為0,因此溫度為正。二進(jìn)制數(shù)據(jù)的較低 3 位將被忽略,因此它們被 0 屏蔽。表 2 顯示了從十六進(jìn)制到二進(jìn)制的轉(zhuǎn)換以及低 3 位的屏蔽。

十六進(jìn)制數(shù)據(jù) 二進(jìn)制數(shù)據(jù) 屏蔽的二進(jìn)制數(shù)據(jù)
2A88小時(shí) 0010 1010 1000 1000 0010 1010 1000 1000

由于溫度為正,因此不需要2的補(bǔ)體轉(zhuǎn)化。數(shù)據(jù)可以使用計(jì)算器直接轉(zhuǎn)換為十進(jìn)制數(shù)。二進(jìn)制數(shù) 0010 1010 1000 1000 等于十進(jìn)制值 10888。由于數(shù)據(jù)包含分?jǐn)?shù)分量,因此必須除以十進(jìn)制值才能獲得真實(shí)溫度。十進(jìn)制值必須除以 128(或乘以 2-7) 以計(jì)算正確的十進(jìn)制溫度值。將十進(jìn)制值 10888 除以 128 得到十進(jìn)制溫度值為 85.0625°C。

負(fù)溫度轉(zhuǎn)換

轉(zhuǎn)換負(fù)溫度值 (MSB = 1) 有點(diǎn)復(fù)雜。例如,地址 E2h 和 E3h 包含數(shù)據(jù) F8h 和 08h。第一步是將十六進(jìn)制值轉(zhuǎn)換為二進(jìn)制。同樣,較低的 3 位將被忽略,因此它們將被 0 屏蔽。表 3 顯示了從十六進(jìn)制到二進(jìn)制的轉(zhuǎn)換以及 3 個(gè)低位的掩碼。

十六進(jìn)制數(shù)據(jù) 二進(jìn)制數(shù)據(jù) 屏蔽的二進(jìn)制數(shù)據(jù)
F808h 1111 1000 0000 1000 1111 1000 0000 1000

下一步是獲取掩碼二進(jìn)制值的 2 補(bǔ)碼。這是通過首先反轉(zhuǎn)屏蔽的二進(jìn)制數(shù),然后向其添加 1 來完成的。反轉(zhuǎn)二進(jìn)制數(shù) 1111 1000 0000 1000 會(huì)得到二進(jìn)制數(shù) 0000 0111 1111 0111。將 1 相加得到二進(jìn)制數(shù) 0000 0111 1111 1000。此值等于十進(jìn)制數(shù) 2040。與正溫度示例一樣,轉(zhuǎn)換后的十進(jìn)制值除以 128,但也變?yōu)樨?fù)值,因?yàn)闇囟葹樨?fù),如 MSB 所示。因此,當(dāng)十進(jìn)制值 2040 除以 -128 時(shí),結(jié)果是十進(jìn)制溫度值為 -15.9375°C。

結(jié)論

本應(yīng)用筆記演示了將地址E2h和E3h中的十六進(jìn)制數(shù)據(jù)轉(zhuǎn)換為十進(jìn)制度溫度值的兩種方法。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 溫度傳感器
    +關(guān)注

    關(guān)注

    48

    文章

    2993

    瀏覽量

    156803
  • 存儲(chǔ)
    +關(guān)注

    關(guān)注

    13

    文章

    4411

    瀏覽量

    86465
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何將算得的數(shù)據(jù)(10進(jìn)制轉(zhuǎn)換為16進(jìn)制通過串口發(fā)送出?

    我用公式節(jié)點(diǎn)算得一組數(shù)據(jù),好比是1212,1313,1414等,這些數(shù)據(jù)轉(zhuǎn)為16進(jìn)制就是04BC,0521,0586,如何將十進(jìn)制
    發(fā)表于 01-30 14:05

    如何將進(jìn)制數(shù)轉(zhuǎn)換十進(jìn)制并顯示

    如何用匯編將如何將進(jìn)制數(shù)轉(zhuǎn)換十進(jìn)制在數(shù)碼管中顯示
    發(fā)表于 07-06 16:20

    如何將串口讀取的十六進(jìn)制字符串轉(zhuǎn)換十進(jìn)制數(shù)值

    在串口通信中,讀取到的是四位的十六進(jìn)制字符串,如何將轉(zhuǎn)換為十進(jìn)制的數(shù)值。
    發(fā)表于 05-27 10:42

    labview中如何將一個(gè)3字節(jié)的十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制

    求教大神,如何用labview實(shí)現(xiàn)將一個(gè)3字節(jié)的十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制,如7D8B79轉(zhuǎn)換為對(duì)應(yīng)的十進(jìn)
    發(fā)表于 07-22 16:39

    怎么進(jìn)制數(shù)據(jù)轉(zhuǎn)換為十進(jìn)制或ASCII?

    親愛的,我在端口上有二進(jìn)制數(shù)據(jù)。我用ADC轉(zhuǎn)換溫度數(shù)據(jù)并將其顯示在端口上。我的問題是下面的最佳方法是什么?1)。
    發(fā)表于 05-21 13:02

    如何將IEEE754雙字符串轉(zhuǎn)換十進(jìn)制字符串

    微芯片XC32包括幾個(gè)數(shù)學(xué)函數(shù),這些函數(shù)在IEEE754雙精度(微芯片稱它們?yōu)殚L雙精度的)上運(yùn)行,但是在標(biāo)準(zhǔn)工作室中不提供打印它們的支持。雙精度數(shù)字轉(zhuǎn)換為十進(jìn)制字符串表示的精確功能迄
    發(fā)表于 07-23 11:39

    如何將ascii字符轉(zhuǎn)換為十進(jìn)制

    只顯示一行小方框,可能暗示有損壞/空數(shù)據(jù)。如果有人能給我指出正確的方向,如何最好地ascii字符轉(zhuǎn)換為十進(jìn)制,那就太好了……注意,我想把
    發(fā)表于 09-05 14:19

    如何將SPI Master轉(zhuǎn)換為十六進(jìn)制數(shù)?

    大家好,我需要通過SPI Master發(fā)送十進(jìn)制數(shù),但是SpimgWruteXDATA()只能發(fā)送十六進(jìn)制數(shù)。如何發(fā)送小數(shù)?如何將它們轉(zhuǎn)換為十六進(jìn)制
    發(fā)表于 09-30 11:15

    LM5066如何將數(shù)據(jù)轉(zhuǎn)換為負(fù)溫度?

    晶體管 MMBT3904LT1G 的集電極和基極連接到 lm5066 的二極管引腳。發(fā)射器接地。電路板被放置在 -20 攝氏度的熱室中。在讀取本地溫度寄存器 0x??8Dh 時(shí),我們收到的數(shù)據(jù)為 0xF0Ah。
    發(fā)表于 05-11 07:54

    -40至+125攝氏度數(shù)字溫度計(jì)電路

    -40至+125攝氏度數(shù)字溫度計(jì)電路
    發(fā)表于 02-06 00:20 ?1046次閱讀
    -40至+125<b class='flag-5'>攝氏度數(shù)字</b><b class='flag-5'>溫度</b>計(jì)電路

    華氏攝氏度的換算在線計(jì)算 溫度轉(zhuǎn)換公式大全

    本文提供華氏攝氏度的換算,華氏溫度、攝氏溫度的在線轉(zhuǎn)換與換算工具,各種不同溫度計(jì)量單位的
    發(fā)表于 09-13 15:36 ?1.6w次閱讀

    進(jìn)制如何轉(zhuǎn)換為十進(jìn)制?

    進(jìn)制轉(zhuǎn)換為十進(jìn)制(base-2到base-10) )數(shù)字和背面是一個(gè)重要的概念,因?yàn)槎?b class='flag-5'>進(jìn)制
    的頭像 發(fā)表于 06-22 10:21 ?2.5w次閱讀

    c語言攝氏度與華氏溫度如何轉(zhuǎn)換

    攝氏度與華氏轉(zhuǎn)換公式為C=(F-32)*5/9。不少人看到這樣的轉(zhuǎn)換公式就會(huì)將攝氏度C和華氏
    的頭像 發(fā)表于 11-24 11:16 ?2.4w次閱讀

    如何將十進(jìn)制數(shù)轉(zhuǎn)換為進(jìn)制數(shù)

    電子發(fā)燒友網(wǎng)站提供《如何將十進(jìn)制數(shù)轉(zhuǎn)換為進(jìn)制數(shù).zip》資料免費(fèi)下載
    發(fā)表于 02-02 14:59 ?0次下載
    <b class='flag-5'>如何將</b><b class='flag-5'>十進(jìn)制</b>數(shù)<b class='flag-5'>轉(zhuǎn)換為</b>八<b class='flag-5'>進(jìn)制</b>數(shù)

    你知道十進(jìn)制轉(zhuǎn)二進(jìn)制如何進(jìn)行轉(zhuǎn)換嗎?

    你知道十進(jìn)制轉(zhuǎn)二進(jìn)制如何進(jìn)行轉(zhuǎn)換嗎? 當(dāng)我們提到數(shù)字系統(tǒng)時(shí),最常見的是十進(jìn)制系統(tǒng)和二進(jìn)制系統(tǒng)。
    的頭像 發(fā)表于 12-20 17:05 ?1995次閱讀