51单片机LED灯的五种变化程序代码
时间: 2023-05-29 20:07:15 浏览: 78
以下是五种常见的51单片机LED灯变化程序代码:
1. 呼吸灯程序:
```
#include<reg51.h>
sbit LED=P1^0; //定义LED连接端口
void delay(unsigned int i) //延时函数
{
unsigned int j;
while(i--)
{
for(j=0;j<125;j++);
}
}
void main()
{
unsigned int i,j;
while(1)
{
for(i=0;i<255;i++) //LED亮度增加过程
{
LED=1;
for(j=0;j<i;j++)
{
delay(1);
}
LED=0;
delay(1);
}
for(i=255;i>0;i--) //LED亮度减小过程
{
LED=1;
for(j=0;j<i;j++)
{
delay(1);
}
LED=0;
delay(1);
}
}
}
```
2. 跑马灯程序:
```
#include<reg51.h>
void main()
{
unsigned char i;
while(1)
{
for(i=0;i<8;i++) //LED从左往右依次亮起
{
P1=~(0x01<<i);
Delay(500);
P1=0xff;
}
for(i=7;i>0;i--) //LED从右往左依次亮起
{
P1=~(0x01<<i);
Delay(500);
P1=0xff;
}
}
}
```
3. 闪烁灯程序:
```
#include<reg51.h>
sbit LED=P1^0; //定义LED连接端口
void Delay(unsigned int i) //延时函数
{
unsigned int j;
while(i--)
{
for(j=0;j<125;j++);
}
}
void main()
{
while(1)
{
LED=0; //LED灭
Delay(500);
LED=1; //LED亮
Delay(500);
}
}
```
4. 交替闪烁灯程序:
```
#include<reg51.h>
sbit LED1=P1^0; //定义LED1连接端口
sbit LED2=P1^1; //定义LED2连接端口
void Delay(unsigned int i) //延时函数
{
unsigned int j;
while(i--)
{
for(j=0;j<125;j++);
}
}
void main()
{
while(1)
{
LED1=0; //LED1灭
LED2=1; //LED2亮
Delay(500);
LED1=1; //LED1亮
LED2=0; //LED2灭
Delay(500);
}
}
```
5. 循环移位灯程序:
```
#include<reg51.h>
void delay(unsigned int i) //延时函数
{
unsigned int j;
while(i--)
{
for(j=0;j<125;j++);
}
}
void main()
{
unsigned char i,j;
while(1)
{
for(i=0;i<8;i++)
{
P1=0xff; //所有LED灭
for(j=0;j<=i;j++) //LED向左移动
{
P1=P1>>1;
P1=P1|0x80;
delay(500);
}
}
}
}
```