用C语言编写一个用51单片机控制的3*3的矩阵
时间: 2023-07-15 07:15:12 浏览: 41
以下是一个简单的用C语言编写的用51单片机控制的3*3矩阵:
```c
#include <reg51.h>
// 定义LED的IO口
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;
void main()
{
// 循环显示LED
while(1)
{
// 第一行
led1 = 1;
led2 = 0;
led3 = 0;
led4 = 0;
led5 = 0;
led6 = 0;
led7 = 0;
led8 = 0;
delay(1000); // 延时1秒
// 第二行
led1 = 0;
led2 = 1;
led3 = 0;
led4 = 0;
led5 = 0;
led6 = 0;
led7 = 0;
led8 = 0;
delay(1000); // 延时1秒
// 第三行
led1 = 0;
led2 = 0;
led3 = 1;
led4 = 0;
led5 = 0;
led6 = 0;
led7 = 0;
led8 = 0;
delay(1000); // 延时1秒
// 第四行
led1 = 0;
led2 = 0;
led3 = 0;
led4 = 1;
led5 = 0;
led6 = 0;
led7 = 0;
led8 = 0;
delay(1000); // 延时1秒
// 第五行
led1 = 0;
led2 = 0;
led3 = 0;
led4 = 0;
led5 = 1;
led6 = 0;
led7 = 0;
led8 = 0;
delay(1000); // 延时1秒
// 第六行
led1 = 0;
led2 = 0;
led3 = 0;
led4 = 0;
led5 = 0;
led6 = 1;
led7 = 0;
led8 = 0;
delay(1000); // 延时1秒
// 第七行
led1 = 0;
led2 = 0;
led3 = 0;
led4 = 0;
led5 = 0;
led6 = 0;
led7 = 1;
led8 = 0;
delay(1000); // 延时1秒
// 第八行
led1 = 0;
led2 = 0;
led3 = 0;
led4 = 0;
led5 = 0;
led6 = 0;
led7 = 0;
led8 = 1;
delay(1000); // 延时1秒
}
}
// 延时函数
void delay(unsigned int i)
{
unsigned int j,k;
for(j=0;j<i;j++)
{
for(k=0;k<125;k++);
}
}
```
这段代码使用了P1口的8个IO口来控制LED的亮灭,通过循环控制每个LED的亮灭来实现3*3的矩阵。同时使用了一个简单的延时函数,控制每个LED亮灭的时间间隔。