单片机led灯四种闪烁方法的代码
时间: 2023-08-30 08:04:14 浏览: 574
以下是基于51单片机的LED灯四种闪烁方法的代码:
方法一:常规闪烁
```c
#include <reg52.h>
sbit LED = P1^0; //将P1.0定义为LED
void main()
{
while(1)
{
LED = 0; //LED亮
Delay(1000); //延时1秒
LED = 1; //LED灭
Delay(1000); //延时1秒
}
}
void Delay(unsigned int i)
{
unsigned int j;
while(i--)
{
for(j=0; j<125; j++);
}
}
```
方法二:呼吸灯
```c
#include <reg52.h>
sbit LED = P1^0; //将P1.0定义为LED
void main()
{
unsigned char i;
while(1)
{
for(i=0; i<255; i++)
{
LED = i; //LED亮度逐渐增加
Delay(10);
}
for(i=255; i>0; i--)
{
LED = i; //LED亮度逐渐减小
Delay(10);
}
}
}
void Delay(unsigned int i)
{
unsigned int j;
while(i--)
{
for(j=0; j<125; j++);
}
}
```
方法三:交替闪烁
```c
#include <reg52.h>
sbit LED1 = P1^0; //将P1.0定义为LED1
sbit LED2 = P1^1; //将P1.1定义为LED2
void main()
{
while(1)
{
LED1 = ~LED1; //LED1亮灭交替
LED2 = ~LED2; //LED2亮灭交替
Delay(500); //延时500毫秒
}
}
void Delay(unsigned int i)
{
unsigned int j;
while(i--)
{
for(j=0; j<125; j++);
}
}
```
方法四:随机闪烁
```c
#include <reg52.h>
#include <stdlib.h>
#include <time.h>
sbit LED = P1^0; //将P1.0定义为LED
void main()
{
srand(time(NULL)); //初始化随机数生成器
while(1)
{
LED = rand()%2; //随机设置LED亮灭
Delay(500); //延时500毫秒
}
}
void Delay(unsigned int i)
{
unsigned int j;
while(i--)
{
for(j=0; j<125; j++);
}
}
```
以上是四种常见的LED灯闪烁方法的代码实现,可以根据需要进行修改和优化。
阅读全文