news 2026/4/17 12:51:30

【51单片机】不止是调光!51 单片机 PWM 实战:呼吸灯 + 直流电机正反转 + 转速控制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【51单片机】不止是调光!51 单片机 PWM 实战:呼吸灯 + 直流电机正反转 + 转速控制

🔥小龙报:个人主页
🎬作者简介:C++研发,嵌入式,机器人方向学习者
❄️个人专栏:《工科必装软件安装教程》《嵌入式的开端 ---- 51单片机》
永远相信美好的事情即将发生

文章目录

  • 前言
  • 一、什么是PWM
  • 二、PWM的频率与占空比
    • 2.1 PWM的频率
    • 2.2 占空比
  • 三、呼吸灯控制
  • 四、直流电机控制
    • 4.1 简单正反转驱动
    • 4.2 PWM速度控制
  • 总结与每日励志

前言

PWM(脉冲宽度调制)是51单片机嵌入式开发中核心控制技术之一,广泛应用于LED调光、电机控速、开关电源等场景。本文从PWM基础概念入手,通俗解析频率与占空比两大核心参数,结合实操案例,先通过IO口模拟实现LED呼吸灯效果,再讲解定时器精准生成PWM、控制直流电机正反转与转速,层层递进,帮助初学者吃透PWM原理,掌握其实际应用技巧,夯实嵌入式控制基础。

一、什么是PWM

PWM是脉冲宽度调制的缩写,它是一种通过调整脉冲信号的高电平和低电平时间比例来控制电路输出的技术。简单来说,PWM是一种控制电子设备输出电压或电流的方法,它可以通过调整脉冲信号的宽度来控制输出信号的平均电压或电流,常应用于电机控速,开关电源等领域。

二、PWM的频率与占空比

在PWM波形中有两个重要的参数,分别是:频率、占空比

2.1 PWM的频率

是指1秒钟内信号从高电平到低电平再回到高电平的次数(一个周期)
如果频率为1000Hz ,也就是说1秒内来回了1000次,那每次的时间就是1ms,那此信号一个周期就是1ms

2.2 占空比

是一个脉冲周期内,高电平的时间与整个周期时间的比例

注:调节占空比最终会反映到输出的电流、电压上,或者可以理解为输出的总能量变化,100%占空比时输出100%能量,50%占空比时,只会输出一半的能量,例如50%占空比控制LED会比较暗,控制电机力气会比较小。

三、呼吸灯控制

下面使用IO模拟的方式,实时修改占空比,控制LED的呼吸灯效果

#include <reg52.h>sbitled=P2^7;voidDelayus(intt)//@11.0592MHz{while(t--){unsignedchari;i=2;while(--i);}}voidmain(){inttime=0;led=0;while(1){for(time=0;time<300;time++){//从暗逐渐变亮的过程led=0;Delayus(time);led=1;Delayus(300-time);}for(time=0;time<300;time++){//从亮逐渐变暗的过程led=1;Delayus(time);led=0;Delayus(300-time);}}}

除了使用IO模拟的方式,我们也可以通过定时器功能,产生更加精确的PWM波形;设置定时器的溢出时间可以改变PWM的周期频率;设置比较值大小可以调节PWM的占空比;

四、直流电机控制

直流电机是指能将直流电能转换成机械能转动的设备。

直流电机的结构是由定子和转子组成。直流电机运动时,不动的部分称为定子,定子的主要作用是产生磁场。运行时转动的部分称为转子,其主要作用是产生电磁转矩和感应电动势。
直流电机没有正负之分,在两端加上直流电就能工作。交换电极可以改变电机旋转的方向;

51单片机作为一个开发板,起到的主要作用是控制,而直流电机作为一个较大功率的器件,当然不能通过51单片机的IO引脚进行驱动,需要使用一些驱动电路或者芯片进行驱动,板卡上用的是TC118S。

4.1 简单正反转驱动

#include <reg52.h>sbitdc_an2=P2^3;sbitdc_an1=P2^4;//带参延时函数voiddelay_ms(unsignedintxms)//@12MHz{unsignedinti,j;for(i=xms;i>0;i--){for(j=124;j>0;j--){}}}voidmain(){while(1){//正转2sdc_an2=0;dc_an1=1;delay_ms(2000);//停止2sdc_an2=0;dc_an1=0;delay_ms(2000);//反转2sdc_an2=1;dc_an1=0;delay_ms(2000);//停止2sdc_an2=0;dc_an1=0;delay_ms(2000);}}

4.2 PWM速度控制

