在dq0,之后,dq那就是然后输入端了。
如果没有过了一会儿dq1了,就在dat的最高位加一,应该是:dat|0x80。
最先收到消息的位,是数据的最少位,所以才要逐渐地的向低位移动手机,就是:datgtgt1。
18b20的电源和电源连在一起,地和地连互相。
18b20数据线和数据线连一起,最后数据线再连接到单片机上一个io口就可以了。
按照程序来判别每个18b20.每个18b20有一个身份证一般的号码,好像有64位。
传感器同样id号网上查询法来能够完成多个ds18b20在一线上通讯.必须调去每个ds18b20的身份id号,后再写入到存储空间,然后把在重新初始化线上传感器存在后,发自动分配命令,通过身份杨许丽,是那个就将其数据带到相对应的存储变量中,能完成1线多路传感器的测量.
给你段程序吧
*------------------------------------------------
无法读取温度
------------------------------------------------*/
unsignedintreadtemperature(void)
{
unsignedchara0;
unsignedintb0;
unsignedintt0;
while(init_ds18b20());//检测检测初始化有无最终
writeonechar(0xcc);//跳读序号列号的操作
writeonechar(0x44);//起动温度可以转换
delayms(10);
init_ds18b20();
writeonechar(0xcc);//跳过读序号列号的操作
writeonechar(0xbe);//读取温度寄存器等(共可读9个寄存器)前两个是温度
areadonechar();//低位
breadonechar();//最低点
b8;
tab;
return(t);
}