C51单片机实现温度传感器DS18B20数据写入方法
需积分: 0 10 浏览量
更新于2024-07-13
收藏 1.85MB PPT 举报
"这篇资源主要介绍了如何在C51单片机上编写子程序来向DS18B20温度传感器写入数据字节,以及DS18B20传感器的基本特性、工作原理和地址编码机制。"
在C51单片机编程中,向温度传感器DS18B20写数据字节的子过程是一个关键步骤,如描述所示的`tempwritebyte`函数。该函数接受一个无符号字符变量`dat`作为输入,表示要写入的数据字节。通过循环遍历数据字节的每一位,根据每一位的值决定数据线`ds`的状态,实现对DS18B20的单总线通信。若位值为1,则先拉低数据线,延时15us,然后拉高数据线并延时超过45us;若位值为0,则拉低数据线并延时超过45us,再拉高数据线,延时15us。在每次操作后,数据字节右移一位,直至所有位都发送完成。
DS18B20是一种由Dallas公司生产的数字温度传感器,其特点是采用单总线接口,仅需一个MCU端口即可实现双向通信。该传感器能直接将温度转换为串行数字信号,简化了硬件设计。DS18B20具有三个引脚:VDD、GND和DQ,可以在同一总线上挂接多个传感器,适合远距离多点温度监测。它支持+5V供电,并具有反接保护功能。主要性能包括温度测量范围从-55℃到+125℃,精度在-10℃到+85℃范围内可达±0.5℃,温度数字转换时间约200ms。
DS18B20的内部结构包含64位ROM、单线端口、电源检测、存储器和控制逻辑以及温度传感器等模块。其工作原理基于两个振荡器,一个低温度系数振荡器用于提供稳定的计数脉冲,另一个高温度系数振荡器的频率随温度变化,两者共同参与温度测量过程。通过计数器的计数变化来确定温度值,斜坡累加器则用于补偿非线性特性。
此外,DS18B20传感器的64位光刻ROM地址是其独特之处,每个芯片都有唯一的地址,包括产品类型标号、序列号和CRC码,确保在单一总线上区分不同芯片,实现多设备通信。这使得DS18B20在分布式温度监控系统中具有广泛的应用价值。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-10-10 上传
2009-06-29 上传
2014-09-18 上传
2022-02-22 上传
点击了解资源详情
点击了解资源详情
顾阑
- 粉丝: 20
- 资源: 2万+
最新资源
- 几乎所有的findIndex练习:Springboard软件工程职业生涯跟踪子单元8.2的练习
- pyg_lib-0.2.0+pt20cpu-cp310-cp310-linux_x86_64whl.zip
- Gravity-Game
- LiveCue-开源
- shield-db::shield_selector:Shield DB,Dot Shield使用的广告和跟踪器的数据库
- swift-boilerplate:使用文件和项目模板节省创建Swift应用程序的时间
- espriturc:预订土耳其语课程的网站
- ANNOgesic-0.7.29-py3-none-any.whl.zip
- angular-remove-diacritics:角度服务可消除字符串中的重音符号
- 减去图像均值matlab代码-PCA-Image-Compression:PCA-图像压缩
- test-msw
- chipster-web
- smart-contract-tutorial:该存储库包含我们的文章https中使用的完整代码
- xderm-mini
- Inventory_management:Etsy小型企业的库存管理
- HFTuner:免提吉他调音器!