#include <reg52.h>//约1ms溢出#defineTIMS(65536-922)sbitdc_an2=P2^3;sbitdc_an1=P2^4;unsignedcharspeed,compare;//延时ms函数,参数用来改变延时的具体时间voiddelay_ms(unsignedintxms)//@12MHz{unsignedinti,j;for(i=xms;i>0;i--){for(j=124;j>0;j--){}}}voidmain(){TMOD=0x01;//配置定时器0为16位定时器,TH0、TL0全用TH0=TIMS>>8;//设置定时初值高8位TL0=TIMS;//设置定时初值低8位ET0=1;//开启定时器0中断EA=1;//开启全局中断TR0=1;//定时器0开始计数//初始化电机,停止运行dc_an1=0;dc_an2=0;while(1){compare=10;delay_ms(5000);compare=30;delay_ms(5000);compare=60;delay_ms(5000);compare=90;delay_ms(5000);}}//1ms触发执行一次voidTimer0()interrupt1{//每次产生中断后重新设置下次定时器初值 - 1毫秒产生1次中断TH0=TIMS>>8;TL0=TIMS;//当compare为10时,输出10ms高电平,90ms低电平//当compare为60时,输出60ms高电平,40ms低电平//当compare为90时,输出90ms高电平,10ms低电平speed++;//定时计数器的计数值,1ms加1speed%=100;//限制speed在0-100内if(speed<compare)//计数值与比较值进行比较{dc_an2=1;}else{dc_an2=0;}}

总结与每日励志

✨本文完整覆盖PWM技术的核心知识点与实操应用,从概念解析到参数解读,再到呼吸灯、直流电机正反转及转速控制的代码实现,清晰呈现了PWM从理论到实践的全过程。嵌入式学习重在理解原理、勤练实操,每一次参数调试、每一次代码优化,都是成长的积累。✨ 不必急于求成,深耕每一个技术细节,循序渐进突破,你终将解锁更多嵌入式控制技能,在技术之路上稳步前行,不负每一份坚持与热爱!

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

多模态大模型效率提升:Token压缩技术详解与实战指南

近年来多模态大模型在视觉感知&#xff0c;长视频问答等方面涌现出了强劲的性能&#xff0c;但是这种跨模态融合也带来了巨大的计算成本。高分辨率图像和长视频会产生成千上万个视觉 token &#xff0c;带来极高的显存占用和延迟&#xff0c;限制了模型的可扩展性和本地部署。 …

作者头像 李华
网站建设 2026/4/17 12:53:54

市场用行动投票:招商林屿缦岛首开售罄背后的价值逻辑

2026年春天&#xff0c;招商林屿缦岛用一份“首开售罄”的答卷&#xff0c;回应了市场对品质居住的所有期待。203套房源在开盘当日即告售罄&#xff0c;这不仅是一个项目的成功&#xff0c;更是市场理性选择的一次集中体现。当喧嚣褪去&#xff0c;价值回归&#xff0c;我们有必…

作者头像 李华
网站建设 2026/4/13 20:42:01

干货合集:AI论文平台,千笔 VS 万方智搜AI,本科生必备!

随着人工智能技术的迅猛发展&#xff0c;AI辅助写作工具已经逐步渗透到高校学术写作场景中&#xff0c;成为本科生、研究生完成毕业论文不可或缺的得力助手。越来越多的学生开始借助这些工具提升写作效率、降低论文压力。然而&#xff0c;面对市场上琳琅满目的AI写作平台&#…

作者头像 李华
网站建设 2026/4/18 0:20:18

真心不骗你 9个降AI率工具测评对比 自考人必看的降AI率攻略

在自考论文写作中&#xff0c;越来越多的同学开始关注“AI生成痕迹”和“查重率”的问题。随着人工智能技术的广泛应用&#xff0c;许多学生在撰写论文时会借助AI工具进行辅助&#xff0c;但这也带来了AIGC率过高的风险。为了确保论文顺利通过审核&#xff0c;降低AI痕迹、提升…

作者头像 李华
网站建设 2026/4/18 2:08:23

别再瞎找了!降AIGC工具 千笔·降AIGC助手 VS 学术猹,本科生专属神器

在AI技术迅速发展的今天&#xff0c;越来越多的本科生开始借助AI工具辅助论文写作&#xff0c;以提高效率、拓展思路。然而&#xff0c;随着学术查重系统对AI生成内容的识别能力不断提升&#xff0c;如何有效降低论文的AIGC率和重复率&#xff0c;已成为摆在学生面前的一大难题…

作者头像 李华