【蓝桥杯单片机11】单总线温度传感器有哪几种DS18B20的基本操作
广东职业技术学院 欧浩源
单总线数字温度传感器有哪几种DS18B20几乎成了各类单片机甚至ARM实验板的标配模块来在蓝桥杯的往届省赛和国赛中,这个内容考查的频率也相当的高不管是单片机学习还是蓝桥杯备赛,都应掌握DS18B20的基本操作也就是把传感器的數据读出来。
在蓝桥杯“单片机设计与开发”赛项中会提供一个关于DS18B20的库文件,里面有传感器复位、写字节和读字节三个函数所以,伱不一定要把单总线的时序搞清楚但你一定要把DS18B20的基本操作流程弄明白。 DS18B20单线通信功能是分时完成的它有严格的时隙概念,如果出现序列混乱器件将不响应主机,因此读写时序很重要 通过单线总线端口访问DS18B20的协议如下: DS18B20的高速暂存存储器由9个字节组成,当温度转换命令发布后经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。在上电状态下DS18B20默认的精度为12位。启动后它保持低功耗等待状态当需要执行温度测量和AD转换时,总线控制器必须发出温度转换命令在那之后,产生的温度数据以两个字节的形式被存储到高速暂存器的温度寄存器中DS18B20继续保持等待状态。单片机可通过单线接口可以读到该数据读取时低位在前,高位在后
BEH:读暂存器指令,读取高速暂存存储器9个字节的内容
3、读取一次DS18B20温度的基本操作
主机向DS18B20写0xBE命令,依次读取DS18B20发出的从第0一第8共九个字节的数据。如果只想读取温度数据那在读完第0和第1个数据后就不再理会后面DS18B20发出的数据即可。 具体的代码实现可以参考一下框架: