C51单片机实现温度传感器DS18B20数据写入方法

需积分: 0 1 下载量 108 浏览量 更新于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在分布式温度监控系统中具有广泛的应用价值。