51单片机用电位器控制led灯亮度
时间: 2023-09-03 13:13:29 浏览: 251
电位器控制三色LED单片机PWM驱动的简单程序
以下是一个基于51单片机和电位器的控制LED灯亮度的代码:
```C
#include <reg51.h>
sbit LED = P1^0; //将LED连接到P1.0引脚
sbit ADJ = P1^1; //将电位器连接到P1.1引脚
void main()
{
unsigned int i;
while (1)
{
for (i = 0; i < 256; i++) //控制亮度的循环
{
LED = 1; //LED亮
delay(ADJ); //根据电位器的值延时,控制亮度
LED = 0; //LED灭
delay(255 - ADJ); //根据电位器的值延时,控制亮度
}
}
}
//延时函数
void delay(unsigned int t)
{
unsigned int i, j;
for (i = 0; i < t; i++)
{
for (j = 0; j < 125; j++);
}
}
//根据电位器的值延时
void delay(sbit adj)
{
unsigned int i, j;
for (i = 0; i < adj; i++)
{
for (j = 0; j < 125; j++);
}
}
```
在这个代码中,电位器连接在P1.1引脚上,通过电位器的值来控制LED灯的亮度。在每个循环中,根据电位器的值来控制LED灯的亮度,电位器的值越大,LED灯亮度越大,反之亮度越小。延时函数delay()用来控制灯的亮度,通过不同的延时时间,控制LED灯的亮度变化。而新添加的delay(sbit adj)函数则根据电位器的值来延时,实现了控制LED灯亮度的功能。
阅读全文