c语言跑马灯程序实现两个灯作为一组依次闪烁
时间: 2024-11-15 11:04:39 浏览: 16
1闪烁灯一 C语言 程序代码
在C语言中,我们可以使用定时器函数`delay()`和位操作来实现简单的跑马灯效果,这里我们以两个LED灯为例,假设这两个灯对应于硬件上的两个状态位。以下是一个基本的代码示例:
```c
#include <stdio.h>
#include <time.h> // 包含定时函数
#define LED1 0 // 第一个LED对应的IO口
#define LED2 1 // 第二个LED对应的IO口
#define DELAY_MS 500 // 每次延时500毫秒
void set_led(int led_num, int state) {
if (led_num == 1) {
// 对应LED1的设置,例如使用GPIO库函数
// GPIO_set_direction(LED1, OUTPUT); // 设置为输出
printf("%d", state ? "ON" : "OFF"); // 输出状态信息
// GPIO_write(LED1, state); // 开关LED
} else if (led_num == 2) {
// 对应LED2的设置,类似上面的操作
}
}
int main() {
int led1_state = 0;
int led2_state = 0;
while (1) { // 无限循环
set_led(LED1, led1_state); // 切换LED1状态
delay(DELAY_MS);
led1_state = !led1_state; // 取反当前状态
// 当LED1熄灭时,切换到LED2并保持一段时间
if (!led1_state) {
set_led(LED2, led2_state);
delay(DELAY_MS * 2); // 延长LED2亮的时间
led2_state = !led2_state;
}
}
return 0;
}
```
这个程序会交替点亮第一个LED(灯A)和第二个LED(灯B),形成跑马灯的效果。注意这只是一个基础演示,实际应用中可能需要使用硬件相关的库函数和平台特定的驱动。
阅读全文