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

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

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


1. 系统功能介绍

本系统的设计目标是基于单片机实现一个具有自动稳压和可调输出能力的 Boost 升压斩波电源 ,能够在输入电压为 5V 的情况下实现 5V~20V 范围内的可调输出。系统通过单片机实时监测输出电压,并根据预设目标电压进行闭环调节,使得输出电压稳定在用户设定值附近。系统具备良好的电压调节精度与动态响应能力,适用于便携式设备供电、教学实验、电源技术研究等领域。

系统的主要功能包括:

  1. 升压调节功能:通过Boost升压电路实现从5V至20V范围内的可控输出。
  2. 按键电压设置功能:通过按键实现目标电压设定,用户可灵活设定所需输出电压。
  3. LCD实时显示功能:通过LCD1602液晶模块实时显示当前输出电压与目标设定电压。
  4. 闭环控制功能:系统实时采样输出电压,与设定电压进行比较后,通过PWM控制占空比,实现动态稳压。
  5. 安全保护机制:系统可检测电压异常状态,并在过压时降低PWM占空比,防止电源损坏。

整个系统以单片机为控制核心,采用数模转换(DA)与PWM调制相结合的控制方式,利用反馈调节实现输出电压的精准控制。


2. 系统电路设计

系统的总体电路主要由以下部分组成:

  1. 单片机最小系统电路
  2. Boost升压斩波电路
  3. 电压采样与反馈电路
  4. 按键设置电路
  5. LCD显示电路
  6. DA/PWM控制模块

2.1 单片机最小系统电路

系统选用 STC89C52 单片机 作为主控芯片。该单片机内部集成 8 位CPU、丰富的I/O口、PWM输出接口、定时器与中断系统,能够满足系统实时控制与数据处理的要求。最小系统包括晶振电路、复位电路和电源电路三部分。

  • 晶振电路 提供系统时钟信号,常选用12MHz晶振配合两个30pF电容,以保证单片机运行稳定。
  • 复位电路 由电阻、电容和按键组成,实现上电复位与手动复位功能。
  • 电源部分 采用7805稳压芯片将输入电压稳定为5V,为单片机及外围电路供电。

该电路的核心任务是为整个系统提供稳定的逻辑控制与信号处理支持。


2.2 Boost升压斩波电路

Boost升压电路是本系统的核心模块,其基本原理是通过电感储能与二极管续流实现输入电压的升高。该电路由以下元件构成:

  • 电感 L:用于储能,通常取值为100μH~220μH;
  • 功率MOSFET管 Q:作为斩波开关器件,由单片机PWM信号驱动;
  • 二极管 D:用于防止电感放电时电流回流;
  • 输出滤波电容 C:用于平滑输出电压;
  • 负载电阻 RL:模拟实际负载。

工作原理如下:

当MOSFET导通时,电感储能,电流逐渐增加;当MOSFET关闭时,电感释放能量并通过二极管对输出电容和负载供电,从而使输出电压高于输入电压。

通过调节MOSFET的PWM占空比,可以控制输出电压的大小。


2.3 电压采样与反馈电路

为了实现闭环控制,系统需要实时获取输出电压。输出电压一般高于单片机的可测量范围(5V),因此必须通过 分压电阻网络 将电压信号降低后输入至单片机ADC通道。

分压电路由两个高精度电阻构成,按照电压比计算分压系数:

V_{in} = \\frac{R2}{R1+R2} \\times V_{out}

单片机通过采集电压信号与设定电压进行比较,然后根据偏差调整PWM占空比,实现稳压控制。


2.4 按键设置电路

按键模块用于用户输入目标电压值。通常设计为三个按键:

  • "+"键:增加目标电压;
  • "-"键:减小目标电压;
  • "确认键":确认设定值。

按键采用下拉电阻防抖设计,单片机定时扫描按键状态。当用户调整电压后,单片机更新目标值,并在LCD上显示设定电压。


2.5 LCD显示电路

系统采用 LCD1602 液晶模块 作为显示设备,显示内容包括:

  • 当前输出电压值
  • 用户设定目标电压值

LCD1602 通过并行方式与单片机连接,RS、RW、E控制信号及数据线D0-D7分别对应单片机I/O口。

在程序初始化阶段,单片机对LCD进行模式设定与光标清屏操作,然后定时更新显示内容。


2.6 DA与PWM控制模块

系统的电压控制核心为 PWM调制信号。单片机根据采样电压与设定电压之间的误差,计算出对应的PWM占空比,输出至MOSFET控制端。

在部分设计中,可使用 PCF8591 数模转换芯片 辅助实现模拟控制信号输出。PCF8591通过I²C接口与单片机通信,能够输出与设定电压成比例的模拟信号,用于实现更精细的电压调节控制。

若系统仅采用PWM调制,则PWM信号经RC滤波网络可平滑为模拟电压,用于调节MOS管栅极电压。


3. 程序设计

系统软件采用模块化设计思路,主要由以下部分组成:

  1. 主程序模块
  2. LCD显示模块
  3. 按键处理模块
  4. 电压采样模块
  5. PWM控制模块
  6. 闭环调节算法模块

整个程序运行流程为:系统初始化 → 设定目标电压 → 启动Boost升压 → 实时检测输出电压 → 动态调整PWM占空比 → 更新LCD显示。


