单片机点亮八个灯流水灯代码,灯亮延迟0.5秒
时间: 2024-03-12 20:03:41 浏览: 530
下面是一个基于51单片机的点亮八个灯的流水灯代码,每盏灯亮起的时间为0.5秒:
```c
#include <reg51.h>
// 定义 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 i, j;
for (i = 0; i < 500; i++) { // 大约延时 0.5 秒
for (j = 0; j < 180; j++) { // 空循环,延时一段时间
}
}
}
void main() {
while (1) { // 无限循环
LED1 = 1; // 第一盏灯亮
delay(); // 延时
LED1 = 0; // 第一盏灯灭
LED2 = 1; // 第二盏灯亮
delay(); // 延时
LED2 = 0; // 第二盏灯灭
LED3 = 1; // 第三盏灯亮
delay(); // 延时
LED3 = 0; // 第三盏灯灭
LED4 = 1; // 第四盏灯亮
delay(); // 延时
LED4 = 0; // 第四盏灯灭
LED5 = 1; // 第五盏灯亮
delay(); // 延时
LED5 = 0; // 第五盏灯灭
LED6 = 1; // 第六盏灯亮
delay(); // 延时
LED6 = 0; // 第六盏灯灭
LED7 = 1; // 第七盏灯亮
delay(); // 延时
LED7 = 0; // 第七盏灯灭
LED8 = 1; // 第八盏灯亮
delay(); // 延时
LED8 = 0; // 第八盏灯灭
}
}
```
这个代码和之前的流水灯代码相似,只不过增加了 LED 灯的数量和相应的定义。在循环中依次点亮每盏灯,并延时 0.5 秒后再熄灭。延时函数 `delay()` 也是通过空循环来实现的。
阅读全文