10-51_四路DS18B20温度采集_上位机
基于51单片机的四路DS18B20温度采集与上位机监控系统
四路测温 · 串口通信 · 上位机曲线显示
一、项目简介
本项目设计了一套四路温度采集与上位机监控系统。51单片机通过单总线挂载4片DS18B20传感器,分别采集4路温度数据,通过串口将数据发送至PC上位机软件。上位机软件实时显示4路温度数值和温度变化曲线,支持数据记录和导出功能。
串口通信采用自定义数据帧格式:帧头(0xAA) + 4路温度数据(各2字节) + 校验和 + 帧尾(0x55)。波特率9600bps,每秒发送一次数据帧。上位机软件解析数据帧后更新显示和曲线。该系统适用于多点温度监控场景,如机房温度监测、冷链运输监控等。
项目属性 | 说明 |
主控平台 | STC89C52 |
开发语言 | C语言 |
开发环境 | Keil C51 / Keil MDK |
仿真工具 | Proteus(部分项目) |
图1-1 系统整体效果图
二、系统总体架构
本系统以单片机为核心,外围连接传感器、显示模块、按键模块和执行机构。系统总体架构如下:单片机通过相应接口与各外设通信,采集传感器数据后进行处理,结果输出至显示模块,同时根据逻辑控制执行机构动作。
图2-1 系统总体架构框图
模块 | 功能描述 |
主控模块 | 系统核心,负责数据采集、逻辑处理和输出控制 |
传感器模块 | 采集环境参数(温度/光照/按键输入等) |
显示模块 | LCD1602/OLED实时显示数据和状态 |
按键模块 | 用户输入,参数调整和模式切换 |
执行机构 | 蜂鸣器/LED/电机等,执行报警和驱动动作 |
三、硬件设计
3.1 核心器件选型
器件 | 型号 | 说明 |
主控芯片 | STC89C52 | 8位51内核 |
温度传感器×4 | DS18B20 | 同一单总线挂载4片 |
串口转换 | MAX232/CH340 | TTL↔RS232/USB转换 |
LCD显示 | LCD1602 | 本地显示温度 |
上位机 | PC软件 | 串口接收、曲线显示 |
图3-1 核心器件实物图
3.2 引脚分配
单片机各引脚分配如下表所示,在设计时需注意引脚复用和电平匹配问题:
引脚 | 连接 | 功能描述 |
P1.0 | DQ | DS18B20单总线(4片) |
P3.0 | RXD | 串口接收 |
P3.1 | TXD | 串口发送 |
P2.5~P2.7 | LCD控制 | LCD1602 |
P0 | LCD数据 | LCD1602 |
图3-2 引脚分配电路原理图
四、软件设计
4.1 软件流程
主循环中依次通过Match ROM寻址4片DS18B20并读取温度,存入4个变量。将4路温度按数据帧格式打包(帧头+数据+校验+帧尾),通过串口发送。同时LCD1602轮流显示4路温度(每2秒切换)。上位机软件接收串口数据,解析后更新数值显示和实时曲线。
图4-1 主程序流程图
4.2 模块划分
源文件 | 模块名称 | 功能描述 |
ds18b20.c | DS18B20驱动 | 4路ROM匹配、温度读取 |
uart.c | 串口驱动 | 串口初始化、发送、数据帧打包 |
lcd1602.c | LCD驱动 | 本地显示 |
main.c | 主程序 | 4路温度采集、串口发送、LCD显示 |
4.3 关键代码
以下代码均从项目工程源文件中直接提取,完整展示了各模块的核心实现:
📄 ds18b20.c




📄 LCD1602.c




📄 lcd1602func.c




五、项目文件结构
项目工程的目录结构如下,展示了源代码文件的组织方式:

六、功能演示
系统功能演示步骤如下:
1. 上电后LCD显示4路温度,每2秒轮换
2. PC端打开上位机软件,选择串口和波特率9600
3. 上位机显示4路温度数值和实时曲线
4. 改变某路传感器温度,曲线相应变化
5. 可导出数据为CSV文件
图6-1 功能演示照片/截图
图6-2 运行状态特写
七、总结
本项目实现了完整的温度采集-传输-显示链路,是物联网温度监控系统的雏形。4路DS18B20的单总线多点寻址是核心技术点,自定义数据帧协议保证了串口通信的可靠性。上位机曲线显示使温度变化趋势一目了然。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
— END —

浙公网安备 33010602011771号