向DS18B20读一字节数据,dat>>=1; if(DQ) dat|=0x80; 怎么理解//ReadOneChar(void) //向DS18B20读一字节数据{unsigned char i=0; //定义符号变量iunsigned char dat=0; //定义符号变量datfor(i=8;i>0;i--) //8位计数器{DQ=1; //DQ先

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/19 21:03:01
向DS18B20读一字节数据,dat>>=1;if(DQ)dat|=0x80;怎么理解//ReadOneChar(void)//向DS18B20读一字节数据{unsignedchari=0;//定义符

向DS18B20读一字节数据,dat>>=1; if(DQ) dat|=0x80; 怎么理解//ReadOneChar(void) //向DS18B20读一字节数据{unsigned char i=0; //定义符号变量iunsigned char dat=0; //定义符号变量datfor(i=8;i>0;i--) //8位计数器{DQ=1; //DQ先
向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; 也只是读高位啊,那其它位呢?

向DS18B20读一字节数据,dat>>=1; if(DQ) dat|=0x80; 怎么理解//ReadOneChar(void) //向DS18B20读一字节数据{unsigned char i=0; //定义符号变量iunsigned char dat=0; //定义符号变量datfor(i=8;i>0;i--) //8位计数器{DQ=1; //DQ先
DAT向右移一位dat>>=1;
如果DQ=0则高位补0 if(DQ)
否则补一
dat|=0x80

向DS18B20读一字节数据,dat>>=1; if(DQ) dat|=0x80; 怎么理解//ReadOneChar(void) //向DS18B20读一字节数据{unsigned char i=0; //定义符号变量iunsigned char dat=0; //定义符号变量datfor(i=8;i>0;i--) //8位计数器{DQ=1; //DQ先 ds18b20数据写一和写0代表什么 ds18b20时序图中,读和写数据分别代表什么意思? 如何用51单片机读取ds18b20的取负温度?求教.18b20的ram中,前两个字节放的是温度信息.其中第二个字节的高五位是符号位,当温度为正的时候,高五位的字节是0,当温度为负的时候,高五位字节为一. 求一个ds18b20数字温度测量的C程序程序比较简单,电路图已上传.P0作为段选,P2位选,希望能得到完整的程序,包括:ds18b20初始化,读字节,写字节,读温度,温度处理,和温度的4位数码管显示, 请问matlab中怎么将数据保存为.dat格式 如果拷贝了一幅使用cass绘制的数字化地形图,如何获取图中地形测量点的坐标高程数据.dat文件? 一K等于多少字节? 一字节等于多少m? VB程序题,已知有一个数据文件data.dat,请编写程序将data.dat中的数据复制到文件student.dat中去. 若定义 DAT DW 'A',则(DAT)和(DAT+1)两个相邻的地址单元中存放的数据是?4100H请问为什么~ 谁能给一组全站仪测量数据(.dat) 用南方CASS练习绘地形图的 单片机从ds18b20读出的数据经过怎样的处理用于显示,只用说正数温度就行啦 请问!float是4字节,double是8字节!里面的字节是什么意思大神们帮帮忙请问C语言里面的字节是什么意思撒!float是4字节,double是8字节!这个什么4字节什么什么8字节又是什么意思!撒!哎新手不懂向大 ds18b20负温度显示问题void wendu_decimal(uint dat) //温度转换后送显示{float temp;if(temp=dat*0.625){wendu_shi=temp/100; //取十位 temp除不用定义类型wendu_ge =((uint)temp)%100/10; //取个位 temp求模要定义类型,为16位, 有谁知道k.m.g.字节.之间的关系(即一字节等于多少k等) DS18B20 能平的那一测紧贴被测物体,来测物体温度吗? DS18B20温度转换问题rdbyte(void) //读取温度的一个字节.tplsb=rdbyte();//温度值低位字节tpmsb=rdbyte();//高位值高位字节请问如何将读到的温度转换为十进制数?最好还包括一位小数.用数码管显示.