基于单片机的Boost升压斩波电源电路

作者:清风666666日期:2025/10/11

基于单片机的Boost升压斩波电源电路设计

点击链接下载资料:https://download.csdn.net/download/m0_51061483/92081480


1. 系统功能概述

本系统以单片机为核心控制单元,设计并实现了一种Boost升压型斩波电源电路。系统能够实现输入5V电压,通过Boost电路升压至可调的20V输出范围。用户可通过按键设置目标输出电压,液晶LCD模块实时显示当前输出电压与设定电压,形成完整的闭环控制系统。

系统采用PWM控制技术与DA(数模转换)调压方式相结合,通过检测实际输出电压并与设定电压进行比较,实现反馈调节。该设计不仅能够保持输出电压的稳定性,还能够在一定程度上克服负载变化或输入波动带来的影响。

本设计具有以下主要功能:

  1. 输出电压可调节:用户可通过按键自由设置目标输出电压,范围为5V至20V之间。
  2. 液晶显示界面:LCD显示当前电压值与目标设定值,便于实时监测。
  3. Boost升压斩波控制:利用PWM调制实现电感储能与释放过程,完成直流电压升压。
  4. 自动反馈调节:通过A/D采样实时检测输出电压,自动调节PWM占空比,实现精确控制。
  5. 仿真安全性:由于Boost电路工作频率较高,为防止仿真文件损坏,建议在运行前进行项目备份。

该系统广泛适用于嵌入式电源管理、电力电子教学实验、可调直流电源设计等领域,为学生与工程师提供了一个良好的实验平台。


2. 系统电路设计

系统整体电路主要由以下几个部分组成:

  • 2.1 单片机最小系统模块
  • 2.2 Boost升压主电路
  • 2.3 电压采样与A/D转换模块
  • 2.4 按键输入控制模块
  • 2.5 LCD显示模块
  • 2.6 DA输出与PWM调制控制模块

以下将对各个模块进行详细说明。


2.1 单片机最小系统模块

系统采用 STC89C52单片机 作为主控核心。该芯片为经典的51系列单片机,具有丰富的IO口资源、硬件定时器和PWM输出能力,能够实现对Boost电路的高频控制。

单片机主要负责以下任务:

  • 采集电压传感器反馈信号;
  • 根据目标电压与实际电压的误差,动态计算PWM占空比;
  • 通过DA模块或PWM输出控制MOSFET的导通时间;
  • 驱动LCD显示模块;
  • 接收按键信号并更新设定参数。

为确保系统可靠运行,单片机最小系统包含晶振电路、复位电路、电源滤波电路等,确保在高频斩波状态下仍具备抗干扰能力。


2.2 Boost升压主电路

Boost升压电路是系统的核心功率部分,其原理是通过电感储能与释放实现直流电压升高。

工作原理如下:

  1. 当PWM信号控制MOSFET导通时,电感开始储能,电流逐渐增大;
  2. 当MOSFET关断时,电感中的电流无法立即消失,能量通过二极管释放到负载侧,从而实现电压叠加;
  3. 通过调节MOSFET导通时间(即PWM占空比),可改变电感充能时间,从而控制输出电压大小。

主要组成元件包括:

  • L:Boost升压电感,用于储能;
  • D:肖特基二极管,用于防止能量回流;
  • C:输出滤波电容,平滑电压;
  • MOSFET:主功率开关器件,由单片机PWM信号驱动;
  • 电流检测电阻:可用于电流监测,防止过流。

Boost电路的输出电压理论公式为:

[
V_{out} = \frac{V_{in}}{1 - D}
]

其中,D为PWM信号占空比。占空比越大,输出电压越高。


2.3 电压采样与A/D转换模块

为了实现闭环控制,系统需要实时检测输出电压。通过一个电阻分压电路将输出电压降低至单片机可采样范围(0~5V),然后输入至A/D转换接口。

单片机内部或外接的A/D转换模块(如PCF8591)将模拟电压信号转换为数字信号。采样结果用于与用户设定值进行比较,以调整PWM输出。

采样公式为:

[
V_{real} = \frac{ADC_value}{255} \times 5 \times 分压比
]

系统通过连续采样与滤波算法,减少采样误差与电磁干扰影响。


2.4 按键输入控制模块

按键模块用于用户输入控制命令,包括:

  • 增加电压设定值;
  • 减少电压设定值;
  • 模式切换(如自动/手动);
  • 系统复位。

按键信号通过单片机IO口采集,采用软件消抖算法处理,防止机械抖动导致的误触发。


2.5 LCD显示模块

系统选用 1602 或 12864 液晶显示模块,用于实时显示系统工作状态。显示内容包括:

  • 当前输出电压;
  • 目标设定电压;
  • PWM占空比;
  • 工作模式(自动调节/手动调节)。

LCD模块通过并行或串行接口与单片机通信。显示内容实时更新,方便用户了解电源状态。


2.6 DA输出与PWM调制模块

在本系统中,PWM波形用于控制MOSFET的导通时间,而DA模块(或PWM滤波后信号)用于调整基准电压或辅助调压。

PWM输出频率设置在几十kHz以上,以确保输出波纹较小、响应速度快。通过调节占空比,单片机动态控制输出电压稳定在设定值附近。

部分系统采用DA+PWM混合控制方式,即:

  • DA控制输出基准;
  • PWM负责主功率调节。

这种方式可提升系统线性度与控制精度。


3. 系统程序设计

系统软件采用模块化设计思想,主要包括:

  • 主程序模块
  • 电压采样模块
  • PWM控制模块
  • 按键输入模块
  • LCD显示模块
  • 闭环调节算法模块

以下将对各部分程序逻辑进行详细说明。


3.1 主程序模块

主程序负责系统的初始化与主循环控制。程序启动后完成时钟、LCD、按键及PWM初始化,并进入循环任务,实现数据采样、判断与控制输出。

示例代码如下:

1#include <reg52.h>
2#include "lcd.h"
3#include "adc.h"
4#include "pwm.h"
5#include "key.h"
6
7float Vset = 12.0;
8float Vout = 0.0;
9
10void main()
11{
12    LCD_Init();
13    ADC_Init();
14    PWM_Init();
15    Key_Init();
16    
17    while(1)
18    {
19        Vout = ADC_Read();     // 采样当前电压
20        Key_Scan();            // 检测按键输入
21        Control_PWM(Vset, Vout);  // 调整PWM占空比
22        LCD_Show(Vset, Vout);  // 显示电压信息
23    }
24}
25

该主循环逻辑简洁明了,确保系统在实时采样与输出控制间形成稳定闭环。


3.2 电压采样模块

电压采样模块通过A/D转换获取输出电压数据,并进行数值滤波处理,以减小干扰误差。

1float ADC_Read()
2{
3    unsigned char val = Read_ADC(0);
4    float voltage = (val / 255.0) * 5.0 * 4.0; // 分压比为4
5    return voltage;
6}
7

此外,可采用移动平均法或中值滤波法优化采样精度。


3.3 PWM控制模块

PWM模块通过定时器实现可调占空比信号输出,用于驱动MOSFET。

1void Control_PWM(float Vset, float Vout)
2{
3    float error = Vset - Vout;
4    static float duty = 0.5;
5    
6    duty += 0.01 * error; // 比例调节
7    if(duty > 0.95) duty = 0.95;
8    if(duty < 0.05) duty = 0.05;
9    
10    Set_PWM_Duty(duty);
11}
12

该算法为比例调节(P控制),可扩展为PID算法以增强控制稳定性与响应速度。


3.4 按键输入模块

按键模块主要用于用户输入目标电压设定。为防止抖动,采用软件延时消抖方式。

1void Key_Scan()
2{
3    if(Key_Up_Pressed())
4        Vset += 0.5;
5    if(Key_Down_Pressed())
6        Vset -= 0.5;
7    if(Vset > 20) Vset = 20;
8    if(Vset < 5)  Vset = 5;
9}
10

