DS18B20温度传感器驱动程序与数码管显示

需积分: 16 4 下载量 126 浏览量 更新于2024-09-14 收藏 41KB DOC 举报
"DS18B20数字温度传感器程序,用于采集温度并显示的C语言实现" DS18B20是一种常用的数字温度传感器,它能够提供精确的温度测量值,且通过单总线(One-Wire)接口与微控制器进行通信。这种通信方式使得系统仅需一个引脚就能与DS18B20交互,大大减少了硬件资源的需求。在给定的程序中,可以看到DS18B20的驱动程序是基于I2C总线协议的实现,尽管实际上DS18B20使用的是单总线协议,但开发者可能通过某种方式将其模拟在I2C上。 程序的核心部分包括以下几个方面: 1. **定义常量和寄存器**:`uchar`、`uint` 定义了无符号字符型和无符号整型变量,方便后续的代码编写。`jump_ROM`、`start`、`read_EEROM` 是DS18B20通信过程中的一些命令代码,如启动转换命令(0xCC)、读ROM命令(0xF0)和读存储器命令(0xBE)等。 2. **数据引脚定义**:`sbit DQ = P2^3;` 定义了DS18B20的数据线连接到P2口的第3位。 3. **温度数据变量**:`TMPL` 和 `TMPH` 分别存储温度的低位字节和高位字节。 4. **显示表**:`table[10]` 是一个字符型数组,用于将数字转换为七段数码管显示的编码,这表明程序可能采用了数码管显示温度结果。 5. **延时函数**:`delay()` 和 `Delay_1ms()` 用于实现不同时间级别的延迟,这是与单总线通信中的时序控制关键部分。单总线通信通常需要精确的延时来确保数据的正确传输。 6. **通信过程**:虽然没有给出完整的通信过程,但从文件名和注释可以推测,程序中应包含初始化DS18B20、发送命令启动温度转换、等待转换完成、读取温度数据以及显示温度值的逻辑。 7. **版本信息**:程序版本号为2.0,作者为东流,创建日期为2012年2月10日,这表明这是一个已经过多次迭代的稳定版本。 通过这个程序,开发者可以了解如何在微控制器上实现DS18B20的驱动,包括硬件连接、时序控制、数据读取和结果显示。这为基于DS18B20的温度监测系统提供了基础框架。如果要实际应用此程序,还需要结合具体的微控制器平台和硬件环境,以及完成数码管或其他显示设备的接口实现。