请问一下0x80是转换为二进制后与value的值做‘’或”运算吗?
追答对,其实不是“转换”,因为它本来在计算机里就是二进制,只不过写代码的时候为了方便写成十六进制的形式
或/与/异或/取反 这些运算都是位运算,只适用于二进制
您好还有个问题想请教一下 value>>=1是什么意思呀?
if(dq==1)value|=0x80;这句是什么意思?关于ds18b20的
如果dq的值为1, 把value的值跟0x80做“或”运算,然后结果保存在value里
ds18b20读取问题 代码里面value的值是从哪儿读来的啊
if(DQ==1)value=value|0x80;\/\/判断接收的1位数据是否为1 delay(50); \/\/*延时,要求精度 } return(value);} value的值是DQ传回来的,循环八次每次存储一位一共八位,读两次就是16位 wenl=read_byte(); \/\/温度低八位 wenh=read_byte(); \/\/温度高八位 ...
DS18B20读程序和写程序有何不同?为何读程序或上0X80,写程序却与上0X01...
解析:作用不同,写程序if (value & 0x01) ,判断写进来的一位是不1,读程序value|=0x80,当读到的高电平时,则把相应的位置为1;先读到的低位一直向右移。所以只有右移才能在最后读到的连续8bit为一个字节,且高低位置没有变化。从本质来讲其两个数字的作用不同,一个是用来判断高低电平的,...
DS18B20读程序和写程序有何不同?为何读程序或上0X80,写程序却与上0X01...
DS18B20是一种数字温度传感器,通过1-Wire接口与主控器连接。在使用DS18B20传感器时,读程序和写程序的确有不同之处,而这些不同之处涉及到使用DS18B20的控制寄存器。DS18B20控制寄存器有一个8位的值,用于控制传感器的工作模式和其他设置。要进行读程序,需要设置控制寄存器的最高位(MSB)为1,以表示将进...
ds18b20怎么传输数据给单片机的
ds18b20怎么传输数据给单片机的?在 DQ = 0,之后,DQ 就是输入端了。如果这时 DQ = 1 了,就在 dat 的最高位加一,就是:dat|=0x80。最先收到的位,是数据的最低位,所以要逐步的向低位移动,就是:dat>>=1。
向DS18B20读一字节数据, dat>>=1; if(DQ) dat|=0x80; 怎么理解
DS18B20的读操作 (1)将数据线拉高“1”。=> DQ =1 (2)延时2微秒。(3)将数据线拉低“0”。=>DQ = 0 (4)延时15微秒。(5)将数据线拉高“1”。(6)延时15微秒。
传感器制作温度计
if(DQ)value|=0x80; delay(6);\/\/66us if(DQ) value|=0x80;\/\/低位到高位依次移入 delay(6); } DQ=1; return(value); } \/***读出温度***\/ \/*uint read_temp(void)\/\/读取温度 { unsigned char a=0; unsigned char b=0; unsigned int t=0; float tt=0; reset(); write_byte(0xCC); ...
有谁知道DS18B20 温度采集程序,用C 语言编程, 用KeilC51 编译。_百度知...
if(DQ) \/\/读取1位数据 temp|=0x80; delay=25; \/\/读取1位数据后延时50us while(--delay); } if(j==4) templ=temp;\/\/读取的第一字节存templ if(j==3) temph=temp; \/\/读取的第二字节存temph if(j==2) tempth=temp; \/\/读取的第3字节存tempth TH的值 if(j==1) temptl=temp;...
ds18b20C程序问题,请高手帮忙解释一下每一条语句的意思
这是根据18B20说明书上的时序图和流程写出来的 void init_18b20(void) \/\/18b20总线初始化 { uchar x=0; \/\/定义字符x DQ=1; \/\/DQ置高电平 DQ为数字信号输入\/输出端;就是中间那个脚 delay(8); \/\/延时 DQ=0; \/\/置低电平 delay(80);DQ=1;delay(10);x=DQ;delay(5);} ucha...
温度控制的PID算法的C语言程序
if(DQ)value|=0x80; delay(6); } return(value);} \/\/向1-wire总线上写一个字节void write_byte(char val){ byte i; for (i=8;i>0;i--) \/\/一次写一个字节 { DQ=0; DQ=val&0x01; delay(5); DQ=1; val=val\/2; } delay(5); } \/\/读取温度char Read_Temperature(void){ union{ byt...