Proteus仿真51单片机的智能温控风扇调速系统设计(仿真图+程序)

前言

最近做完一款经典的 51 单片机课程设计:智能温控风扇调速系统,在 Proteus 中完成全部电路搭建与仿真验证,用 Keil C51 编写程序,实现温度采集、液晶显示、阈值可调、PWM 无级调速、自动 / 手动模式切换,非常适合单片机入门、课程设计、毕设参考。

传统风扇只有固定档位,无法跟随环境温度自动调节转速;这套方案依靠单片机实时读取环境温度,自动匹配风扇转速,温度越高转速越快,温度低于下限则风扇停转,兼顾节能与散热需求。

一、系统整体方案

本系统主控芯片选用 AT89C51,整体硬件模块划分:

  1. 单片机最小系统:12M 晶振时钟电路 + 上电复位电路
  2. 温度采集模块:DS18B20 单总线数字温度传感器
  3. 显示模块:LCD1602 液晶,实时展示当前温度、工作模式、上下限阈值
  4. 按键模块:3 个独立按键,实现【模式切换、阈值加、阈值减】
  5. 电机驱动模块:L298N 直流电机驱动芯片,PWM 信号调速
  6. 观测模块:示波器观测 PWM 输出波形,直观查看占空比变化

工作逻辑:DS18B20 采集环境温度传给单片机,单片机对比温度上下限阈值,输出不同占空比 PWM 信号给 L298N,控制风扇转速;用户可以随时按键修改阈值、切换自动 / 手动模式,所有信息在 LCD1602 上刷新显示。

二、硬件电路说明(对照原理图讲解)

1. AT89C51 最小系统

  • 时钟电路:12MHz 晶振,搭配 2 个 30pF 瓷片电容,为单片机提供系统时钟;
  • 复位电路:RC 上电复位 + 手动按键复位,系统上电自动复位,调试时可手动复位。

2. DS18B20 温度传感器

单总线数字温度传感器,只需要一根 IO 口即可通信,精度 0.5℃,电路简单,不用外围 AD 转换,非常适合 51 单片机测温项目,图中接到 P3.7 引脚。

3. LCD1602 液晶显示电路

P0 口作为数据口,P2.0、P2.1、P2.2 控制 RS、RW、EN 引脚;P0 口接上拉排阻 RESPACK-8。 屏幕显示格式示例:

复制代码
Now Tem:038.0℃
AUT  40  30

含义:当前温度 38℃,自动模式,上限阈值 40℃,下限阈值 30℃。

4. 按键电路

3 个独立按键接入 P1 口:

  • 模式切换键:切换自动 AUTO / 手动模式
  • 阈值 +:上调温度上限 / 下限
  • 阈值 -:下调温度上限 / 下限

5. L298N 电机驱动与风扇电路

L298N 是常用直流电机驱动芯片,IN1、IN2 控制转向,ENA 引脚接收 PWM 信号调速;并联续流二极管 1N4003,吸收电机反向电动势,保护驱动芯片和单片机 IO 口;P2.2 输出 PWM 波,同时接示波器观测波形。

PWM 原理:通过快速开关电平,改变高电平占空比,平均电压变化,从而控制风扇转速;温度越高,PWM 占空比越大,风扇转速越快。

三、系统功能介绍

✅ 实时温度采集,LCD1602 实时刷新温度 ✅ 支持自动模式 (AUTO):

  • T < 下限阈值:风扇停止
  • 下限 ≤ T ≤ 上限:风扇低速转动(低占空比 PWM)
  • T > 上限阈值:风扇高速转动(高占空比 PWM) ✅ 按键自定义修改温度上下限阈值 ✅ 模式切换:自动温控 / 手动调速 ✅ 示波器可实时观测 PWM 输出波形,验证调速效果 ✅ 仿真稳定,无复杂外设,入门友好,适合课程设计提交

四、软件设计思路(C 语言框架)

程序在 Keil C51 环境开发,主要包含这些底层驱动:

  1. DS18B20 驱动:初始化、读温度、CRC 校验
  2. LCD1602 驱动:写命令、写数据、字符串显示
  3. 按键扫描:独立按键消抖、按键事件识别
  4. PWM 定时器:定时器中断生成不同占空比方波
  5. 主循环逻辑:测温 → 屏幕刷新 → 按键检测 → 温度判断 → 更新 PWM 输出

伪逻辑示意:

复制代码
读取当前温度temp;
if(模式 == AUTO)
{
    if(temp < temp_min)  PWM占空比=0; //停转
    else if(temp < temp_max) PWM占空比=30%; //低速
    else  PWM占空比=100%; //全速
}
else
{
    手动按键直接修改PWM占空比
}
LCD刷新显示;

五、仿真现象与调试要点

  1. 温度调高超过上限:PWM 占空比变大,示波器高电平变宽,风扇转速明显加快;
  2. 温度降到上下限区间:风扇低速运行;低于下限,风扇停止;
  3. 按下加减按键,LCD 上的阈值数字实时变化,控制逻辑同步更新;
  4. 踩坑提醒:
    • P0 口必须加上拉电阻,否则 LCD1602 无法正常显示;
    • DS18B20 时序严格,延时不准容易读不出温度;
    • L298N 驱动电机,务必加续流二极管,防止仿真报错、硬件烧坏;
    • 51 单片机软件 PWM 容易占用 CPU,中断方式生成 PWM 更流畅。

六、拓展方向(想升级的可以参考)

  • 增加蜂鸣器高温报警;
  • 增加人体红外检测,无人自动关闭风扇;
  • 换成 STC89C52,定时器硬件 PWM,降低 CPU 占用;
  • 加入蓝牙 / WiFi 模块,手机 APP 远程看温度、控制风扇;
  • 增加 EEPROM,掉电保存用户设置的温度阈值。

七、总结

这是一个非常经典的 51 入门综合项目,覆盖了单总线通信、液晶驱动、按键消抖、定时器中断、PWM 调速、电机驱动等多个核心知识点,Proteus 仿真可以不用实物就能验证整体逻辑,作为单片机课程设计、期末大作业、毕业设计基础版本都很合适。

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

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

相关推荐
youcans_3 小时前
【嵌入式软件AI编程】22. STM32 基础实验:GPIO外部中断
stm32·单片机·嵌入式硬件·ai编程·claude
未来_攻城狮3 小时前
STM32F407VGT6 芯片详解:高性能 Cortex-M4 MCU 入门指南
stm32·单片机·嵌入式硬件
xcLeigh3 小时前
FreeRTOS实战:用STM32+SEGGER打造工业级实时嵌入式系统
人工智能·stm32·单片机·嵌入式硬件·ai
路上有只喵3 小时前
认识元器件 · 单片机(MCU/MPU/SOC) · 实战篇1
单片机·嵌入式硬件
芯岭技术郦3 小时前
XL4460 FSK 无线透传模组
stm32·单片机·嵌入式硬件
半导体憨包4 小时前
共源共栅(Cascode)功率器件:让 SiC / GaN “兼容“你的硅栅驱动
嵌入式硬件·生成对抗网络·硬件工程·半导体·dc-dc·半导体芯片
天空'之城4 小时前
单片机基础核心知识点汇总(五十)
单片机·嵌入式硬件
硅基造物主4 小时前
STM32 从 0 到 1 做智能家居(十):串口与 printf 重定向
stm32·单片机·智能家居·usart·中断
新晨单片机设计7 小时前
S033A-基于STM32单片机拼图游戏机【Proteus仿真+Keil程序+原理图】
stm32·单片机·嵌入式硬件·拼图游戏机