嵌入式C语言实现100个跑马灯程序
时间: 2024-03-06 14:51:22 浏览: 33
好的,跑马灯程序是一种常见的 LED 灯条效果,下面是嵌入式 C 语言实现 100 个跑马灯程序的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
// 定义 LED 灯的数量
#define LED_NUM 8
// 定义每个 LED 灯的状态
typedef struct {
int state;
} LED;
// 初始化 LED 灯的状态
void init_led(LED *led, int num) {
for (int i = 0; i < num; i++) {
led[i].state = 0;
}
}
// 更新 LED 灯的状态
void update_led(LED *led, int num) {
for (int i = 0; i < num; i++) {
if (led[i].state == 1) {
printf("*");
} else {
printf("-");
}
}
printf("\n");
}
// 跑马灯程序1:从左到右移动
void program_1(LED *led, int num) {
for (int i = 0; i < num; i++) {
led[i].state = 1;
update_led(led, num);
led[i].state = 0;
Sleep(100);
}
}
// 跑马灯程序2:从右到左移动
void program_2(LED *led, int num) {
for (int i = num - 1; i >= 0; i--) {
led[i].state = 1;
update_led(led, num);
led[i].state = 0;
Sleep(100);
}
}
// 跑马灯程序3:从中间向两边扩散
void program_3(LED *led, int num) {
int mid = num / 2;
for (int i = 0; i <= mid; i++) {
led[mid - i].state = 1;
led[mid + i].state = 1;
update_led(led, num);
led[mid - i].state = 0;
led[mid + i].state = 0;
Sleep(100);
}
}
// 跑马灯程序4:随机闪烁
void program_4(LED *led, int num) {
srand(time(NULL));
for (int i = 0; i < 10; i++) {
int index = rand() % num;
led[index].state = 1;
update_led(led, num);
led[index].state = 0;
Sleep(100);
}
}
// 主函数
int main() {
LED led[LED_NUM];
init_led(led, LED_NUM);
program_1(led, LED_NUM);
program_2(led, LED_NUM);
program_3(led, LED_NUM);
program_4(led, LED_NUM);
return 0;
}
```
上述代码实现了四种跑马灯程序,分别为从左到右移动、从右到左移动、从中间向两边扩散、随机闪烁。可以按需求添加更多的跑马灯程序。注意:代码中使用了 Windows 下的 `Sleep()` 函数,如果在其他系统下运行需要修改为相应的函数。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)