DS18B20温度传感器C51程序实现与初始化

5星 · 超过95%的资源 需积分: 10 158 下载量 129 浏览量 更新于2024-12-27 7 收藏 19KB TXT 举报
"这篇代码是使用C51语言编写的DS18B20温度传感器驱动程序,适用于8051系列单片机。DS18B20是一款数字温度传感器,能直接输出数字信号,具有精度高、体积小等特点。程序包含了初始化、写入与读取数据的基本操作。" 在DS18B20程序中,关键知识点包括以下几个部分: 1. **延时函数**:`Delayus()` 和 `Delay2us()` 是用于精确控制时序的延时函数。它们根据不同的晶振频率调整延时时间,确保与DS18B20通信所需的最小脉冲宽度。 2. **DS18B20初始化**:`Ds18b20_Init()` 函数负责初始化DS18B20,通过拉低和释放DQ线(数据线)来检测和建立通信。如果在规定时间内未检测到设备,返回失败标志。 3. **写入数据到DS18B20**:`Ds18b20_WriteBit()` 和 `Ds18b20_WriteByte()` 分别用于写入单个bit和字节到DS18B20。这些函数控制DQ线的状态并根据时序要求进行延时,以确保数据正确传输。 4. **从DS18B20读取数据**:`Ds18b20_ReadBit()` 和 `Ds18b20_ReadByte()` 函数用于从传感器读取数据。它们同样需要精确的时序控制,确保读取到的数据正确。 5. **读取DS18B20的ROM**:`Ds18b20_ReadRom()` 函数用于读取DS18B20的ROM地址,这个地址是每个传感器独有的,用于多设备通信的分辨。 6. **读取DS18B20的EEPROM**:`Ds18b20_ReadEE()` 函数用于读取DS18B20的内部EEPROM,这可能包含配置信息或温度转换设置。 7. **温度采集计算**:`TempCal()` 函数是用于获取温度测量值的关键。它首先尝试读取DS18B20的EEPROM,然后启动温度转换过程。不过,提供的代码片段不完整,完整的版本应该会处理温度转换结果并将其转换为浮点温度值。 8. **标签"wendu"** 暗示这个程序是用于测量温度的,其中DS18B20传感器的测量范围是-55℃到+128℃。 这个程序展示了如何用C51语言与DS18B20温度传感器进行底层硬件交互,实现数据的读取和写入,是单片机控制温度传感器的基础。