12-51_多路DS18B20温度计_课设

基于51单片机的多路DS18B20温度计——课程设计

多点测温 · ROM搜索 · LCD显示 · 课程设计报告

一、项目简介

本课程设计项目实现了一个多路数字温度计,基于51单片机和DS18B20单总线温度传感器。系统支持挂载多路DS18B20(默认3路),通过ROM搜索算法自动识别总线上所有传感器的ROM地址,无需手动预设地址。温度数据在LCD1602上轮换显示,并支持通过按键切换显示模式。

课程设计要求包括:方案设计、原理图绘制、程序编写、Proteus仿真验证、实物制作、报告撰写。本工程包含完整的源代码、Proteus仿真文件和课程设计报告文档。

项目属性

说明

主控平台

STC89C52

开发语言

C语言

开发环境

Keil C51 / Keil MDK

仿真工具

Proteus(部分项目)

图1-1 系统整体效果图

二、系统总体架构

本系统以单片机为核心,外围连接传感器、显示模块、按键模块和执行机构。系统总体架构如下:单片机通过相应接口与各外设通信,采集传感器数据后进行处理,结果输出至显示模块,同时根据逻辑控制执行机构动作。

图2-1 系统总体架构框图

模块

功能描述

主控模块

系统核心,负责数据采集、逻辑处理和输出控制

传感器模块

采集环境参数(温度/光照/按键输入等)

显示模块

LCD1602/OLED实时显示数据和状态

按键模块

用户输入,参数调整和模式切换

执行机构

蜂鸣器/LED/电机等,执行报警和驱动动作

三、硬件设计

3.1 核心器件选型

器件

型号

说明

主控芯片

STC89C52

8位51内核

温度传感器×3

DS18B20

单总线挂载

液晶显示屏

LCD1602

16×2字符

独立按键

×2

显示切换/阈值设置

图3-1 核心器件实物图

3.2 引脚分配

单片机各引脚分配如下表所示,在设计时需注意引脚复用和电平匹配问题:

引脚

连接

功能描述

P1.0

DQ

DS18B20单总线

P1.1

KEY_MODE

显示模式切换

P1.2

KEY_SET

阈值设置

P2.5~P2.7

LCD控制

LCD1602

P0

LCD数据

LCD1602

图3-2 引脚分配电路原理图

四、软件设计

4.1 软件流程

上电后先执行ROM搜索算法(Search ROM 0xF0),遍历单总线上的所有DS18B20,读取并存储每片传感器的64位ROM地址。然后进入主循环,依次通过Match ROM寻址每片传感器读取温度,LCD轮换显示各路温度值。

图4-1 主程序流程图

4.2 模块划分

源文件

模块名称

功能描述

ds18b20.c

DS18B20驱动

ROM搜索、Match ROM、温度读取

lcd1602.c

LCD驱动

显示

main.c

主程序

多点温度采集、显示切换

4.3 关键代码

以下代码均从项目工程源文件中直接提取,完整展示了各模块的核心实现:

📄 main.c

📄 DS18B20.c

📄 LCD1602.c

📄 Delay.c

五、项目文件结构

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

六、功能演示

系统功能演示步骤如下:

1. 上电后自动搜索总线上的DS18B20数量

2. LCD显示"Found 3 sensors"

3. 轮换显示T1/T2/T3温度值

4. 按模式键切换为同时显示前两路温度

图6-1 功能演示照片/截图

图6-2 运行状态特写

七、总结

本课程设计完整实现了多路DS18B20温度计,ROM搜索算法是核心亮点——自动识别总线设备,无需预知传感器地址,大大提高了系统的通用性。项目涵盖了硬件设计、软件编程、仿真验证和报告撰写的完整流程,是一个优秀的课程设计案例。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

— END —

posted @ 2026-07-21 21:12  Yan_2  阅读(2)  评论(0)    收藏  举报