news 2026/6/11 20:02:52

基于单片机的两路PWM信号输出及频率占空比相位差调节系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于单片机的两路PWM信号输出及频率占空比相位差调节系统

1. 系统概述

点击链接下载protues仿真设计资料:https://download.csdn.net/download/m0_51061483/92081465

基于单片机的两路PWM信号输出及频率占空比相位差调节系统是一种面向数字信号控制与嵌入式信号生成应用的实验与工程平台。PWM(Pulse Width Modulation,脉宽调制)技术在电机控制、电源调节、信号模拟以及通信系统中具有广泛应用。本系统以51单片机为核心控制器,通过软件定时与硬件计时相结合的方式,实现两路独立PWM信号的生成,并支持对频率、占空比以及相位差的实时调节。

系统不仅具备基础PWM输出能力,还通过按键交互方式实现参数动态修改,同时借助LCD1602液晶显示模块实时显示当前输出状态,使系统具有良好的可视化操作体验与工程实用性。

整体系统结构清晰,控制逻辑明确,适用于嵌入式课程设计、数字电源控制实验以及电机控制基础研究。


2. 系统功能设计

2.1 两路PWM信号输出功能

系统核心功能是输出两路独立PWM信号:

PWM1:通道1信号输出 PWM2:通道2信号输出

两路信号可以独立控制,占空比与频率可分别调节。

PWM信号特点:

周期性方波 高低电平可调 平均电压可控

适用于模拟控制信号或驱动执行器。


2.2 频率调节功能

系统支持PWM频率调节,用户通过按键改变定时参数。

频率范围设计:

1Hz ~ 10kHz(软件可扩展)

频率变化本质:

f = 1 / T

通过调整定时器重装值实现频率变化。


2.3 占空比调节功能

占空比表示高电平时间占周期比例:

D = Ton / T × 100%

系统支持动态调节:

0% ~ 100%

通过改变高电平与低电平时间比例实现控制。


2.4 相位差调节功能

系统支持两路PWM之间的相位差控制。

相位差定义:

φ = (Δt / T) × 360°

控制方式:

  • 延迟启动第二路PWM
  • 调整计时偏移量

实现不同控制波形同步或错位输出。


2.5 按键控制功能

系统通过按键实现参数调整:

KEY1:频率增加 KEY2:频率减少 KEY3:占空比增加 KEY4:占空比减少 KEY5:相位差增加 KEY6:相位差减少

实现人机交互控制。


2.6 LCD显示功能

系统通过LCD1602显示实时参数:

FREQ: 1000Hz DUTY: 60% PHASE: 90°

便于用户观察当前状态。


3. 系统总体设计方案

3.1 系统结构组成

系统主要由以下模块构成:

  1. STC89C52单片机最小系统
  2. PWM输出模块(双通道)
  3. 按键输入模块
  4. LCD1602显示模块
  5. 定时器控制模块
  6. 电源模块

系统结构如下:

按键输入 ↓ 单片机控制核心 ┌──┬────┬────┐ ↓ ↓ ↓ ↓ PWM1 PWM2 LCD Timer

3.2 系统工作流程

系统上电 ↓ 初始化 ↓ 参数默认设置 ↓ PWM开始输出 ↓ 按键调节参数 ↓ 实时更新PWM ↓ LCD显示状态

4. 系统电路设计

4.1 单片机最小系统设计

系统采用STC89C52作为核心控制器。

4.1.1 时钟电路

11.0592MHz晶振

作用:

提供系统运行时基准时钟

4.1.2 复位电路

采用RC复位电路:

上电自动复位

确保系统稳定启动。


4.2 PWM输出电路设计

PWM信号通过单片机IO口输出。

输出特点:

TTL电平 0V / 5V

驱动方式:

  • 直接IO输出
  • 定时器中断控制

适用于外部驱动电路扩展。


4.3 按键输入模块设计

采用独立按键结构。

按键连接方式:

上拉电阻 + 低电平触发

软件处理:

消抖处理 + 状态检测

4.4 LCD1602显示模块设计

LCD用于显示参数。

接口方式:

8位并行通信 RS RW E 数据线

显示内容:

PWM频率 占空比 相位差

4.5 定时器模块设计

系统采用定时器生成PWM基准。

工作原理:

定时中断 → 翻转IO口 → 生成PWM

通过调整重装值改变频率。


4.6 电源模块设计

系统采用5V直流供电。

供电对象:

  • 单片机
  • LCD模块
  • 按键模块

保证系统稳定运行。


5. 系统程序设计

5.1 软件总体结构

系统采用模块化设计:

主程序 PWM生成程序 定时器中断程序 按键扫描程序 LCD显示程序 参数处理程序

