标题:
请教,51单片机读出18b20,8位二进制数转ascII码算法原理
[打印本页]
作者:
lyonkon
时间:
2022-2-28 20:29
标题:
请教,51单片机读出18b20,8位二进制数转ascII码算法原理
18B20读出8位二进制,高四位和低四位经过加30H或者37H只能得到16进制ascII码。85摄氏度在lcd1602上显示16进制55。我想显示十进制数。比如125摄氏度就显示十进制125度,而不是十六进制7d。
IMG_20220228_202341.jpg
(2.06 MB, 下载次数: 42)
下载附件
2022-2-28 20:28 上传
作者:
lkc8210
时间:
2022-2-28 22:56
给你一个思路
char Temp[] = {"000.0"}
u8_Temp = DS18B20_Temp() * 0.625;
Temp[0] = u8_Temp /1000 % 10 +'0';
Temp[1] = u8_Temp /100 % 10 +'0';
Temp[2] = u8_Temp /10 % 10 +'0';
Temp[4] = u8_Temp % 10 +'0';
printf_1602(Temp);
复制代码
作者:
温xyz
时间:
2022-3-1 11:01
要加十进制的30就行了,或者象楼上的加'0'。
作者:
lyonkon
时间:
2022-3-1 21:37
125 二进制是 0111 1101 除以100 等于 0001 1111 就是十进制31, 31模10 余 1
0111 1101 除以10 等于 0011 1110 就是十进制62, 62模10 余2
0111 1101 除以1 等于 0111 1101 就是十进制125,125模10 余5
然后加上#30H即为这个数的ascII码。
谢谢楼上两位老师!!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1