C语言实现多点温度采集原理及程序

需积分: 10 7 下载量 201 浏览量 更新于2024-09-17 2 收藏 62KB DOC 举报
本文档介绍了使用C语言进行多点温度采集的原理和编程实现。主要内容包括以下几个关键知识点: 1. **硬件接口**: 使用了8051单片机(假设是8051系列)的P2和P3口进行数字输入输出,其中DQ引脚用于DS18B20温度传感器的通信控制,D1-D4作为模拟信号输入,key1-key3可能用于按键操作。 2. **温度传感器**:DS18B20是一款常用的数字温度传感器,通过1-Wire总线连接到单片机。程序中涉及了DS1820的复位(`ds1820rst()`)函数,确保在读取温度前正确配置和初始化传感器。 3. **数据读取**:通过`s1820rd()`函数读取DS18B20的数据。该函数通过脉冲宽度调制(PWM)的方式发送和接收数据,并使用循环和延迟函数(如`delay()`和`delay_18B20()`)来控制通信时间。 4. **编码处理**:温度值被转换为一系列二进制代码存储在`tab[]`, `codetabnum1[]`, `codetabnum2[]`, 和 `codetabnum3[]` 数组中,可能是为了便于后续处理或显示。每个数组代表不同的温度范围或编码方式。 5. **变量定义**:`tvalue` 存储读取到的温度值,`tflag` 和 `flagdat` 分别表示温度正负标志,`t`, `kk`, 和 `dd` 可能用于临时计算或存储中间结果。 6. **辅助函数**:`delay()` 和 `delay_18B20()` 是通用的延时函数,用于在通信过程中控制时序,确保正确同步。 7. **程序结构**:整体程序采用了模块化的编程思路,主程序中包含了温度采集和处理的核心逻辑,以及对按键输入的响应处理。 这个文档提供的是一份C语言程序实例,适合学习者用来理解如何在实际项目中利用单片机与温度传感器配合工作,以及如何编写处理数字通信的程序。同时,它展示了将传感器数据编码和解读的过程,这对于理解和应用数字温度传感器技术非常有用。