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