arduino中ds18b20在连接时dq最前端的点代表什么,如何画出
1个回答
2017-08-31
展开全部
#includesbitDQ=P0^0;voidDelay(intnum)//延时函数{while(num--);}voidInit_DS18B20(void)//初始化ds18b20{DQ=1;//DQ复位Delay(8);//稍做延时DQ=0;//单片机将DQ拉低Delay(80);//精确延时大于480usDQ=1;//拉高总线Delay(14);Delay(20);}unsignedcharReadOneChar(void)//读一个字节{unsignedchari=0;unsignedchardat=0;for(i=8;i>0;i--){DQ=0;//给脉冲信号dat>>=1;DQ=1;//给脉冲信号if(DQ)dat|=0x80;Delay(4);}return(dat);}voidWriteOneChar(unsignedchardat)//写一个字节{unsignedchari=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;Delay(5);DQ=1;dat>>=1;}}unsignedintReadTemperature(void)//读取温度{unsignedchara=0;unsignedcharb=0;longunsignedinttvalue;//温度值Init_DS18B20();WriteOneChar(0xCC);//跳过读序号列号的操作WriteOneChar(0x44);//启动温度转换Init_DS18B20();WriteOneChar(0xCC);//跳过读序号列号的操作WriteOneChar(0xBE);//读取温度寄存器a=ReadOneChar();//读低8位b=ReadOneChar();//读高8位tvalue=b;tvalue<<=8;tvalue=tvalue|a;tvalue=tvalue*0.0625;//读取的数据保留到个位return(tvalue);}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |