Arduino与Proteus仿真实例-MAX6955驱动8位16段LED仿真

MAX595驱动8位16段LED仿真

1、MAX6955介绍

MAX6955 是一款紧凑型显示驱动器,通过兼容 I2C 的 2 线串行接口将微处理器连接到 7 段、14 段和 16 段 LED 显示器。 MAX6955 可驱动多达 16 位 7 段、8 位 14 段、8 位 16 段或 128 个分立 LED,同时工作电源电压低至 2.7V。该驱动程序包括五个 I/O 扩展器或通用 I/O (GPIO) 线,其中部分或全部可配置为按键开关读取器。钥匙开关阅读器自动扫描和去抖动多达 32 个开关的矩阵。

MAX6955片上包括完整的 14 段和 16 段 ASCII 104 字符字体、用于 7 段显示器的十六进制字体、多路扫描电路、阳极和阴极驱动器以及存储每个数字的静态 RAM。显示数字的最大段电流使用单个外部电阻器设置。数字强度可以使用 16 级内部数字亮度控制进行独立调整。 MAX6955 包括低功耗关断模式、允许用户显示 1 至 16 位数字的扫描限制寄存器、段闪烁(如果需要,可在多个驱动器之间同步)以及强制所有 LED 点亮的测试模式。 LED 驱动器受压摆率限制以降低EMI。

MAX6955有如下特性:

1)简化驱动 5 x 7 矩阵 LED 显示器

  • 驱动共阴极单色和双色LED显示屏
  • 驱动多达 16 位 7 段、8 位 14 段、
  • 8 位 16 段、128 个离散 LED 或一个数字类型的组合
  • 2.7V 至 5.5V 操作

2)标准 2 线接口支持多种微处理器架构

  • 400kbps速率的2线 I2C兼容接口

3)集成的灵活性支持不同的应用要求

  • 用于 14 段的内置 ASCII 104 字符字体和 16 段数字和十六进制字体7 段数字
  • 16 步逐位数字亮度控制
  • 上电时显示消隐
  • 每段自动闪烁控制
  • 10μA(典型值)低功耗关断(数据保留)

4)五个 GPIO 端口引脚可配置为按键开关读取器扫描和去抖动多达 32 个开关n键翻转

5) 按键输入去抖动时的 IRQ 输出

6)用于降低 EMI 的压摆率限制段驱动器

7)36 引脚 SSOP 和 40 引脚 DIP 和 TQFN 封装

8)涵盖汽车温度范围标准,支持在恶劣环境中使用

在这里插入图片描述

MAX6955的内部框架如下:

在这里插入图片描述

MAX6955的引脚功能如下:

在这里插入图片描述

MAX6955支持7段、14段、16段LED显示管

在这里插入图片描述

对于不同显示类型LED的驱动能力如下:

在这里插入图片描述

对于不同类型的LED,连接方式如下:

1)8位7段LED管

在这里插入图片描述

2)8位14段LED管

在这里插入图片描述

3)8位16段LED管

在这里插入图片描述

2、仿真电路原理图

在这里插入图片描述

3、仿真代码实现

本次实例使用如下开源库:

演示代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <Arduino.h>

#include <Wire.h>
#include "MAX6955.h"

#define SCL A5
#define SDA A4

MAX6955 maxdisp(0);

void setup()
{
maxdisp.init();


maxdisp.setGlobalIntensity(15);

//maxdisp.clear();
//maxdisp.write(PLANE\_0, "01234567");

}
char\* dispbuf[8] = {0};
void loop()
{
maxdisp.clear();
maxdisp.write(PLANE_0,"00000008");
delay(500);
maxdisp.clear();
maxdisp.write(PLANE_0,"11111111");
delay(500);
maxdisp.clear();
maxdisp.write(PLANE_0,"22222222");
delay(500);
maxdisp.write(PLANE_0,"33333333");
delay(500);
maxdisp.clear();
maxdisp.write(PLANE_0,"44444444");
delay(500);
maxdisp.clear();
maxdisp.write(PLANE_0,"55555555");
delay(500);
maxdisp.write(PLANE_0,"66666666");
delay(500);
maxdisp.clear();
maxdisp.write(PLANE_0,"77777777");
delay(500);
maxdisp.clear();
maxdisp.write(PLANE_0,"88888888");
delay(500);
maxdisp.clear();
maxdisp.write(PLANE_0,"99999999");
delay(500);
}

4、仿真结果

在这里插入图片描述

文章来源: https://iotsmart.blog.csdn.net/article/details/121200827