PWM脉宽调制

内容来自b站小蜜蜂老师

一、什么是脉宽调制

PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码,也就是说通过调节占空比的变化来调节信号、能量等的变化,占空比就是指在一个周期内,信号处于高电平的时间占据整个信号周期的百分比,例如方波的占空比就是50%高低电平在一个周期内各占一半

二、pwm实际运用 led调光

#include "reg52.h"/********************************************
Date:2022-1-11
Author:小殷同学
Learn From:B 站小蜜蜂老师
*********************************************/unsigned int count = 0; //计数
unsigned char pwm_duty = 0;  //记录占空比
unsigned char status = 0; //状态记录sbit S7 = P3^0; //按键
sbit L1 = P0^1; //led//------------------------------简单延时函数-------------------------
void Delay(unsigned int t)
{while(t--);
}
//--------------------------------------------------------------------//--------------------------74HC138初始化---------------------------
void Init_74HC138(unsigned char n)
{switch(n){case 4: P2 = P2 | 0x1f; P2 = 0x80; break;case 5: P2 = P2 | 0x1f; P2 = 0xa0; break;case 6: P2 = P2 | 0x1f; P2 = 0xc0; break;case 7: P2 = P2 | 0x1f; P2 = 0xe0; break; }
}
//--------------------------------------------------------------------//-----------------------------系统初始化-----------------------------
void InitSystem(void)
{Init_74HC138(5);           //Y5选通P0 = 0x00; //关闭继电器和蜂鸣器Init_74HC138(4);        //Y4P0 = 0xff; //关闭LED}
//----------------------------------------------------------------------//-------------------------------定时器0初始化-------------------------
void Init_Timer0(void)
{TMOD = 0x01;  //定时0 方式二16位//100usTH0 = (65535-100)/256; //高八位              TL0 = (65535-100)%256; //低八位ET0 = 1; //定时器0中断使能EA = 1; //总中断
}
//----------------------------------------------------------------------//--------------------------------按键处理函数----------------------------
void Key_Tackle(void)
{if(S7 == 0){Delay(50);if(S7 == 0){switch(status){case 0:   L1 = 0; TR0 = 1; pwm_duty = 10;status = 1;break;case 1: pwm_duty = 50;status = 2;break;case 2: pwm_duty = 90;status = 3;break;case 3: L1 = 1; TR0= 0;status = 0;break;}while(S7 == 0);}}}void main(void)
{InitSystem();Init_Timer0();Init_74HC138(4);while(1){Key_Tackle();}}//--------------------------定时器0中断服务函数-------------------------
void Server_Timer0() interrupt  1
{//该方式没有自动重装载 需要手动重新配置TH0 = (65535-100)/256; //高八位TL0 = (65535-100)%256; //低八位count++;if(count == pwm_duty){L1 = 1;}else if(count == 100){L1 = 0;count = 0;}
}
//---------------------------------------------------------------------

【蓝桥杯练习-PWM脉宽调制】相关推荐

  1. STM32蓝桥杯嵌入式PWM输出

    文章目录 前言 一.原理图 二.定时器输出PWM原理 三.cubemx的配置 四.代码编写 五.波形查看 总结 前言 本篇文章将为大家讲解定时器的PWM输出,PWM可以说是一个比较重要的考点希望大家能 ...

  2. 蓝桥杯单片机学习记录(8)(PWM脉宽调制)

    PWM脉宽调制 PWM(Pluse Width Modulation)简称脉宽调制,是一种模拟控制方式,根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从 ...

  3. 蓝桥杯单片机学习7——PWM脉宽调制控制LED的亮度

    上期我们学习了定时器的相关内容,这次我们来学习PWM脉宽调制 什么是PWM PWM(Pulse Width Modulation)简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有 ...

  4. 【蓝桥杯单片机(14)】PWM波实现呼吸灯

    PWM:Pulse-Width Modulation的缩写,中文意思为脉冲宽度调制,它是一种占空比可控制的脉冲波形 占空比:一个完整的脉冲周期,是由高电平和低电平组成的,而占空比表示在一个脉冲周期里, ...

  5. 蓝桥杯单片机比赛学习:8、PWM的基本原理之呼吸灯

    经过7节的学习,我们已经掌握了基本的硬件的使用规则,从本节开始我们开始学习一些模块的使用PWM.PCF8591.AT24C02.DS18B20.DS1302.555频率测量.光敏电阻测量.超声波测距等 ...

  6. 【蓝桥杯单片机组模块】14、STC15定时器2的PWM使用

    微信搜索:ReCclay,也可免费阅读博主蓝桥系列所有文章,后台回复"代码"即可获取蓝桥所有备赛代码!关注博主公众号,还可拥有加入博主粉丝群实时沟通技术难题.免费下载CSDN资源等 ...

  7. 蓝桥杯STM32G431RBT6学习——定时器PWM输出

    蓝桥杯STM32G431RBT6学习--定时器PWM输出 前言 PWM波输出作为定时器的一个常用功能,也属于高频的考点.从数据手册的定时器解析可以了解到(上篇描述):除了基本定时器(TIM6.7)外, ...

  8. 【STM32G431RBTx】备战蓝桥杯嵌入式→基本模块→TIM→PWM

    文章目录 前言 PWM 1.配置元素以及配置步骤 2.编写代码 3.演示效果 总结 前言 前面我们以及学完了按键的单,双,长击写法,这其实都是归功于定时器TIM的计时功能,这篇文章讲述的是TIM的输出 ...

  9. 蓝桥杯物联网例程下载

    今年是蓝桥杯物联网的第一届 我也是赶快买了物联网的开发板 这是附带的例程和一些综合实验 仅供参考练习 里面所有的例程大概花了两周实现了大部分(有一些例如ADC和PWM的 手头没有示波器和电压表就没有做 ...

  10. 【Pre蓝桥杯嵌入式】【STM32】学习索引

    写在前面     0.专栏链接     1.Unkown device     2.移植LCD程序+建立工程+LCD程序分析     3.如何直接使用LCD例程来作为赛场使用的工程 学习目录      ...

最新文章

  1. 平流式隔油池计算_当隔油池整改工作遇上“露天铁板烧”
  2. 详细介绍Java垃圾回收机制
  3. Python应用matplotlib绘图简介
  4. go map的定义和使用 键值对存储
  5. UVA10943简单递推
  6. beanutil 批量copy_Apache Commons Beanutils对象属性批量复制(pseudo-singleton)
  7. CTFshow php特性 web134
  8. Bootstrap 表格
  9. LeetCode77:Combinations
  10. Office Communication Server(OCS) 2007存档和CDR的部署
  11. html教程padding,HTML CSS——margin和padding的学习
  12. 数据绑定控件Reperter
  13. hbuilder能写php项目吗,如何在Android中使用HBuilder中的项目
  14. 全网最全AE中英文界面对照表分享
  15. 面试之MySQL调优问题
  16. 容器监控cadvisor
  17. 腾讯云海外音视频技术架构 — 挑战和优化
  18. 【考研】数据库知识点总结
  19. 0910期即将上市:优秀产品三部曲
  20. 杰理AC692X学习-BLE与APP端发送与接收

热门文章

  1. 超好用的笔记工具-notion入门指南
  2. css3动画正弦曲线,css动画之模拟正余弦曲线的实例分享
  3. 常用小样本数据集介绍与下载汇总
  4. 为什么要分析网络流量?
  5. 他因“上帝粒子”获诺奖,却火速搬到乡下:它毁了我的生活
  6. 小程序在政务服务平台建设中如何发挥价值
  7. css多棱柱立体旋转
  8. 国家信息安全证书体系解读(nisp,cisp)
  9. java微信开发之--更换背景图片
  10. 硬盘柱面损坏怎么办_硬盘坏道屏蔽工具,详细教您如何修复硬盘坏道