向DS18B20读一字节数据,dat>>=1; if(DQ) dat|=0x80; 怎么理解
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/16 06:14:45
向DS18B20读一字节数据,dat>>=1; if(DQ) dat|=0x80; 怎么理解
//
ReadOneChar(void) //向DS18B20读一字节数据
{
unsigned char i=0; //定义符号变量i
unsigned char dat=0; //定义符号变量dat
for(i=8;i>0;i--) //8位计数器
{
DQ=1; //DQ先置高
delay(1); // 延时
DQ=0; //发送复位脉冲,主机开始读0时间片
dat>>=1; //复合赋值运算,等效dat=dat>>1(dat=dat右移一位后的值)
DQ=1;
if(DQ)
dat|=0x80; //按位或然后赋值给dat,读取数据最高位为1
delay(4);
}
return(dat);
}
另外dat的数据不是0吗,右移不还是0吗,也就是data不变啊?data的数据和什么寄存器有关吗,是8位还是几位,与DQ有什么关系,如何读取数据,并赋值.还有dat|=0x80; 也只是读高位啊,那其它位呢?
//
ReadOneChar(void) //向DS18B20读一字节数据
{
unsigned char i=0; //定义符号变量i
unsigned char dat=0; //定义符号变量dat
for(i=8;i>0;i--) //8位计数器
{
DQ=1; //DQ先置高
delay(1); // 延时
DQ=0; //发送复位脉冲,主机开始读0时间片
dat>>=1; //复合赋值运算,等效dat=dat>>1(dat=dat右移一位后的值)
DQ=1;
if(DQ)
dat|=0x80; //按位或然后赋值给dat,读取数据最高位为1
delay(4);
}
return(dat);
}
另外dat的数据不是0吗,右移不还是0吗,也就是data不变啊?data的数据和什么寄存器有关吗,是8位还是几位,与DQ有什么关系,如何读取数据,并赋值.还有dat|=0x80; 也只是读高位啊,那其它位呢?
DAT向右移一位dat>>=1;
如果DQ=0则高位补0 if(DQ)
否则补一
dat|=0x80
如果DQ=0则高位补0 if(DQ)
否则补一
dat|=0x80
向DS18B20读一字节数据,dat>>=1; if(DQ) dat|=0x80; 怎么理解
C语言dat+=0x80是什么意思,+这个真么运算
若定义 DAT DW 'A',则(DAT)和(DAT+1)两个相邻的地址单元中存放的数据是?
DAT文件怎么打开?
请问matlab中怎么将数据保存为.dat格式
if((temp&0x80)==0x80)
dat 是什么意思?
dat是什么意思?
dat是什么意思
怎么将matlab中数据保存为txt或dat格式
模拟电路中的求导.Af = A/(1+AF)两边对dA求导,怎么就得到了dAt/dA=1/(1+AF)2?Af= A/(
C语言DIO=(bit)(dat&0x08);第一个括弧表示什么意思