1 怎样将MAX7219驱动的LED矩阵8x8与ATtiny85微控制器连接-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样将MAX7219驱动的LED矩阵8x8与ATtiny85微控制器连接

454398 来源:网络整理 作者:网络整理 2019-11-25 16:45 次阅读

步骤1:硬件

MAX7219 模块通常如下所示。它们的一侧有输入总线,另一侧有输出总线。这样,您就可以菊花链式连接2个或更多模块,即以菊花链方式连接,以创建更复杂的设置。

我们使用的模块能够使用5个小跳线成链状连接。参见下图。

步骤2:引脚和信号

MAX7219 模块有5个引脚:

VCC –电源(+)

GND –接地(-)

DIN –数据输入

CS –芯片选择

CLK –时钟

这意味着我们需要ATtiny85微控制器一侧的3个引脚来控制模块。这些将是:

PB0 –连接到CLK

PB1 –连接到CS

PB2 –连接到DIN

这足以连接到MAX7219模块并对其进行编程

步骤3:协议

与 MAX7219 进行通信相对容易–它使用同步协议,这意味着我们发送的每个数据位都有一个时钟周期,表示该数据位的存在。

换句话说,我们向位发送2个并行序列-一个用于时钟,另一个用于数据。

第4步:软件

MAX7219 的方式模块的工作原理是:

我们将字节写入其内部寄存器。

MAX7219解释数据。

MAX7219控制矩阵中的LED

这也意味着我们不必一直在LED阵列中盘旋来点亮它们。 -MAX7219控制器负责这一工作。

因此,为了以方便的方式使用MAX7219模块,我们需要一个函数库来实现这一目的。

首先,我们需要一些基本功能,以便写入MAX7219寄存器

向MAX7219写入一个字节。

向MAX7219写一个字(2个字节)。

向控制器写入一个字节的函数如下所示:

void max7219_byte(uint8_t data) {

for(uint8_t i = 8; i 》= 1; i--) {

PORTB &= ~(1 《《 MAX7219_CLK); // Set CLK to LOW

if (data & 0x80) // Mask the MSB of the data

PORTB |= (1 《《 MAX7219_DIN); // Set DIN to HIGH

else

PORTB &= ~(1 《《 MAX7219_DIN); // Set DIN to LOW

PORTB |= (1 《《 MAX7219_CLK); // Set CLK to HIGH

data 《《= 1; // Shift to the left

}

}

现在我们可以向MAX7219发送字节了,我们可以开始发送命令了。这是通过发送2个字节来完成的,第一个字节是内部寄存器的地址,第二个字节是我们要发送的数据。

MAX7219控制器中有十几个寄存器。/p》

发送命令或单词基本上是发送2个连续字节。该函数的实现非常简单。

void max7219_word(uint8_t address, uint8_t data) {

PORTB &= ~(1 《《 MAX7219_CS); // Set CS to LOW

max7219_byte(address); // Sending the address

max7219_byte(data); // Sending the data

PORTB |= (1 《《 MAX7219_CS); // Set CS to HIGH

PORTB &= ~(1 《《 MAX7219_CLK); // Set CLK to LOW

}

请务必在此处注意将CS信号恢复为HIGH的行-这标志着序列的结束-在这种情况下,命令的结尾。控制链中连接的一个以上矩阵时,使用类似的技术。

在开始打开和关闭LED之前,下一步是初始化MAX7219控制器。这是通过将某些值写入某些寄存器来完成的。为了方便起见,在进行编码时,我们可以将初始化序列放入数组中。

uint8_t initseq[] = {

0x09, 0x00, // Decode-Mode Register, 00 = No decode

0x0a, 0x01, // Intensity Register, 0x00 。. 0x0f

0x0b, 0x07, // Scan-Limit Register, 0x07 to show all lines

0x0c, 0x01, // Shutdown Register, 0x01 = Normal Operation

0x0f, 0x00, // Display-Test Register, 0x00 = Normal Operation

};

我们只需要按顺序将上面的5条命令作为地址/数据对发送即可。

下一步步骤–点亮一排LED。

这很简单–我们只需要编写一个命令,其中第一个字节为地址(从0到7),第二个字节为代表8个LED的8位。在行中。