3.5 LCD显示模块

LCD显示模块周期性更新显示内容,实时显示系统工作参数。

1void LCD_Show(float Vset, float Vout)
2{
3    LCD_SetCursor(0,0);
4    LCD_Print("Set: ");
5    LCD_PrintFloat(Vset);
6    
7    LCD_SetCursor(1,0);
8    LCD_Print("Out: ");
9    LCD_PrintFloat(Vout);
10}
11

该模块增强了系统的交互性与可视化特征,使得用户能够直观了解系统运行状态。


3.6 闭环调节算法模块

系统采用PWM闭环反馈控制。通过比较设定电压与实际输出电压,实现误差调节。为提高稳定性,控制算法中可引入积分项:

1void PID_Control(float set, float out)
2{
3    static float error_last = 0;
4    static float integral = 0;
5    float error = set - out;
6    float kp = 0.1, ki = 0.01;
7    
8    integral += error;
9    float duty = kp*error + ki*integral;
10    Set_PWM_Duty(duty);
11    error_last = error;
12}
13

PID算法能有效改善稳态误差与动态响应,使系统输出更加平稳。


4. 系统特点与总结

该基于单片机的Boost升压斩波电源电路,集成了PWM高频控制、实时电压采样、LCD可视化显示、按键交互调节等多项功能,系统设计完整、结构合理。通过软硬件协同设计,实现了从信号采集到输出调节的全闭环控制。

系统具有以下特点:

  1. 升压稳定性高:通过闭环反馈控制,有效抑制电压波动;
  2. 操作简便:按键设定目标电压,LCD实时显示;
  3. 可靠性强:具备过压与过流监测机制;
  4. 控制精度高:PWM调节分辨率高,适应不同负载;
  5. 扩展性好:可通过修改程序实现自动电压扫描、软启动等功能。

整体而言,本设计充分体现了单片机在电力电子控制领域的灵活性与高效性,为学习与研究Boost电路控制原理提供了良好的参考与实验平台。


基于单片机的Boost升压斩波电源电路》 是转载文章,点击查看原文


相关推荐


从入门到实战:全面解析Protobuf的安装配置、语法规范与高级应用——手把手教你用Protobuf实现高效数据序列化与跨语言通信
羑悻的小杀马特.2025/10/9

文章目录 本篇摘要一.`Protocol Buffers(Protobuf)`简介1. **核心定义**2. **核心作用**3. **对比优势**4. **使用关键点**总结 二.`基于windows及ubuntu22.04安装Protobuf``windows`ubuntu22.04 三.快速上手protobuf编写及测试规范说明编译命令编译生成结果 四.proto3语法解析之字段规则与消息定义五. `Protobuf 命令行decode操作`六.仓库链接七.本篇


cygwin + redis
欧的曼2025/10/8

1. 下载 Redis 源码 推荐安装稳定版(如 Redis 7.0.12,可从 Redis 官网下载页 获取最新稳定版链接): wget https://download.redis.io/releases/redis-7.0.12.tar.gz 2. 解压并进入源码目录 3. 编译 Redis(关键步骤) 找到Cygwin安装目录下的usr\include\dlfcn.h文件,修改如下代码,将#if __GNU_VISIBLE、#endif 这两行注释掉。(使用// 或 /


【OpenCV】图像处理入门:从基础到实战技巧
朋鱼燕2025/10/6

目录 1.对图像的基本理解 2.数据读取-图像 ​编辑 3.数据读取-视频 4.ROI区域 1.对图像的基本理解 图像是由一个个像素点组成的,RGB图像有三个通道,而灰度图像只有一个通道 RGB每个通道的像素点的值的范围是0-255,数值越大,对应该颜色通道的亮度越亮 2.数据读取-图像 在文件的路径下读取一张图像,不能包含中文 opencv的读取格式是BGR cv2.waitKey(0)按下任意键才关闭图像,换成1000的话是显示1000


【Docker】说说卷挂载与绑定挂载
你的人类朋友2025/10/5

