写一段51单片机流水灯的代码要求从中间往两边,或者两边往中间,(每次亮2个LED);
时间: 2024-03-17 11:42:10 浏览: 144
LED花样流水灯C51源代码与Proteus仿真文件.zip_c51花样流水灯_led流水灯代码_proteus LED_流水灯
5星 · 资源好评率100%
以下是一段51单片机流水灯代码,实现的是从中间往两边移动的流水灯效果:
```c
#include <reg51.h>
// 将P1口定义为输出口,用于控制LED灯
sbit LED1 = P1^0;
sbit LED2 = P1^1;
sbit LED3 = P1^2;
sbit LED4 = P1^3;
sbit LED5 = P1^4;
sbit LED6 = P1^5;
sbit LED7 = P1^6;
sbit LED8 = P1^7;
// 延时函数,简单粗暴的做法是循环一定次数
void delay(unsigned int count)
{
unsigned int i, j;
for(i=0; i<count; i++)
for(j=0; j<1275; j++);
}
void main()
{
// 初始化P1口
P1 = 0x00;
// 从中间往两边移动的流水灯效果
while(1)
{
LED4 = 1;
LED5 = 1;
delay(100);
LED4 = 0;
LED5 = 0;
LED3 = 1;
LED6 = 1;
delay(100);
LED3 = 0;
LED6 = 0;
LED2 = 1;
LED7 = 1;
delay(100);
LED2 = 0;
LED7 = 0;
LED1 = 1;
LED8 = 1;
delay(100);
LED1 = 0;
LED8 = 0;
}
}
```
这段代码的实现和之前的代码有所不同,它是通过每次同时点亮两个相邻的LED灯来实现流水灯效果。从中间往两边移动的流水灯效果就是先点亮第4、5个LED灯,再点亮第3、6个LED灯,然后点亮第2、7个LED灯,最后点亮第1、8个LED灯。在每次点亮两个LED灯后需要适当延时,从而形成流水灯效果。
阅读全文