51单片机与DS18B20温度传感器的单总线通信解析

需积分: 0 1 下载量 45 浏览量 更新于2024-07-13 收藏 1.85MB PPT 举报
"二叉树遍历-C51单片机12(温度传感器)课件" 本文主要讨论了C51单片机在处理温度传感器,特别是Dallas公司的DS18B20数字温度传感器时的应用。DS18B20是一款采用单总线接口的传感器,能够将温度直接转化为串行数字信号,便于与微控制器通信。这种传感器具有以下特点: 1. **单总线接口**:只需与单片机的一个端口连接,就能实现双向通信,简化了硬件设计,节省了I/O资源。 2. **三引脚设计**:包括VDD(电源)、GND(接地)和DQ(数据线),使得安装和布线更为简洁。 3. **多传感器挂载**:同一总线上可挂接多个DS18B20,适合于多点温度监测系统。 4. **电源特性**:工作电压为+5V,同时具备自供电能力,在信号线高电平时能为内部电容充电,用于低电平消耗。 5. **温度范围和精度**:测量范围从-55℃到+125℃,在-10℃到+85℃之间的精度可达±0.5℃。 DS18B20的工作过程涉及两个内部振荡器,一个低温度系数振荡器(提供稳定的计数脉冲)和一个高温度系数振荡器(频率随温度变化)。通过比较两个计数器的计数值来确定当前温度。温度寄存器在每次计数器1从预置数减到0时,温度值增加1℃,斜坡累加器则根据温度调整预置数,以补偿非线性。 在搜索ROM指令的执行过程中,DS18B20会将每一位及其补码发送到总线上,单片机通过读取并分析这些数据,可以识别总线上设备的状态,例如是否存在冲突或所有设备的数值是否一致。00表示有冲突,01表示所有设备此位为0,10表示所有设备此位为1,11则表明无DS18B20设备。 此外,每个DS18B20芯片都有唯一的64位光刻ROM地址,包含产品类型标号、序列号和CRC码,用于在单一总线上区分不同的传感器,类似于网络中的MAC地址,确保了数据传输的准确性和唯一性。 在实际应用中,C51单片机通过处理这些信号,结合DS18B20的特性,可以构建出精确、可靠的温度监测系统,尤其适用于远程和分布式环境的温度测量。