标题:
LCD采集温度显示代码,最后两句什么意思啊
[打印本页]
作者:
lipingjiang
时间:
2020-2-28 19:29
标题:
LCD采集温度显示代码,最后两句什么意思啊
void TEMP_Read() //读取温度整数
{
uint8 a,b;
TEMP_INITIALIZE();
TEMP_Write_Char(0xcc); //跳过ROM
TEMP_Write_Char(0x44);//温度转化
TEMP_Delay(100);
TEMP_INITIALIZE();
TEMP_Write_Char(0xcc);//跳过ROM
TEMP_Write_Char(0xbe);//获取温度
TEMP_Delay(100);
a=TEMP_Read_Char();
b=TEMP_Read_Char();
Temp_Value=b<<4;
Temp_Value+=(a&0xf0)>>4;
}
最后两句什么意思啊,求救
作者:
ccczzz
时间:
2020-2-28 20:11
temp_value=b<<4;//temp_value=b左移动4位 , 转换成10进制temp_value+=(a&0xf0)>>4; //temp_value=temp_value+((a&0xf0)>>4) 转换成10进制
作者:
ccczzz
时间:
2020-2-28 20:12
一己之见望采纳。
作者:
ccczzz
时间:
2020-2-28 20:15
temp_value=b<<4;//temp_value=b左移动4位
temp_value+=(a&0xf0)>>4; //temp_value=temp_value+((a&0xf0)>>4)右移动4位
作者:
csmyldl
时间:
2020-2-28 20:58
Temp_Value=b<<4;
Temp_Value+=(a&0xf0)>>4;
因为采集到的温度只有12位,b是高8位数据(但只有低4位有用),a是低8位数据,高4位是与b的低4位组成温度的整数,a的低4位是温度的小数部分
所以这两名的意思是:取b的低4位数据作为Temp_Value的高4位,取a的高4位作为Temp_Value的低4位,最后构成温度的整数值
作者:
xuyaqi
时间:
2020-2-28 21:10
Temp_Value=b<<4; 把b左移4位赋予Temp_Value。
Temp_Value+=(a&0xf0)>>4; 把a与0xf0相与再左移4位,加上Temp_Value再赋予Temp_Value 。
作者:
wulin
时间:
2020-2-28 21:47
这是取正整数弃小数的语句。楼主了解了DS18b20输出的数据结构后理解最后两句什么意思就容易了。
DS18b20输出的是2个字节数据,a=低8位,b=高8位,b的最高位0为+,1为-,次3位始终为0,b的低4位是整数的高4位,a的高4位是整数的低4位。所以b<<4+a>>4就是用一个字节表示的正整数。
作者:
我叫小大打
时间:
2020-3-10 13:23
这很
很简单的
temp_value=b<<4;//temp_value=b左移动4位
temp_value+=(a&0xf0)>>4;
作者:
sbmtv
时间:
2020-3-10 14:52
很简单啊 就是
temp_value=b<<4;//temp_value=b
左移动4位
temp_value+=(a&0xf0)>>4; //temp_value=temp_value+((a&0xf0)>>4)
右移动4位
作者:
huangfu112000
时间:
2020-3-10 15:24
temp_value取左4位
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1