51单片机流水灯,先左右移动,再从中间往两边移动
时间: 2024-05-01 11:16:39 浏览: 95
51单片机流水灯实验(程序+报告)
以下是51单片机流水灯代码,实现了先左右移动,再从中间往两边移动的效果:
```c
#include <reg51.h>
sbit LED=P2^0;
void delay(unsigned int t)
{
while(t--);
}
void main()
{
unsigned char i;
while(1)
{
// 左右移动
for(i=0;i<8;i++)
{
LED=0x01<<i;
delay(50000);
}
for(i=0;i<8;i++)
{
LED=0x80>>i;
delay(50000);
}
// 中间往两边移动
for(i=0;i<4;i++)
{
LED=0x0f<<i;
delay(50000);
LED=0xf0>>i;
delay(50000);
}
for(i=0;i<4;i++)
{
LED=0xf0>>i;
delay(50000);
LED=0x0f<<i;
delay(50000);
}
}
}
```
其中,delay函数用于延时,LED控制LED灯的亮灭。在左右移动时,通过循环控制LED灯从左往右移动,再从右往左移动;在中间往两边移动时,通过循环控制LED灯从中间往两边移动,再从两边往中间移动。
阅读全文