3.1 主程序设计

主程序负责系统的初始化与循环控制逻辑。其核心是实现电压检测与PWM调整的闭环控制。

c 复制代码
#include <reg52.h>
#include "lcd1602.h"
#include "pcf8591.h"
#include "key.h"

float set_voltage = 12.0;
float real_voltage = 0.0;

void main()
{
    LCD_Init();
    ADC_Init();
    PWM_Init();
    Key_Init();
    
    LCD_ShowString(0, 0, "Boost DC Supply");
    
    while(1)
    {
        real_voltage = Read_ADC();
        LCD_ShowVoltage(set_voltage, real_voltage);
        set_voltage = Key_Scan(set_voltage);
        PWM_Control(set_voltage, real_voltage);
    }
}

该部分通过循环检测与模块函数调用实现系统主控逻辑。


3.2 LCD显示模块

LCD模块负责显示当前输出电压与设定电压,便于用户实时监控系统状态。

c 复制代码
void LCD_ShowVoltage(float set_v, float real_v)
{
    LCD_SetCursor(0, 1);
    LCD_Printf("SET:%.2fV", set_v);
    LCD_SetCursor(0, 2);
    LCD_Printf("OUT:%.2fV", real_v);
}

该函数通过浮点格式化输出,确保数据显示精确直观。


3.3 按键设置模块

按键模块用于调节目标电压,系统支持步进调整功能。

c 复制代码
float Key_Scan(float voltage)
{
    if(Key_Press(KEY_UP))
        voltage += 0.5;
    if(Key_Press(KEY_DOWN))
        voltage -= 0.5;
    if(voltage < 5.0) voltage = 5.0;
    if(voltage > 20.0) voltage = 20.0;
    return voltage;
}

通过条件判断实现防止目标电压越界,保持输出安全稳定。


3.4 电压采样模块

系统采用PCF8591的ADC功能或单片机内置ADC通道采集电压信号。

c 复制代码
float Read_ADC()
{
    unsigned char ad_value = PCF8591_Read(0x00);
    return ad_value * (20.0 / 255.0);
}

该函数实现了从AD采样值到实际电压的线性转换,保证电压反馈精度。


3.5 PWM控制模块

PWM模块根据电压偏差计算输出占空比,实现升压控制。

c 复制代码
void PWM_Control(float set_v, float real_v)
{
    float error = set_v - real_v;
    unsigned char duty;
    
    if(error > 0.1)
        duty += 5;
    else if(error < -0.1)
        duty -= 5;

    if(duty > 100) duty = 100;
    if(duty < 0) duty = 0;

    Set_PWM_Duty(duty);
}

该算法采用比例调节方式(P控制),实时调整占空比以稳定输出电压。


3.6 闭环控制算法模块

为了进一步提升稳压性能,系统可引入 PI控制算法,实现更平滑的输出。

c 复制代码
void PWM_PI_Control(float set_v, float real_v)
{
    static float integral = 0;
    float error = set_v - real_v;
    integral += error * 0.05;
    float duty = 10 * error + 2 * integral;
    if(duty > 100) duty = 100;
    if(duty < 0) duty = 0;
    Set_PWM_Duty((unsigned char)duty);
}

PI算法在调节中同时考虑误差与误差累积,提高稳态精度并减少振荡。


4. 总结

本系统基于51单片机设计实现了一个具有 可调电压输出 的Boost升压斩波电源。通过PWM控制与电压反馈闭环调节,使输出电压能够在5V~20V范围内灵活调整。系统实现了按键电压设定、LCD电压显示、DA数模输出与高频Boost升压等多项功能。

设计中充分利用了数字控制系统的实时性与灵活性,结合模拟电路的功率调节特性,使系统具备良好的稳压性能和应用扩展性。该设计不仅可用于电源类教学实验,也可作为小型可编程电源的原型系统。

相关推荐
清风6666668 小时前
基于单片机的蓝牙可调PWM波形发生器设计
单片机·嵌入式硬件·mongodb·毕业设计·课程设计
小莞尔8 小时前
【51单片机】【protues仿真】基于51单片机汽车智能灯光控制系统
c语言·单片机·嵌入式硬件·汽车·51单片机
电子科技圈10 小时前
芯科科技第三代无线SoC现已全面供货
嵌入式硬件·mcu·物联网·网络安全·智能家居·智能硬件·iot
zm10 小时前
数据结构整理
单片机·嵌入式硬件
爱吃汽的小橘11 小时前
异步串口通信和逻辑分析仪
运维·服务器·网络·单片机·嵌入式硬件·fpga开发
m0_5557629011 小时前
伺服滑差补偿方案
单片机
IT学长编程11 小时前
计算机毕业设计 基于k-means的校园美食推荐系统 Python 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试】
大数据·python·毕业设计·kmeans·课程设计·毕业论文·美食推荐系统
猫头虎11 小时前
HAMi 2.7.0 发布:全面拓展异构芯片支持,优化GPU资源调度与智能管理
嵌入式硬件·算法·prompt·aigc·embedding·gpu算力·ai-native
沐欣工作室_lvyiyi12 小时前
基于单片机的智能家居窗帘控制系统设计(论文+源码)
单片机·嵌入式硬件·毕业设计·智能家居·智能窗帘