找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

DS18B20測溫代碼問題

查看數(shù): 3365 | 評論數(shù): 10 | 收藏 1
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2018-1-18 00:09

正文摘要:

DS18B20測溫和超聲波測距程序中的問題 DS18B20測溫中,測得的數(shù)據(jù)需要加0x30 超聲波測距程序中不需要加 用的同一個液晶, 為什么,謝謝

回復(fù)

ID:86884 發(fā)表于 2018-1-25 11:52
+0x30就變成了對應(yīng)數(shù)字的的ASCII碼,也就是數(shù)字9變成了字符'9'
ID:277904 發(fā)表于 2018-1-20 11:17
DS18B20 溫度不太溫度 數(shù)據(jù)精度不行 換其他傳感器吧
ID:277930 發(fā)表于 2018-1-20 03:55
應(yīng)該還是要加0x30的,要么就是12864顯示函數(shù)里面另有設(shè)置識別數(shù)字然后加0x30,而且感覺這兩個代碼不是同一個程序啊
ID:244281 發(fā)表于 2018-1-19 20:32
qq1105424012 發(fā)表于 2018-1-18 09:56
1+0X30=0X31  即 ASCII 對應(yīng)的 1
2+0x30=0x32  即 ASCII對應(yīng)的2
在程序里,我們得到的是BYTE 數(shù)組,需要 ...

非常感謝!。!
ID:84283 發(fā)表于 2018-1-18 11:28
有可能直接定義數(shù)組   
unsigned char code disbuff[30] =    {'0','1','2','3','4','5','6','7','8','9','.','-','M','C','D','I','S','T','A','N','C','E','T','H','E',':'};
或者在別的地方轉(zhuǎn)換  
自己認真看看把
ID:258566 發(fā)表于 2018-1-18 11:12
需要看看lcd12864_SCharDisplay的函數(shù)。
有可能在其他地方加。
ID:244281 發(fā)表于 2018-1-18 10:41
ahshmj 發(fā)表于 2018-1-18 10:00
是將數(shù)值轉(zhuǎn)換成顯示字符的代碼,就是“ASCII”碼。
ACSII碼的從0x30~0x39是0~10 。也可以是 +48(十進制) ...

同樣的寫液晶程序,為什么超聲波模塊測得的數(shù)據(jù)就不需要轉(zhuǎn)換呢
ID:248754 發(fā)表于 2018-1-18 10:02
這個和=與==在程序中和實際中的狀態(tài)不一致時一個道理
ID:7485 發(fā)表于 2018-1-18 10:00
本帖最后由 ahshmj 于 2018-1-18 10:02 編輯

是將數(shù)值轉(zhuǎn)換成顯示字符的代碼,就是“ASCII”碼。
ACSII碼的從0x30~0x39是0~10 。也可以是 +48(十進制),和+0x30一樣。
你可以網(wǎng)上搜索“ASCII”有詳細的解釋。
因為操作顯示部分時,LCD的內(nèi)部使用的是ACSII碼,所以需要轉(zhuǎn)換,而單片機內(nèi)部處理18b20的數(shù)據(jù)是不需要轉(zhuǎn)換的。
ID:84283 發(fā)表于 2018-1-18 09:56
1+0X30=0X31  即 ASCII 對應(yīng)的 1
2+0x30=0x32  即 ASCII對應(yīng)的2
在程序里,我們得到的是BYTE 數(shù)組,需要把它轉(zhuǎn)換成十進制,即07D0H轉(zhuǎn)換為+125(℃)。
在LCD中,字庫是ASCII值,因此需要+0x30,
即 125/100=1+0x30  對應(yīng)ASCII  1  LCD顯示百位 ‘1’
    125/10%10=2+0x30  對應(yīng)ASCII  2  LCD顯示百位 ‘2’
    125%10=5+0x30  對應(yīng)ASCII  1  LCD顯示百位 ‘5’
℃可由° 和字母C兩個字符的ASCII碼來顯示,分別為° (0XDF)和 C(0X43)

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

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

快速回復(fù) 返回頂部 返回列表