16-51_直流电机PWM调速_仿真

基于51单片机的直流电机PWM调速系统

定时器PWM · 按键调速 · 数码管显示档位 · Proteus仿真

一、项目简介

本项目通过51单片机产生PWM方波控制直流电机转速。定时器产生可调占空比的PWM信号,通过L298N驱动模块控制电机。用户通过按键调节PWM占空比(0~100%),实现10档速度调节。数码管显示当前速度档位。支持正转/反转/停止控制。

项目属性

说明

主控平台

AT89C52(Proteus仿真)

开发语言

C语言

开发环境

Keil C51 / Keil MDK

仿真工具

Proteus(部分项目)

图1-1 系统整体效果图

二、系统总体架构

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

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

模块

功能描述

主控模块

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

传感器模块

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

显示模块

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

按键模块

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

执行机构

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

三、硬件设计

3.1 核心器件选型

器件

型号

说明

主控芯片

AT89C52

Proteus仿真

电机驱动

L298N

H桥驱动直流电机

直流电机

Proteus虚拟

PWM调速

数码管

4位

显示档位

按键

×4

加速/减速/正反转/停止

图3-1 核心器件实物图

3.2 引脚分配

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

引脚

连接

功能描述

P1.0

PWM

PWM输出至L298N ENA

P1.1

IN1

L298N方向控制1

P1.2

IN2

L298N方向控制2

P1.3~P1.6

KEY1~4

调速/方向/停止

P0

数码管段

段选

P2.0~P2.3

数码管位

位选

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

四、软件设计

4.1 软件流程

定时器T0中断中维护PWM计数器,与占空比比较后翻转P1.0输出高低电平。按键调节占空比变量(10档),数码管显示档位。方向按键控制IN1/IN2电平切换正反转。

图4-1 主程序流程图

4.2 模块划分

源文件

模块名称

功能描述

pwm.c

PWM产生

定时器中断产生可调占空比PWM

segdisplay.c

数码管

档位显示

main.c

主程序

按键处理、PWM调节、方向控制

4.3 关键代码

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

📄 main.c

📄 LCD1602.c

📄 Key.c

📄 Timer0.c

五、项目文件结构

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

六、功能演示

系统功能演示步骤如下:

1. 上电后电机低速运转,数码管显示"1"

2. 按加速键,档位递增到5,电机加速

3. 按反转键,电机反向旋转

4. 按停止键,电机停转

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

图6-2 运行状态特写

七、总结

本项目展示了PWM调速的完整方案。定时器中断产生PWM是核心技术,通过调节占空比控制电机平均电压,实现平滑调速。L298N的H桥结构方便地实现了正反转控制。

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

— END —

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