DS18B20 | 您所在的位置:网站首页 › 读取主板温度错误怎么解决 › DS18B20 |
引言:单线总线系统包括一个总线控制器和一个或多个从机。 DS18B20是单总线通信器件,现在我们只讨论点对点的控制---通过一个DS18B20测得温度值 ****先引述一个至关重要的问题:温度转换750ms的时间单片机是可以干其他事情的,比如说处理中断,温度转换是DS18B20自己的事情,但是以下四条指令绝对不能被中断: Write_DS18B20(0xcc); //忽略地址 Write_DS18B20(0xbe); //读取温度数据命令; LSB = Read_DS18B20(); //读取低八位(EEPROM的第0字节) MSB = Read_DS18B20(); //读取高八位(EEPROM的第1字节)(注:读写一个字节的数据大概几十微秒,相比750ms以及很好了) 这是理论上的操作,实际操作过程中,我们其实不需要关中断,因为一直在重复执行温度测量的函数,就算一次没有成功,多测几次就行(实测有效)。实际上对时间要求不是特别高的程序来说,整个发送指令到温度数据传回单片机的过程是不需要延时的,(初始化等要求时序的步骤还是要精确延时),如果是对温度采集时间要求很高的项目,也不会用ds18b20,毕竟750ms的温度转换时间。。。。。。 首先,我们要知道它的原理以及它的内部结构: 1.***EEPROM :由两个字节组成,TL,TH,分别是温度下限和温度上限(都是用户字节); 2.高速暂存器(RAM):第0,1字节为温度数据的低八位和高八位,第2,3字节为从EEPROM的TL 和 TH 复制过来的温度下限和温度上限; (未完待续);
|
CopyRight 2018-2019 实验室设备网 版权所有 |