標題: DS18B20測溫代碼問題 [打印本頁]

作者: tyyhmtyyhm    時間: 2018-1-18 00:09
標題: DS18B20測溫代碼問題
DS18B20測溫和超聲波測距程序中的問題
DS18B20測溫中,測得的數(shù)據(jù)需要加0x30
超聲波測距程序中不需要加
用的同一個液晶,
為什么,謝謝

4610b912c8fcc3ce6effeeea9945d688d43f202f.jpg (25.61 KB, 下載次數(shù): 59)

4610b912c8fcc3ce6effeeea9945d688d43f202f.jpg

e824b899a9014c086f2b0f7c017b02087af4f4d2.jpg (27.16 KB, 下載次數(shù): 71)

e824b899a9014c086f2b0f7c017b02087af4f4d2.jpg

作者: qq1105424012    時間: 2018-1-18 09:56
1+0X30=0X31  即 ASCII 對應的 1
2+0x30=0x32  即 ASCII對應的2
在程序里,我們得到的是BYTE 數(shù)組,需要把它轉換成十進制,即07D0H轉換為+125(℃)。
在LCD中,字庫是ASCII值,因此需要+0x30,
即 125/100=1+0x30  對應ASCII  1  LCD顯示百位 ‘1’
    125/10%10=2+0x30  對應ASCII  2  LCD顯示百位 ‘2’
    125%10=5+0x30  對應ASCII  1  LCD顯示百位 ‘5’
℃可由° 和字母C兩個字符的ASCII碼來顯示,分別為° (0XDF)和 C(0X43)
作者: ahshmj    時間: 2018-1-18 10:00
本帖最后由 ahshmj 于 2018-1-18 10:02 編輯

是將數(shù)值轉換成顯示字符的代碼,就是“ASCII”碼。
ACSII碼的從0x30~0x39是0~10 。也可以是 +48(十進制),和+0x30一樣。
你可以網(wǎng)上搜索“ASCII”有詳細的解釋。
因為操作顯示部分時,LCD的內部使用的是ACSII碼,所以需要轉換,而單片機內部處理18b20的數(shù)據(jù)是不需要轉換的。

作者: bioger    時間: 2018-1-18 10:02
這個和=與==在程序中和實際中的狀態(tài)不一致時一個道理
作者: tyyhmtyyhm    時間: 2018-1-18 10:41
ahshmj 發(fā)表于 2018-1-18 10:00
是將數(shù)值轉換成顯示字符的代碼,就是“ASCII”碼。
ACSII碼的從0x30~0x39是0~10 。也可以是 +48(十進制) ...

同樣的寫液晶程序,為什么超聲波模塊測得的數(shù)據(jù)就不需要轉換呢
作者: cccc888    時間: 2018-1-18 11:12
需要看看lcd12864_SCharDisplay的函數(shù)。
有可能在其他地方加。
作者: qq1105424012    時間: 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',':'};
或者在別的地方轉換  
自己認真看看把

作者: tyyhmtyyhm    時間: 2018-1-19 20:32
qq1105424012 發(fā)表于 2018-1-18 09:56
1+0X30=0X31  即 ASCII 對應的 1
2+0x30=0x32  即 ASCII對應的2
在程序里,我們得到的是BYTE 數(shù)組,需要 ...

非常感謝。。!
作者: a1137607932    時間: 2018-1-20 03:55
應該還是要加0x30的,要么就是12864顯示函數(shù)里面另有設置識別數(shù)字然后加0x30,而且感覺這兩個代碼不是同一個程序啊
作者: zhengguangxi    時間: 2018-1-20 11:17
DS18B20 溫度不太溫度 數(shù)據(jù)精度不行 換其他傳感器吧
作者: 白鶴859    時間: 2018-1-25 11:52
+0x30就變成了對應數(shù)字的的ASCII碼,也就是數(shù)字9變成了字符'9'




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1