05-51_单总线DS18B20测温_仿真
基于51单片机的单总线DS18B20温度测量系统(Proteus仿真)
Proteus仿真 · 单总线通信 · LCD1602显示
一、项目简介
本项目是一个基于Proteus仿真的51单片机温度测量系统,使用DS18B20数字温度传感器采集温度,并通过LCD1602液晶屏实时显示。整个系统在Proteus中搭建电路并运行仿真,无需实际硬件即可验证程序功能。
Proteus仿真环境提供了虚拟示波器、逻辑分析仪等调试工具,方便观察单总线时序。DS18B20在Proteus中可设置温度值,便于测试不同温度场景下的程序响应。本项目适合学习和验证DS18B20单总线通信协议,以及51单片机驱动开发。
项目属性 | 说明 |
主控平台 | STC89C52(Proteus仿真) |
开发语言 | C语言 |
开发环境 | Keil C51 / Keil MDK |
仿真工具 | Proteus(部分项目) |
图1-1 系统整体效果图
二、系统总体架构
本系统以单片机为核心,外围连接传感器、显示模块、按键模块和执行机构。系统总体架构如下:单片机通过相应接口与各外设通信,采集传感器数据后进行处理,结果输出至显示模块,同时根据逻辑控制执行机构动作。
图2-1 系统总体架构框图
模块 | 功能描述 |
主控模块 | 系统核心,负责数据采集、逻辑处理和输出控制 |
传感器模块 | 采集环境参数(温度/光照/按键输入等) |
显示模块 | LCD1602/OLED实时显示数据和状态 |
按键模块 | 用户输入,参数调整和模式切换 |
执行机构 | 蜂鸣器/LED/电机等,执行报警和驱动动作 |
三、硬件设计
3.1 核心器件选型
器件 | 型号 | 说明 |
主控芯片 | AT89C52 | Proteus虚拟元件 |
温度传感器 | DS18B20 | Proteus虚拟元件,可设定温度 |
液晶显示屏 | LM016L | Proteus LCD1602模型 |
晶振电路 | 12MHz | Proteus虚拟晶振 |
图3-1 核心器件实物图
3.2 引脚分配
单片机各引脚分配如下表所示,在设计时需注意引脚复用和电平匹配问题:
引脚 | 连接 | 功能描述 |
P1.0 | DQ | DS18B20单总线 |
P2.5~P2.7 | LCD_RS/RW/EN | LCD控制 |
P0 | LCD_D0~D7 | LCD数据 |
图3-2 引脚分配电路原理图
四、软件设计
4.1 软件流程
系统初始化LCD后进入主循环。每次循环:发送复位脉冲→跳过ROM(0xCC)→启动温度转换(0x44)→等待750ms→再次复位→跳过ROM→读取暂存器(0xBE)→读取2字节温度数据→处理为十进制→LCD显示。
图4-1 主程序流程图
4.2 模块划分
源文件 | 模块名称 | 功能描述 |
ds18b20.c | DS18B20驱动 | 复位、写命令、读数据、温度处理 |
lcd1602.c | LCD驱动 | 字符显示 |
main.c | 主程序 | 温度采集与显示 |
4.3 关键代码
以下代码均从项目工程源文件中直接提取,完整展示了各模块的核心实现:
📄 main.c




📄 DS18B20.c



📄 LCD1602.c




📄 Delay.c

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

六、功能演示
系统功能演示步骤如下:
1. 在Proteus中加载HEX文件并运行仿真
2. 调整DS18B20元件的温度设定值
3. LCD1602实时显示对应温度值
4. 可用虚拟示波器观察P1.0单总线时序波形
图6-1 功能演示照片/截图
图6-2 运行状态特写
七、总结
本项目通过Proteus仿真验证了DS18B20温度测量系统的功能。仿真环境省去了硬件搭建的繁琐,适合学习和调试阶段使用。程序经验证后可直接烧录到实物开发板上运行。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
— END —

浙公网安备 33010602011771号