void max7219_row(uint8_t address, uint8_t data) {

if (address 》= 1 && address 《= 8) max7219_word(address, data);

}

请注意,这仅适用于1个矩阵。如果我们将更多矩阵连接在一起,它们将全部显示相同的数据。原因是在发送命令后,我们将CS信号返回到HIGH,这会导致链中的所有MAX7219控制器锁存并显示最后一条命令的内容。

步骤5 :测试

该测试代码并没有做什么,但它演示了如何与MAX7219控制器进行通信。

这是一个简单的测试程序,它可以点亮第一排(r = 1)上的LED在最右边的位置,然后将其向左移动直到到达最左边的位置,然后向上一行(r = 2)进行相同的操作,直到到达顶部(r = 8)。

max7219_init();

for (;;) {

for (uint8_t r = 1; r 《= 8; r++) {

uint8_t d = 1;

for (uint8_t i = 9; i 》 0; i--) {

max7219_row(r, d);

d = d 《《 1;

_delay_ms(50);

}

}

}

MAX7219LED8x8库

上述所有功能都是MAX7219LED8x8的一部分图书馆。其源代码可在https://bitbucket.org/tinusaur/max7219led8x8上获得。

步骤6:应用程序

Tinusaur Shield GAMEx3

如果您已经有了Tinusaur板,我们可以提供Shield GAMEx3,以便将MAX7219模块更容易地连接到ATtiny85微控制器。

Gametinu项目

Gametinu是一个小型游戏平台,您可以使用Shield GAMEx3以及其他一些部件和工具来构建自己的游戏。

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ATtiny
    +关注

    关注

    3

    文章

    128

    浏览量

    19595
  • MAX7219
    +关注

    关注

    4

    文章

    94

    浏览量

    24597
  • LED矩阵
    +关注

    关注

    0

    文章

    71

    浏览量

    17595
