51单片机C语言用二维数组点亮流水灯简单编程
时间: 2023-10-05 21:07:38 浏览: 171
032、用数组作函数参数控制流水花样 (AT89S52单片机).rar
以下是51单片机C语言用二维数组点亮流水灯的简单编程:
```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;
// 定义二维数组,表示LED灯的状态
unsigned char led[8][8] = {
{0, 0, 0, 0, 0, 0, 0, 1},
{1, 0, 0, 0, 0, 0, 0, 0},
{0, 1, 0, 0, 0, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0},
{0, 0, 0, 0, 0, 0, 1, 0},
};
void main()
{
unsigned char i, j;
while(1)
{
// 点亮LED灯
for(i = 0; i < 8; i++)
{
LED1 = led[i][0];
LED2 = led[i][1];
LED3 = led[i][2];
LED4 = led[i][3];
LED5 = led[i][4];
LED6 = led[i][5];
LED7 = led[i][6];
LED8 = led[i][7];
// 延时一段时间,使灯的状态保持一段时间
for(j = 0; j < 200; j++);
}
}
}
```
以上代码中,通过定义一个二维数组来表示LED灯的状态,每次循环点亮对应的LED灯,然后延时一段时间,使灯的状态保持一段时间,再点亮下一个LED灯。循环不断执行,从而实现流水灯的效果。
阅读全文