C51-通过按键调整PWM占空比控制LED亮度

lemon Lv5

第四篇

通过调节占空比控制灯的亮度

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <reg51.h>
#define on 0 // 低电平点亮
#define off 1 // 高电平熄灭
sbit up = P3^1;
sbit down = P3^0;
sbit light = P2^1;

void delay_ms(unsigned int ms) {
unsigned int x, y;
for (x = 0; x < ms; x++)
for (y = 0; y < 120; y++);
}

void main() {
unsigned int i = 0, j = 500; // 初始状态:灯灭
while (1) {
light = on; // 亮
delay_ms(i);
light = off; // 灭
delay_ms(j);

// 上调亮度
if (up == 0) {
delay_ms(10);
if (up == 0) {
if (i < 1000) i++; // 上限保护
if (j > 10) j--; // 下限保护
while (up == 0); // 等待按键释放
}
}
// 下调亮度
if (down == 0) {
delay_ms(10);
if (down == 0) {
if (i > 10) i--;
if (j < 1000) j++;
while (down == 0);
}
}
}
}

代码下载链接(123云盘):https://www.123684.com/s/wFuijv-i8Zgh

  • 标题: C51-通过按键调整PWM占空比控制LED亮度
  • 作者: lemon
  • 创建于 : 2025-07-22 21:28:05
  • 更新于 : 2025-07-23 00:12:37
  • 链接: https://lemon2003.github.io/post/20250722212805.html
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
C51-通过按键调整PWM占空比控制LED亮度