Skip to content

矩阵LED(8x8 点阵) ​

8行8列64点 · 动态扫描显示 · 视觉暂留效应

一、理论基础 ​

1.1 器件概述 ​

本系统采用 8x8 矩阵 LED(点阵显示器),由 8 行 8 列共 64 个发光二极管组成,每个发光二极管放置在行线和列线的交叉点上。当对应的某一行置高电平、某一列置低电平时,相应的二极管就点亮。

矩阵LED广泛应用于信息显示屏、广告牌、游戏设备、状态指示等场景。

1.2 工作原理 ​

行列扫描:要显示一个字符或图形,需要使与字的形状相近的点亮起来。具体方法:

  1. 先把第一行送高电平,然后给每一列送去相应的字节(列数据),第一行的相应点就亮起来
  2. 经过一段延时,把第二行送高电平,再给每一列送相应的字节,第二行也亮起来
  3. 同样继续第三行、第四行……直到第八行
  4. 由于每一行 LED 很快就转到下一行,利用视觉暂留效应,在快速扫描的情况下整个矩阵就显示出一个完整的字符或图形

1.3 关键参数 ​

参数规格
点阵规格8 x 8 = 64 点
驱动方式行扫描 + 列数据(动态扫描)
行控制74HC573 锁存器(P0.5 使能)
列控制74HC573 锁存器(P0.6 使能)
数据口P1(8 位数据总线)
扫描频率≥ 50Hz(避免闪烁)

1.4 典型应用 ​

  • 信息显示屏(公交车、电梯、车站)
  • 电子广告牌、走字屏
  • 游戏设备(贪吃蛇、俄罗斯方块)
  • 状态指示与图案显示
  • 时钟显示(点阵时钟)
  • 教学实验(动态扫描原理)

二、实验实例:矩阵LED控制 ​

2.1 实验目的 ​

  1. 掌握矩阵LED的控制原理
  2. 掌握矩阵LED控制程序的编程方法

2.2 实验内容 ​

在 IAR 集成开发环境中编写矩阵LED控制程序,实现全灭、行循环显示、列循环显示、全亮等效果。

2.3 预备知识 ​

  1. 了解 C 语言的基本知识
  2. 了解 IAR 中编写和调试程序的方法
  3. 了解动态扫描显示和视觉暂留效应

2.4 实验设备 ​

  • 硬件:WSN-V 教学实验箱(带指示扩展板)、PC 机
  • 软件:Windows + IAR EW for 8051

2.5 驱动电路 ​

矩阵LED采用两片 74HC573 锁存器分别控制行和列,P1 口作为 8 位数据总线,P0.5 控制行锁存,P0.6 控制列锁存。

矩阵LED驱动电路原理图

电路说明:

  • 两片 74HC573 锁存器(U1 行控制、U2 列控制)
  • P1(P1.0~P1.7)为 8 位数据总线,连接到两片 74HC573 的数据输入端
  • P0.5 使能行锁存器(LE 引脚),P0.6 使能列锁存器
  • 74HC573 输出端连接 8x8 LED 矩阵的行线和列线
  • 行线置高、列线置低时,交叉点的 LED 点亮

2.6 关键代码 ​

c
void main(void)
{
    unsigned char i;
    P0DIR = (0x01<<0)|(0x01<<4)|(0x01<<5)|(0x01<<6)|(0x01<<7);
    P1DIR = 0xff;       // P1 为输出方式
    P2DIR |= 0x01;
    P0_7 = 0;            // 关闭蜂鸣器

    while(1)
    {
        // 全灭
        P0 |= (0x1 << 6);  P1 = 0x0;  P0 &= ~(0x1 << 6);
        delay();

        // 逐行显示
        for(i=0;i<8;i++){
            P0 |= (0x1 << 6);  P1 = 0xff;  P0 &= ~(0x1 << 6);
            P0 |= (0x1 << 5);  P1 = ~(0x01<<i);  P0 &= ~(0x1 << 5);
            delay();
        }
        // 逐列显示(类似)...
        // 全亮...
    }
}

2.7 实验步骤 ​

  1. 连接好仿真器及指示扩展板
  2. 新建工程 MatrixLED,添加相应文件并修改工程设置
  3. 创建 MatrixLED.c 并加入到工程中
  4. 编写矩阵LED控制函数,实现全灭、行循环、列循环、全亮等显示效果
  5. 编译下载运行,观察 8x8 矩阵 LED 的显示效果

2.8 实验现象 ​

  • 全灭:所有 64 个 LED 熄灭
  • 行循环显示:8 行依次点亮,形成从上到下的流动效果
  • 列循环显示:8 列依次点亮,形成从左到右的流动效果
  • 全亮:所有 64 个 LED 全部点亮

知识点

矩阵LED的关键是动态扫描:利用人眼的视觉暂留效应(约 1/24 秒),以足够快的速度(≥50Hz)逐行扫描,人眼就会看到稳定的图像而不是闪烁。扫描频率越高,显示越稳定,但占用 CPU 时间越多。实际项目中常用定时器中断来实现扫描,确保扫描频率稳定。显示字符时需要预先制作"字模"(每个字符对应 8 字节的列数据)。

内容来源:《WSN-V 物联网综合教学实验指导书》第 7 章·7.2 矩阵LED控制实验,结合课程教学经验整理。


aioteer · 物联网专业课程群

💬AI 伴学配置