单片机流水灯代码,灯亮延迟0.5秒
时间: 2023-11-13 12:26:15 浏览: 32
下面是一个基于51单片机的流水灯代码,每盏灯亮起的时间为0.5秒:
```c
#include <reg51.h>
// 定义 LED 灯的端口
sbit LED1 = P1^0;
sbit LED2 = P1^1;
sbit LED3 = P1^2;
sbit LED4 = P1^3;
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; // 第四盏灯灭
}
}
```
这个代码使用 `sbit` 关键字定义了每个 LED 灯的端口,然后在无限循环中依次点亮每盏灯,并延时 0.5 秒后再熄灭。其中延时函数 `delay()` 是通过空循环来实现的,循环次数大约需要根据实际情况进行调整。