STM32单片机对DS18B20温度传感器的驱动.doc
《STM32单片机对DS18B20温度传感器的驱动.doc》由会员分享,可在线阅读,更多相关《STM32单片机对DS18B20温度传感器的驱动.doc(2页珍藏版)》请在三一文库上搜索。
1、STM32单片机对DS18B20温度传感器的驱动DS18B20 是由 DALLAS 半导体公司推出的一种的“一线总线”接口的温度传感器。与传统的热敏电阻等测温元件相比,它是一种新型的体积小、适用电压宽、与微处理器接口简单的数字化温度传感器。一线总线结构具有简洁且经济的特点,可使用户轻松地组建传感器网络,从而为测量系统的构建引入全新概念,测量温度范围为-55+125 ,精度为05。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。它能直接读出被测温度,并且可根据实际要求通过简单的编程实现 9l2 位的数字值读数方式。它工作在 35 5 V 的电压范围,采用多种封装形式,从而使系
2、统设计灵活、方便,设定分辨率及用户设定的报警温度存储在 EEPROM 中,掉电后依然保存其内部结构如下所示DS18B20的通讯方式是单总线的,一般而言,我们遇到的封装都是如下其中DQ就是主要的通讯线路,对DS的读取和写入都需要主机来控制DQ线路的DQ高低电平的时间来确定,具体如下一般而言,DQ线需要接一个上拉电阻,所以,才写操作的最后一步都需要将总线拉高向DS写0需要总线拉低至少60US最多120US就算完成,也就是说,1-0(持续60-120us)-1 写入了0像DS写入1需要总线拉低最少1us最多15US,然后总线拉高,拉高时间至少15us,一般40us以上即可 1-0(1-15us,推荐
3、5us)-1(持续15us以上,推荐40us)由此可见,DS的总线采样实在总线拉低之后的15us开始的读取DS分别为读取1和读取0,但是这两者时序是统一的首先总线拉低至少1us,最多15us,还是选择2us,然后释放总线(也就是说进入输入模式),等待15us以上的事件,然后采样,高电平为1低电平为01-0(持续2us,最多15us)-等待15us以上60us以下-采样总线电平,得到1或者0,记得采样完成之后切换到输出模式将总线拉高便于下一次使用DS18B20的命令DS1820有三个主要数字部件:1)64位激光ROM,2)温度传感器,3)非易失性温度报警触发器TH和TL启动温度转换的命令是0X44,读取命令是0XBE所以一般而言,对于DS的驱动包含以下几步复位-发 SKIP ROM 命令(0XCC)-发开始转换命令(0X44)-延时-复位-发送 SKIP ROM 命令(0XCC)-发读存储器命令(0XBE)-连续读出两个字节数据(即温度)-结束我们在读取的时候只读取两个字节的原因在于DS的存储器布局前两个就是我们需要的温度,当然也可以读取全部的,扩展驱动达到其他目的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STM32 单片机 DS18B20 温度传感器 驱动
链接地址:https://www.31doc.com/p-3273651.html