- 基于单片机的Boost升压斩波电源电路设计
- 系统功能概述Boost 升压斩波电源是电力电子和自动控制领域中常见的直流变换器结构,可将输入低电压稳定升高至指定电压,应用于便携式设备、电池供电系统、LED 驱动、电动车控制等多种场景。本设计以单片机作为核心控制器,实现输入电压 5V 提升至 20V 范围内任意可调输出电压,并采用按钮设定输出目标电压,通过 LCD 实时显示实际输出电压与设定电压值。
为实现高精度控制,本设计采用 DAC(数字模拟转换器)与 PWM(脉宽调制)协同控制方式,通过实时采集输出电压,与设定目标电压进行比较,再由单片机根据误差调整 PWM 占空比,进而改变 Boost 电感储能时间,最终实现稳定的升压输出。控制系统具备较高的响应速度与抗干扰能力,但由于 Boost 升压电路工作频率高,仿真中会出现卡顿或警告提示,这是仿真软件对于高频电力电子电路计算量大的正常现象,一般不会影响电路结果。
当输出电压越高时,由于电路开关损耗、二极管压降、电感等效电阻等影响,电压误差会增大,大约控制在 ±1V 范围内,属合理误差。同时,为避免仿真崩溃造成项目文件损坏,在仿真前应做好工程备份是非常重要的操作习惯。
- 系统功能详细说明3.1 Boost 升压斩波电路实现 5V-20V 输出
系统采用最经典的 Boost 升压电路,由电感、二极管、高频 MOS 管与储能电容构成,通过控制 MOS 管的导通时间实现输出电压的升高。输入电压固定为 5V,通过调整 PWM 占空比可连续调整输出电压,可达 20V 左右。3.2 按钮设定输出电压
用户可通过独立按键提高或降低设定电压值,单片机内部设定一个目标电压变量,并实时显示在 LCD 上。3.3 LCD 显示当前电压与设定电压
LCD 显示内容包括:- 实时采集输出电压;
- 用户设定的输出电压;
- 占空比变化状态等运行信息。
3.4 DA 转换 + PWM 控制方式
控制策略如下:- 单片机采集输出电压;
- 与目标电压比较求出误差;
- 将误差转换为控制量输出至 DAC;
- DAC 输出电压送入 PWM 控制电路,形成闭环调整;
- PWM 调整 MOS 管占空比,实现升压调节。
3.5 仿真特性与注意事项
- 工作频率高导致仿真卡顿,属于正常现象;
- 仿真出现多个警告,可忽略;
- 输出电压越高误差越大,受开关损耗与电感参数影响;
- 仿真前必须备份工程文件避免丢失。
- 电路设计为实现高效稳定的 5V → 20V 升压功能,本系统主要包括单片机最小系统、按键输入模块、LCD 显示模块、ADC 采样模块、DAC 输出模块、PWM 控制模块以及 Boost 斩波电路模块。
4.1 单片机最小系统模块
单片机作为整个系统的大脑,负责电压采集、控制计算、DAC 输出控制与 PWM 调节。
最小系统包括:4.2 按键输入模块
按键模块用于用户设定输出电压,分为加电压按键、减电压按键及菜单选择按键等:
- 采用独立按键加上上拉电阻;
- 单片机使用按键扫描并进行软件消抖;
- 按键结果用于修改目标电压变量。
4.3 LCD 显示模块
- 显示当前采样电压;
- 显示电压设定值;
- 显示 PWM 占空比;
- 实时体现控制系统状态。
驱动方式可采用 4 线或 I2C 接口,节省 I/O 引脚。
4.4 ADC 电压采样模块
ADC 模块用于读取输出端电压,经分压后输入 MCU ADC 通道:
- 分压比计算确保高电压分压到 MCU 可测范围;
- MCU 将 ADC 值转换为实际电压值;
- 电压采样频率需与 Boost 高频开关动作同步或滤波。
4.5 DAC 输出模块
DAC 输出用于输出控制电压作为 PWM 调节参考量:
- 可采用单片机内置 DAC 模块或外接 DAC(如 MCP4921);
- DAC 输出电压用于调节 PWM 发生器参考;
- 提供平滑模拟电压,适配高频 PWM 控制需求。
4.6 PWM 发生器模块
PWM 由单片机输出:
- 控制 MOSFET 导通时间;
- 调整占空比改变 Boost 电感储能时间;
- 电压误差越大,占空比变化幅度越明显。
PWM 频率通常设置为几十 kHz 以上以满足 Boost 工作需求。
4.7 Boost 升压斩波电路模块
升压电路由以下组成:
工作原理:
- PWM 高电平:MOSFET 导通 → 电感储能;
- PWM 低电平:MOSFET 关断 → 电感释能 → 二极管导通 → 输出电容充电。
Boost 输出电压公式:
Vout = Vin / (1 - D)D 为占空比。
- 程序设计程序采用闭环控制算法,包括采样、计算、DAC 调整与 PWM 调节。以下模块逐一说明。
5.1 主程序结构
void main() { System_Init(); while(1) { Key_Scan(); ADC_ReadVoltage(); Control_Calc(); DAC_Output(); PWM_Update(); LCD_Display(); } }主循环不断采集电压并更新控制输出。
5.2 按键扫描模块
void Key_Scan() { if(Key_Up()) SetVolt += 1; if(Key_Down()) SetVolt -= 1; if(SetVolt > 20) SetVolt = 20; if(SetVolt < 5) SetVolt = 5; }用户可在 5V~20V 之间调整设定电压。
5.3 ADC 电压采集模块
void ADC_ReadVoltage() { adc_val = ADC_Read(); OutVolt = adc_val * 20.0 / 4096; // 根据分压与 ADC 位数换算 }采样值转换为实际输出电压。
5.4 控制算法计算模块
本系统采用简单误差比例调节(P 控制)方式:
void Control_Calc() { error = SetVolt - OutVolt; ctrl = Kp * error; if(ctrl > MAX_CTRL) ctrl = MAX_CTRL; if(ctrl < MIN_CTRL) ctrl = MIN_CTRL; }ctrl 值用于控制 DAC 输出。
5.5 DAC 输出模块
void DAC_Output() { DAC_Write(ctrl); }DAC 输出模拟电压作为 PWM 控制基准。
5.6 PWM 调节模块
void PWM_Update() { PWM_SetDuty(ctrl * duty_scale); }占空比随 DAC 控制量变化。
5.7 LCD 显示模块
void LCD_Display() { LCD_Print("Set:", SetVolt); LCD_Print("Out:", OutVolt); }LCD 实时显示设定与输出电压。
- 总结本设计围绕 Boost 升压斩波结构展开,通过单片机实现电压采集、DAC 输出控制、PWM 调节、按键设定目标电压及 LCD 显示等功能。系统可实现输入 5V 升压至 20V 范围内任意电压,并通过闭环控制提升输出稳定性。虽然仿真中会因高频电路导致卡顿和警告,但不影响电路的总体运行。输出电压因开关损耗与电路特性存在约 1V 的误差范围,属于合理情况。整体设计既有工程实用意义,也具备较好的学习价值,可用于电力电子课程设计、单片机控制实验等多种场景。
175