找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

DS18B20测温代码问题

查看数: 3711 | 评论数: 10 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-1-18 00:09

正文摘要:

DS18B20测温和超声波测距程序中的问题 DS18B20测温中,测得的数据需要加0x30 超声波测距程序中不需要加 用的同一个液晶, 为什么,谢谢

回复

ID:86884 发表于 2018-1-25 11:52
+0x30就变成了对应数字的的ASCII码,也就是数字9变成了字符'9'
ID:277904 发表于 2018-1-20 11:17
DS18B20 温度不太温度 数据精度不行 换其他传感器吧
ID:277930 发表于 2018-1-20 03:55
应该还是要加0x30的,要么就是12864显示函数里面另有设置识别数字然后加0x30,而且感觉这两个代码不是同一个程序啊
ID:244281 发表于 2018-1-19 20:32
qq1105424012 发表于 2018-1-18 09:56
1+0X30=0X31  即 ASCII 对应的 1
2+0x30=0x32  即 ASCII对应的2
在程序里,我们得到的是BYTE 数组,需要 ...

非常感谢!!!!
ID:84283 发表于 2018-1-18 11:28
有可能直接定义数组   
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',':'};
或者在别的地方转换  
自己认真看看把
ID:258566 发表于 2018-1-18 11:12
需要看看lcd12864_SCharDisplay的函数。
有可能在其他地方加。
ID:244281 发表于 2018-1-18 10:41
ahshmj 发表于 2018-1-18 10:00
是将数值转换成显示字符的代码,就是“ASCII”码。
ACSII码的从0x30~0x39是0~10 。也可以是 +48(十进制) ...

同样的写液晶程序,为什么超声波模块测得的数据就不需要转换呢
ID:248754 发表于 2018-1-18 10:02
这个和=与==在程序中和实际中的状态不一致时一个道理
ID:7485 发表于 2018-1-18 10:00
本帖最后由 ahshmj 于 2018-1-18 10:02 编辑

是将数值转换成显示字符的代码,就是“ASCII”码。
ACSII码的从0x30~0x39是0~10 。也可以是 +48(十进制),和+0x30一样。
你可以网上搜索“ASCII”有详细的解释。
因为操作显示部分时,LCD的内部使用的是ACSII码,所以需要转换,而单片机内部处理18b20的数据是不需要转换的。
ID:84283 发表于 2018-1-18 09:56
1+0X30=0X31  即 ASCII 对应的 1
2+0x30=0x32  即 ASCII对应的2
在程序里,我们得到的是BYTE 数组,需要把它转换成十进制,即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)

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表