5.2 主程序设计

voidmain(){System_Init();while(1){Key_Scan();PWM_Update();LCD_Display();}}

5.3 系统初始化程序

voidSystem_Init(){Timer0_Init();LCD_Init();Freq=1000;Duty=50;Phase=0;}

5.4 PWM生成程序设计

通道1PWM

voidPWM1(){if(flag1)PWM1_PIN=1;elsePWM1_PIN=0;}

通道2PWM(带相位差)

voidPWM2(){Delay(Phase);if(flag2)PWM2_PIN=1;elsePWM2_PIN=0;}

5.5 定时器中断程序设计

voidTimer0_ISR()interrupt1{counter++;if(counter>=Period){counter=0;PWM_Flip();}}

用于生成PWM周期。


5.6 频率调节程序设计

voidSet_Freq(intf){Period=1000000/f;}

实现频率动态调整。


5.7 占空比调节程序设计

voidSet_Duty(intduty){High_Time=Period*duty/100;Low_Time=Period-High_Time;}

控制高低电平比例。


5.8 相位差控制程序设计

voidSet_Phase(intp){Phase=(Period*p)/360;}

实现相位偏移。


5.9 按键扫描程序设计

voidKey_Scan(){if(KEY1==0)Freq++;if(KEY2==0)Freq--;if(KEY3==0)Duty++;if(KEY4==0)Duty--;if(KEY5==0)Phase++;}

5.10 LCD显示程序设计

voidLCD_Display(){LCD_ShowString(0,0,"F:");LCD_ShowNum(2,0,Freq);LCD_ShowString(0,1,"D:");LCD_ShowNum(2,1,Duty);}

6. 系统运行过程分析

系统启动后,单片机完成初始化配置,PWM默认输出设定频率与占空比的方波信号。用户通过按键调节频率、占空比及相位差,系统实时响应参数变化,并更新PWM输出信号。定时器中断不断触发PWM翻转逻辑,实现稳定波形输出。同时LCD1602实时显示当前参数,使用户能够直观观察系统状态。两路PWM信号在相位控制下可实现同步或错位输出,适用于电机控制与信号实验应用。


7. 系统总结

本系统基于51单片机实现了双路PWM信号生成与参数可调控制功能,通过定时器中断与软件控制结合的方式实现频率、占空比及相位差的动态调节。系统结构清晰、控制逻辑灵活、扩展性强,适用于嵌入式控制教学、电机驱动实验以及数字信号生成应用场景,具有较高的工程实践价值与学习参考意义。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/11 19:59:25

免费开源摄影测量软件MicMac:从零到三维建模专家的7个关键技巧

免费开源摄影测量软件MicMac:从零到三维建模专家的7个关键技巧 【免费下载链接】micmac Free open-source photogrammetry software tools 项目地址: https://gitcode.com/gh_mirrors/mi/micmac 想要从普通照片生成专业级三维模型吗?MicMac作为一…

作者头像 李华
网站建设 2026/6/11 19:58:53

5分钟掌握Balena Etcher:最安全的镜像烧录终极指南

5分钟掌握Balena Etcher:最安全的镜像烧录终极指南 【免费下载链接】etcher Flash OS images to SD cards & USB drives, safely and easily. 项目地址: https://gitcode.com/GitHub_Trending/et/etcher 想要制作Linux启动盘、烧录树莓派系统或创建Windo…

作者头像 李华
网站建设 2026/6/11 19:57:56

STM32CubeMX提示clock configuration not available for ......

第一次遇见这种情况记录一下。1、以为是不支持芯片型号,更新了支持的固件还是不行;以为是RCC的HSE没有使能,使能后依然不行;2、软件升级,升级到当前的最新版本V6.17.0,clock configuration显示正常&#xf…

作者头像 李华
网站建设 2026/6/11 19:57:16

Claude Code 国内配置指南:通过中转 API 实现免代理直连

前言Claude Code 是 Anthropic 推出的命令行 AI 编程工具,支持在终端里直接读代码、改代码、跑命令,是不少开发者日常提效的工具之一。但在国内直接使用会遇到网络访问问题。本文介绍一种常见的解决思路——通过中转 API 地址配置,让 Claude …

作者头像 李华
网站建设 2026/6/11 19:54:54

从DIP到TQFP:P89V51微控制器封装选型与PCB设计实战指南

1. 项目概述:从芯片到电路板的关键一步在嵌入式硬件开发的江湖里,选型一颗合适的微控制器(MCU)只是万里长征的第一步。很多工程师,尤其是刚入行的朋友,常常把注意力集中在芯片的内核性能、外设资源和开发环…

作者头像 李华