C51单片机读取DS1820温度传感器数据教程

需积分: 0 1 下载量 3 浏览量 更新于2024-07-13 收藏 1.85MB PPT 举报
"C51单片机通过读取温度传感器DS1820的数据字节进行温度检测。" 本文档详细介绍了如何使用C51单片机读取温度传感器DS1820的数据字节,该传感器是一款由Dallas公司生产的数字温度传感器,采用单总线接口,仅需连接到单片机的一个端口即可实现双向通信。DS1820具有温度转化成串行数字信号的能力,便于数据传输,并且支持多点温度检测。 DS1820的引脚包括VDD、GND和DQ,可以承受+5V供电,且能在高电平时为内部电容充电,即使电源极性接反,芯片也不会立即损坏。其温度测量范围为-55℃到+125℃,在-10℃到+85℃范围内精度可达±0.5℃。温度数字量转换时间为200ms。 DS18B20内部结构包含64位ROM、单线端口、电源检测、存储器和控制逻辑以及温度传感器等组件。其温度测量基于两个振荡器,一个低温度系数振荡器用于提供稳定的计数脉冲,一个高温度系数振荡器的频率随温度变化,通过两个计数器进行温度测量。温度寄存器会随着计数器1的递减计数而逐次增加,直至计数器2计数到0。 读取DS1820数据的C51子过程分为两步: 1. `tempreadbit()` 函数用于读取1个数据位。它通过控制数据线的高低电平并延时来完成数据读取,最后返回数据位。 2. `tempreadbyte()` 函数则读取1个数据字节。首先初始化接收变量,然后循环调用`tempreadbit()`,每次读取一位并将数据移位存储,最后返回整个数据字节。 在实际应用中,多个DS18B20可以通过单总线连接,每个芯片都有独特的64位光刻ROM地址,以区分不同的设备。这使得在同一总线上挂载多个传感器成为可能,方便进行分布式温度监测。 这篇资料详细阐述了C51单片机与DS1820温度传感器的通信过程,包括传感器的硬件特性、内部结构以及数据读取的软件实现,对于理解单总线温度传感器的使用和编程具有很高的参考价值。