前言 我最开始接触 Docker 的时候,遇到 mysql 这样的容器,我一般使用卷挂载。它的好处就是将挂载的位置交给 Docker 管理,我们规定卷的名字即可,不需要关心挂载的位置。我感觉这样很方便,所以后面我基本一遇到挂载就用卷挂载。 但是最近,我慢慢地开始喜欢上绑定挂载了。特别是要部署一个什么环境之类的【如 n8n、redis】,都会优先使用绑定挂载。这个挂载方式会让我更有一种掌控感。 今天就来总结这两种挂载方式的相关知识。 正文 一、什么是 Docker 数据挂载? 在 Docker 中


基于LazyLLM多Agent大模型应用的开发框架,搭建本地大模型AI工具,你贴身的写作、论文小助手
xcLeigh2025/10/4

在搭建本地大模型作为写作、论文小助手时,开发者常面临诸多技术难题:模型部署需研究复杂 API 服务,微调模型要应对框架选择与模型切换的困扰,工具落地还需掌握 Web 开发技能,这让初级开发者望而却步,资深专家也需为适配需求、集成新工具耗费大量精力。而 LazyLLM 多 Agent 大模型应用开发框架可有效解决这些问题,它打包了应用搭建、数据准备、模型部署、微调、评测等全环节工具。初级开发者借助预置组件即可打造有生产价值的 AI 工具,资深专家能依托其模块化设计集成自有算法与前沿工具,助力不同水


自存19-48
北慕阳2025/10/2

19-菜单管理添加弹窗显示 <template> <button @click="dialogFormVisable = true ">打开</button> <el-dialog v-model="dialogFormVisable" :before-close="beforeClose" title="添加权限" width="500" > <el-form


🔥 连八股文都不懂还指望在前端混下去么
Gaby2025/10/2

废话只说一句:码字不易求个👍,收藏 === 学会,快行动起来吧!🙇‍🙇‍🙇‍。2024.03.04 由于篇幅限制更详细的内容已更新到 ☞ 我的 GitHub 上,有纠正错误和需要补充的小伙伴可以在这里留言,我会及时更新上去的。推荐个API管理神器 Apipost 用过的都知道好使 1. HTTP 和 HTTPS 1.http 和 https 的基本概念 http: 是一个客户端和服务器端请求和应答的标准(TCP),用于从 WWW 服务器传输超文本到本地浏览器的超文本传输协议。 http


学习日报 20250923|MQ (Kafka)面试深度复盘
靈臺清明2025/10/2

MQ 面试深度复盘:从实战经验到底层设计全解析 在分布式系统架构面试中,消息队列(MQ)是考察候选人技术深度与实战经验的核心模块之一。本文基于真实面试场景,从 MQ 的实际应用、核心价值、产品选型、故障排查到架构设计,进行全面复盘总结,既适合面试备考记忆,也可作为技术文章发布,帮助更多开发者梳理 MQ 知识体系。 一、基础认知:你真的懂 MQ 的 “用武之地” 吗? 面试中,面试官往往从 “是否用过 MQ” 切入,逐步深入到 “为什么用”,核心是考察候选人对 MQ 核心价值的理解是否停留在


桌面预测类开发,桌面%性别,姓名预测%系统开发,基于python,scikit-learn机器学习算法(sklearn)实现,分类算法,CSV无数据库
合作小小程序员小小店10/1/2025

这一个也是和信号识别的那个项目demo一样。桌面很常用的开发框架tkinter,在没有pyqt之前一直用着,帮客户修改一下代码。人工智能应用开发套路还是一样,从csv获取数据集,进行数据集清洗去重等操作,完成数据清洗就可以构造模型进行模型fit了,最后模型预测评估调优。


常见开发语言在 Windows 上的默认编码格式
十启树9/30/2025

字符串是字节流,输出编码取决于手动设置(如 header 或 mb_* 函数)

首页编辑器站点地图

Copyright © 2025 聚合阅读

License: CC BY-SA 4.0