
前言
最近做完一款经典的 51 单片机课程设计:智能温控风扇调速系统,在 Proteus 中完成全部电路搭建与仿真验证,用 Keil C51 编写程序,实现温度采集、液晶显示、阈值可调、PWM 无级调速、自动 / 手动模式切换,非常适合单片机入门、课程设计、毕设参考。
传统风扇只有固定档位,无法跟随环境温度自动调节转速;这套方案依靠单片机实时读取环境温度,自动匹配风扇转速,温度越高转速越快,温度低于下限则风扇停转,兼顾节能与散热需求。
一、系统整体方案
本系统主控芯片选用 AT89C51,整体硬件模块划分:
- 单片机最小系统:12M 晶振时钟电路 + 上电复位电路
- 温度采集模块:DS18B20 单总线数字温度传感器
- 显示模块:LCD1602 液晶,实时展示当前温度、工作模式、上下限阈值
- 按键模块:3 个独立按键,实现【模式切换、阈值加、阈值减】
- 电机驱动模块:L298N 直流电机驱动芯片,PWM 信号调速
- 观测模块:示波器观测 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 环境开发,主要包含这些底层驱动:
- DS18B20 驱动:初始化、读温度、CRC 校验
- LCD1602 驱动:写命令、写数据、字符串显示
- 按键扫描:独立按键消抖、按键事件识别
- PWM 定时器:定时器中断生成不同占空比方波
- 主循环逻辑:测温 → 屏幕刷新 → 按键检测 → 温度判断 → 更新 PWM 输出
伪逻辑示意:
读取当前温度temp;
if(模式 == AUTO)
{
if(temp < temp_min) PWM占空比=0; //停转
else if(temp < temp_max) PWM占空比=30%; //低速
else PWM占空比=100%; //全速
}
else
{
手动按键直接修改PWM占空比
}
LCD刷新显示;
五、仿真现象与调试要点
- 温度调高超过上限:PWM 占空比变大,示波器高电平变宽,风扇转速明显加快;
- 温度降到上下限区间:风扇低速运行;低于下限,风扇停止;
- 按下加减按键,LCD 上的阈值数字实时变化,控制逻辑同步更新;
- 踩坑提醒:
- 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