C51:使用PWM波调节LED灯的亮度

基础知识:

PWM(脉冲宽度调制):是一种通过调整信号的脉冲宽度来控制电力输出的技术。在一个PWM信号周期内,信号会在高电平和低电平之间切换,通过改变高电平持续的时间(即脉冲宽度),可以模拟出不同的电压水平。

占空比:就是高电平所占整个周期的时间

例如一个PWM波,周期为10ms,高点平的时间为4ms,那么它的占空比就是40%


编程原理:

1.LED调光的频率最好是1kHz(即周期为1ms),太小的频率会导致LED灯闪烁

2.由于人的视觉暂留效应,调节占空比就可以调节LED灯的亮度,注意,由于LED灯是共阳极接法,所以占空比越高,LED的亮度反而越低

部分程序示例:

unsigned char cnt_pwm;
void PWM_process()
{
  cnt_pwm=cnt_pwm % 10 +1; //这样就确保cnt+pwm的取值范围为1~10,即定义了pwm的周期为1ms
  if(cnt_pwm<=5)
  {
   P34=1; //0~0.5ms P34是高电平,LED灯熄灭
  }
  else
  {
   P34=0; //0.5~1ms P34是低电平,LED灯点亮
  }
}

int main()
{
  Timer2_Init();
  while(1)
 {
  PWM_process();
 }
 return 0;
}
//中断函数是0.1ms中断
void Timer2_ISR(void)  interrupt 12
{
 cnt_pwm++;
}

在该程序中LED的亮度是普通亮度的一半。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱写代码的倒霉蛋

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值