蓝桥杯单片机组-基础篇11:利用PWM波实现LED亮度控制

#include <REGX52.H>

sbit S7=P3^0;
sbit L1=P0^0;

void Delay(unsigned int t)
{
	while(t--);
}

void InitHC573()
{
	P2=(P2&0x1f)|0x80;
}

unsigned char stat=0;
unsigned char pwm_duty;

//======================按键扫描模块
void scankey()
{
	if(S7==0)
	{
		Delay(100);
		if(S7==0)
		{
			switch(stat)
			{
			case 0://按下1次,LED由灭转亮(亮度10%)
				L1=0;
				TR0=1;
				pwm_duty=10;
				stat=1;
			break;
			
			case 1://按下2次,亮度50%
				pwm_duty=50;
				stat=2;
			break;
			
			case 2://按下3次,亮度90%
				pwm_duty=90;
				stat=3;
			break;
			
			case 3://按下4次,LED熄灭
				L1=1;
				stat=0;
				TR0=0;//注意一定要关闭定时器,否则定时器继续运行,灯会以90%亮度继续点亮
			break;
			}
			while(S7==0);
		}
	}
}
//==============&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值