蓝桥杯单片机(十)PWM脉宽调制信号的发生与控制

server/2025/2/7 7:01:04/

模块训练:

一、PWM基本原理

1.占空比

2.脉宽周期与占空比

当PWM脉宽信号的频率确定时,脉宽周期也确定了,此时改变占空比即可。当利用PWM脉宽周期改变LED灯的亮度时,灯是低电平亮,所以将低电平占空比改成10%即可实现灯的亮度是10%

通过将脉宽周期分为多份再改变高低电平从而改变占空比实现PWM调光。

3.按键控制

通过状态控制按键,当按键按下时改变状态,再按下即再改变状态时即可实现按键循环切换LED灯亮度模式

二、程序代码

1.程序代码

#include <regx52.h>
sbit L1=P0^0;
sbit S7=P3^0;
unsigned pwm_duty;
//========定时器相关函数=============
unsigned char count=0;
unsigned char stat=0;
void InitTimer0()
{TMOD=0X01;TH0=(65535-100)/256;TL0=(65535-100)%256 ;ET0=1;EA=1;//TR0=1先不写等要用到时再打开时钟计时
}
void ServiceTimer0() interrupt 1
{TH0=(65535-100)/256;TL0=(65535-100)%256 ;count++;if(count<pwm_duty){L1=0;}else if(count<100){L1=1;}else if(count==100){count=0;}
}
//===================================
void SelectHC573()
{P2=(P2&0X1F)|0X80;
}
//===========按键相关函数===============
void Delay(unsigned char t)
{while(t--);
}
void ScanKey()
{if(S7==0){Delay(500);if(S7==0){switch(stat){case 0:pwm_duty=10;TR0=1;stat=1;break;case 1:pwm_duty=50;stat=2;break;case 2:pwm_duty=90;stat=3;break;case 3:pwm_duty=0;stat=0;TR0=0;break;}while(S7==0);}}
}
//=======================================
void main()
{SelectHC573();InitTimer0();while(1){ScanKey();}
}


http://www.ppmy.cn/server/165618.html

相关文章

后端生成二维码

QrConfig qrConfig new QrConfig(200, 200);private static void generateQrCode(QrConfig qrConfig, 你要塞入二维码的对象A a, 你要返回给前端的对象B b) {byte[] bytes QrCodeUtil.generatePng(A.getC(), qrConfig);// 转成base64String base64Png Base64.getEncoder().e…

荣誉|奇点云获评晶科能源“2024最佳大数据服务商”并受邀演讲

2025年1月10日&#xff0c;晶科能源控股有限公司“共筑数智梦 携手创未来”信息技术体系年度会议顺利举办。奇点云获评晶科能源“2024最佳大数据服务商”。StartDT COO、奇点云联合创始人刘莹受邀参会并作题为“面向增长的数据分析及AI创新”的演讲。 会上&#xff0c;刘莹简要…

MAC OS安装Homebrew

文章目录 1.下载Homebrew2.完成安装3.验证安装4.更新 Homebrew作为一个包管理器&#xff0c;提供了一种简便的方式来安装、更新和卸载各种命令行工具和应用程序。相比于手动下载和编译源代码&#xff0c;或者从不同的网站下载安装包&#xff0c;使用Homebrew可以显著减少这些操…

绿联NAS安装cpolar内网穿透工具实现无公网IP远程访问教程

文章目录 前言1. 开启ssh服务2. ssh连接3. 安装cpolar内网穿透4. 配置绿联NAS公网地址 前言 本文主要介绍如何在绿联NAS中使用ssh远程连接后&#xff0c;使用一行代码快速安装cpolar内网穿透工具&#xff0c;轻松实现随时随地远程访问本地内网中的绿联NAS&#xff0c;无需公网…

Linux网络配置(超详细)

Linux网络配置大全 Linux网络配置 一.网络地址配置 网络地址查看–ifconfig使用网络配置命令 设置网络接口参数-ifconfig禁用(临时)或者重新激活网卡设置虚拟网络接口 修改网络配置文件 网络接口配置文件 IP命令详解 OPTIONS选项OBJECT对象 ip link 二、获取和修改主机名hostn…

Python微博动态爬虫

本文是刘金路的《语言数据获取与分析基础》第十章的扩展&#xff0c;详细解释了如何利用Python进行微博爬虫&#xff0c;爬虫内容包括微博指定帖子的一级评论、评论时间、用户名、id、地区、点赞数。 整个过程十分明了&#xff0c;就是用户利用代码模拟Ajax请求&#xff0c;发…

【开源免费】基于SpringBoot+Vue.JS健身房管理系统(JAVA毕业设计)

本文项目编号 T 180 &#xff0c;文末自助获取源码 \color{red}{T180&#xff0c;文末自助获取源码} T180&#xff0c;文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…

Kubeflow——K8S的机器学习利器

简书不活跃&#xff0c;欢迎到这里捉到我&#xff0c;查看更多干货。 针对Kubeflow组件较多&#xff0c;容易搞不清每个组件是干什么的&#xff0c;本文先对Kubeflow进行一个系统的概括&#xff0c;让大家明白各个组件分别的用处&#xff0c;并对组件间的关系进行理顺&#xff…