本篇讲的单片机是第十一届蓝桥杯单片机实训的硬件设备。
LED亮度等级控制原理
LED亮度的控制,即控制LED的高低电平时间(PWM电平输出),得到不同明亮程度的LED灯。
- 主要方法:在1ms定时器中断函数内,调节LED的输出高低电平时间。
其实所说的PWM控制,实质就是通过定时器中断来实现,本质是一样的。
LED亮度等级控制范例
例如:LED需要5个等均匀分布的亮度等级,以1s周期切换显示。
- 代码编写如下:
void timer2_int (void) interrupt 12 //定时器2的1ms中断函数
{
static u16 i = 0;
static u8 led_count,led_level;
if(++i == 1000)
{
i = 0;
if(++led_level == 5) led_level = 0; //5个等级--1s切换
}
//***********************************led等级控制
if(++led_count == 5)
{
led_count = 0;
LED(0xff);
}
if(led_count == led_level) LED(0);
}
//LED()函数在先前篇幅有介绍
欢迎提问和咨询~