单片机流水灯挨个亮的代码
时间: 2024-09-24 19:01:26 浏览: 32
单片机流水灯通常用于学习数字电路基础,通过轮流点亮一组LED灯来展示脉冲控制。这里以51系列单片机如8051为例,假设我们有8个LED灯连接到P0口:
```c
#include <reg52.h> // 使用8051寄存器定义
sbit LED_0 = P0^0; // 定义LED0位地址
sbit LED_1 = P0^1;
... // 对其他LED灯定义类似
void delay_ms(int time) {
unsigned int i, j;
for (i = time; i != 0; i--)
for (j = 119; j != 0; j--) ; // 简单的延时函数
}
int main(void) {
int i = 0;
while(1) { // 无限循环,使LED依次亮起
LED_0 = 1; // 开启LED0
delay_ms(500); // 等待一段时间
LED_0 = 0; // 关闭LED0
// 切换LED,例如从LED0到LED1
if (i % 8 == 7) { // 如果索引超出范围,重新开始
i = 0;
} else {
i++;
}
LED_i = 1; // 将当前的LED设置为1
// 这里将LED_i替换为之前定义的LED变量,如LED_1, LED_2等
delay_ms(500);
LED_i = 0;
}
return 0;
}