#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);
}
}
}
//==============&
蓝桥杯单片机组-基础篇11:利用PWM波实现LED亮度控制
于 2024-03-17 09:36:15 首次发布