收藏 人收藏

    评论

    相关推荐

    具有连接管理器TRM的TMS320F2838x实时微控制器

    德赢Vwin官网 网站提供《具有连接管理器TRM的TMS320F2838x实时微控制器.pdf》资料免费下载
    发表于 11-09 14:25 0次下载
    具有<b class='flag-5'>连接管理器</b>TRM的TMS320F2838<b class='flag-5'>x</b>实时<b class='flag-5'>微控制器</b>

    SN65LVCP408千兆8x8交叉点交换数据表

    德赢Vwin官网 网站提供《SN65LVCP408千兆8x8交叉点交换数据表.pdf》资料免费下载
    发表于 07-03 09:14 0次下载
    SN65LVCP408千兆<b class='flag-5'>8x8</b>交叉点交换<b class='flag-5'>器</b>数据表

    8位Atmel 微控制器ATMEGA325V-8AU技术手册

    德赢Vwin官网 网站提供《8位Atmel 微控制器ATMEGA325V-8AU技术手册.pdf》资料免费下载
    发表于 05-06 14:59 0次下载

    2x18 LED矩阵驱动器8位模拟和8位/16位 PWM调光LP5862数据表

    德赢Vwin官网 网站提供《2x18 LED矩阵驱动器8位模拟和8位/16位 PWM调光LP5862数
    发表于 04-02 09:30 0次下载
    2<b class='flag-5'>x</b>18 <b class='flag-5'>LED</b><b class='flag-5'>矩阵</b><b class='flag-5'>驱动器</b>,<b class='flag-5'>8</b>位模拟和<b class='flag-5'>8</b>位/16位 PWM调光LP5862数据表

    具有8位模拟和8/16 位 PWM 调光的 LP5860 11×18 LED矩阵驱动器数据表

    德赢Vwin官网 网站提供《具有8位模拟和8/16 位 PWM 调光的 LP5860 11×18 LED矩阵驱动器数据表.pdf》资料免费下载
    发表于 04-02 09:29 0次下载
    具有<b class='flag-5'>8</b>位模拟和<b class='flag-5'>8</b>/16 位 PWM 调光的 LP5860 11×18 <b class='flag-5'>LED</b><b class='flag-5'>矩阵</b><b class='flag-5'>驱动器</b>数据表

    具有8位模拟调光和8/16位PWM调光功能的4×18 LED矩阵驱动器LP5864数据表

    德赢Vwin官网 网站提供《具有8位模拟调光和8/16位PWM调光功能的4×18 LED矩阵驱动器LP5864数据表.pdf》资料免费下载
    发表于 04-02 09:08 0次下载
    具有<b class='flag-5'>8</b>位模拟调光和<b class='flag-5'>8</b>/16位PWM调光功能的4×18 <b class='flag-5'>LED</b><b class='flag-5'>矩阵</b><b class='flag-5'>驱动器</b>LP5864数据表

    6x18 LED矩阵驱动器8位模拟和8位/16 位PWM调光LP5866数据表

    德赢Vwin官网 网站提供《6x18 LED矩阵驱动器8位模拟和8位/16 位PWM调光LP5866数
    发表于 04-01 10:22 0次下载
    6<b class='flag-5'>x</b>18 <b class='flag-5'>LED</b><b class='flag-5'>矩阵</b><b class='flag-5'>驱动器</b>,<b class='flag-5'>8</b>位模拟和<b class='flag-5'>8</b>位/16 位PWM调光LP5866数据表

    8x18LED矩阵驱动器8位模拟和8位/16 位 PWM调光LP5868数据表

    德赢Vwin官网 网站提供《8x18LED矩阵驱动器8位模拟和8位/16 位 PWM调光LP5868数据表.pdf》资料免费下载
    发表于 04-01 09:49 0次下载
    <b class='flag-5'>8x18LED</b><b class='flag-5'>矩阵</b><b class='flag-5'>驱动器</b>,<b class='flag-5'>8</b>位模拟和<b class='flag-5'>8</b>位/16 位 PWM调光LP5868数据表

    基于51单片机的智能小车驱动MAX7219控制点阵屏显示小车运动状态?

    智能小车点阵屏显示 个人是小白,想求各位大佬帮忙!!!用51单片机控制小车运动,并驱动MAX7219控制点阵屏显示小车运动状态,就是当小车向前行驶,点阵屏显示向上的箭头\'↑\'。
    发表于 02-05 00:50

    瑞萨电子推出RA8T1系列微控制器

    瑞萨电子近日宣布推出RA8T1系列微控制器(MCU),专为工业和建筑自动化以及智能家居中的电机、电源和其他产品的实时控制而设计。这款基于Arm Cortex-M85内核的MCU产品,旨
    的头像 发表于 02-01 16:40 1033次阅读

    CAN如何读取SAF-C515C-8EM微控制器

    您好,请告诉我您 CAN 如何读取 SAF-C515C-8EM 微控制器,然后您读取的内容写入新的微控制器
    发表于 01-31 07:53

    Wdg_17_Scu与BSW集成,如果没有调试微控制器停止运行的原因?

    时,如果没有调试微控制器停止运行。 移除 JTAG 后,微控制器停止并无法重新启动。 相关详情: 我正在使用带有 Trace32 Powerview 的劳特巴赫调试
    发表于 01-23 08:27

    FH8A51S封装SOP8 SOT23-6 微控制器MCU介绍

    FH8A51S封装SOP8 SOT23-6微控制器MCU单片机可代开发烧录 在当今的电子设备中,微控制器(MCU)已经成为不可或缺的核心组件。而FH
    的头像 发表于 01-16 23:05 987次阅读
    FH<b class='flag-5'>8</b>A51S封装SOP<b class='flag-5'>8</b> SOT23-6 <b class='flag-5'>微控制器</b>MCU介绍

    【飞腾派4G版免费试用】+点阵显示模块的显示驱动

    前面已python编程的方式实现了串行数码管的显示驱动,与之相近的是一款点阵显示模块,它也是基于串并转换芯片MAX7219,它与开发板的连接关系为: scl----gpio1_12
    发表于 01-12 14:47

    max7219驱动8段数码管详解

    ,因此在各种电子设备中得到了广泛的应用。 本文详细介绍如何使用MAX7219驱动8段数码管。 一、硬件连接 首先需要将
    的头像 发表于 12-30 11:06 4836次阅读
    <b class='flag-5'>max7219</b><b class='flag-5'>驱动</b><b class='flag-5'>8</b>段数码管详解