51单片机 PWM基本原理理解(程序举例)

本文介绍了51单片机通过PWM控制LED亮度的基本原理,详细阐述了计数器和比较值如何影响LED的亮暗,并通过程序示例解释了不同编程方式对占空比的影响,帮助理解PWM在单片机控制中的应用。
摘要由CSDN通过智能技术生成

配置独立按钮K1,不按下时LED P2_0灯暗,按下时更亮。

#include <REGX52.H>

unsigned char Counter,Compare;			//两个篮子,一个Counter计数器,一个Compare比较值。

void main()
{
	while(1)							//大循环。
	{

		while(P3_1==1)   		//循环:独立按钮K1,没有按下的时候,在这里面循环。
			{
				Counter++;	//计数器自增1.
				Counter%=100;	//当计数器增加到100时,变成0,赋值给计数器。(也可以设定其他值)
				Compare=95;	//自己设定的比较值。(设得高,不亮的时间越长,看起来就越暗。红色线)
				if(Counter<Compare)	//把两者作比较。当计数器值小于比较值时 执行。
					{
							P2_0=1;	//设计:当计数器值小于比较值灯不亮。	
					}
				else				
					{
						P2_0=0;	//反之:灯亮。		
					}
			}
		while(P3_1==0)
			{
				Counter++;
				Counter%=100;
				Compare=5;
				if(Counter<Compare)
					{
						P2_0=1;		
					}
				else				
					{
						P2_0=0;		
					}	
			}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值