基于 51 单片机的数字温度计(DS18B20+LCD1602+Proteus 仿真,支持阈值可调声光报警)

前言

最近完成了一个经典的 51 单片机入门项目:数字温度计。这个项目非常适合初学单片机的同学练手,覆盖了单总线时序、LCD 液晶驱动、按键扫描、声光报警等知识点,也是单片机课程设计里高频选题。下面把整个设计思路、硬件电路、功能逻辑和踩坑点分享出来,附带 Proteus 原理图。

一、系统整体方案

本系统主控采用 AT89C51,使用 DS18B20 数字温度传感器采集环境温度,LCD1602 液晶实时显示当前温度与报警阈值;两个独立按键用来增加 / 减小报警阈值;当采集温度超过设定阈值时,触发蜂鸣器 + LED 指示灯声光报警。 整体分为 5 大模块:

  1. 主控最小系统(AT89C51、晶振、复位电路)
  2. DS18B20 温度采集模块(单总线)
  3. LCD1602 液晶显示模块
  4. 阈值调节按键模块
  5. 声光报警模块(PNP 三极管驱动蜂鸣器 + 红色 LED)

二、Proteus 原理图说明

  • 主控电路:AT89C51 最小系统,11.0592MHz 晶振,上电复位 + 手动复位电路。
  • 温度传感器 DS18B20:单总线协议,DQ 引脚接到 P3.7,只需要一根 IO 口就可以完成温度读取,测温范围 -55℃ ~ 125℃,精度 0.1℃。
  • LCD1602 显示屏 :数据口接 P0 口,P0 口上拉排阻 RP1;RS 接 P2.7,EN 接 P2.6,两行显示:第一行展示当前温度Now Tem:XX.X℃,第二行展示报警阈值Thresh:XX.X℃。
  • 按键模块:P1.0 为阈值加按键,P1.1 为阈值减按键,按下可以修改报警温度阈值。
  • 报警模块:P2.0 输出控制信号,PNP 三极管驱动蜂鸣器,同时搭配红色 LED,温度超限之后蜂鸣器响、红灯点亮。

三、实现功能清单

✅ DS18B20 实时采集温度,0.1℃分辨率 ✅ LCD1602 双行显示:实时温度 + 报警阈值 ✅ 两个独立按键,自由上调 / 下调报警阈值 ✅ 温度大于设定阈值,LED 点亮、蜂鸣器鸣叫声光报警 ✅ Proteus 仿真可直接运行,适合课程设计、毕设入门

四、核心原理简述

  1. DS18B20 单总线:严格遵循初始化、写时序、读时序,单片机发送指令启动温度转换,等待转换完成后读取两个字节温度数据,再做数据拼接、正负处理、小数点换算。时序是这个器件最容易踩坑的地方,延时一定要匹配。
  2. LCD1602 驱动 :分为写指令、写数据,先初始化液晶,再定位光标,分段打印字符串和数字。P0 口是开漏输出,必须加上排阻上拉,否则液晶大概率不显示或者乱码。
  3. 按键处理:采用软件消抖,检测按键按下后,延迟消抖再执行阈值增减,防止多次误触发。
  4. 报警逻辑 :每次读取温度后和阈值做对比,当前温度 > 阈值 就开启报警,温度回落之后自动关闭报警。

五、开发环境

  • 代码编译:Keil C51
  • 仿真平台:Proteus 8
  • 编程语言:C 语言

六、常见踩坑记录(重点)

  1. DS18B20 时序不对,读出来固定 85℃:大概率是初始化、读写延时不准,单总线对时序非常敏感。
  2. LCD1602 黑屏 / 乱码:检查 P0 上拉排阻、RS/EN 引脚接线、液晶初始化指令。
  3. 蜂鸣器不响:注意三极管是 PNP 类型,电平逻辑和 NPN 相反,高电平关闭、低电平导通。
  4. 按键抖动,按一次阈值跳好几下:增加软件消抖延时,或者做边沿检测。

七、总结

这个数字温度计是单片机非常经典的综合项目,麻雀虽小五脏俱全。没有复杂外设,但是把 IO 控制、时序通信、人机交互、阈值判断都串起来了,非常适合巩固 51 单片机基础。

通过网盘分享的文件:仿真文件获取.zip

链接: https://pan.baidu.com/s/1V5zzxbpHc_fRqfGIzSdLfg?pwd=6666 提取码: 6666

相关推荐
芝士爱沙拉8 小时前
原生内置agent智能开发能力的MCU IDE-MounRiver Studio
ide·单片机·嵌入式硬件
路上有只喵8 小时前
认识元器件 · 单片机(MCU/MPU/SOC) · 实战篇4
单片机·嵌入式硬件
YYRAN_ZZU8 小时前
FlameGraph 火焰图介绍和使用
linux·嵌入式硬件
小向是个Der8 小时前
嵌入式进阶——编译与链接
汇编·单片机·学习·编译原理·交叉编译
【 STM32开发 】9 小时前
【CubeMX+STM32】SD卡 文件系统读写 FatFs+SDIO+DMA (F103版本)
stm32·单片机·嵌入式硬件·1024程序员节
动词ing9 小时前
【51单片机】独立按键控制LED灯亮灭
单片机·嵌入式硬件·51单片机
Industio_触觉智能10 小时前
瑞芯微工业ADC采集实战-上|AD7616&RK3506 FlexBus高速并行采集落地
嵌入式硬件·硬件架构·硬件工程·adc·瑞芯微·rk3506·flexbus
女神下凡10 小时前
芯参谋(79):嵌入式学习进阶_(硬件与软件)深入实践指南
arm开发·单片机·嵌入式硬件·学习·fpga开发·设计规范
Zhao1368245539110 小时前
AT7456E 中科微电子 OSD图形叠加芯片/发生器芯片 无人机显示开发
嵌入式硬件