[2020]Micro:bit 控制 MAX7219 8x8 点阵屏

2020-02-011.2万
AI 快速预览详细 收起
本文介绍了如何使用Micro:bit通过SPI接口控制MAX7219 8x8点阵屏显示乐符图案。首先,详细说明了MAX7219的寄存器配置,包括资料寄存器、解码模式、显示强度等。接着,提供了具体的接线图,展示了如何将Micro:bit与MAX7219 8x8点阵屏连接。最后,给出了完整的代码示例,帮助用户实现乐符图案的显示。适用于STEM教育场景,适合初学者学习和实践。
MAX7219 8x8 点阵屏是利用 SPI(Serial Peripheral Interface) ,即串行外设接口跟开发板进行通信。

原理:
MAX7219 通过不同寄存器的位址,接收数据,进而控制 8x8 点阵屏显示。

MAX7219:
寄存器名称                         位址(十六进制)
资料0(Digital 0)                 0x1
资料1(Digital 1)                 0x2
资料2(Digital 2)                 0x3
资料3(Digital 3)                 0x4
资料4(Digital 4)                 0x5
资料5(Digital 5)                 0x6
资料6(Digital 6)                 0x7
资料7(Digital 7)                 0x8
不运行(No-Op)                  0x0
解码模式(Decode Mode)   0x9
显示强度(Intensity)            0xA
扫描限制(Scan Limit)         0xB
关机(Shutdown)                0xC
显示器检测(Display Test)   0xF

说明:
不运行:串接多个MAX7219时,指定不运行的MAX7219。
解码模式:0 -- 不解码,用于驱动 LED点阵。
                 1 -- BCD解码,用于7段数码管。
显示强度:0 ~ 15(或十六进制 0~F),数字越小,亮度越低。
扫描限制:0 ~ 7,显示 1~ 8 个 LED 数码管,或者显示 LED 点阵屏的 1 ~ 8 行。
               (此处设置为 7,8x8 点阵屏全行显示)
关机:关闭 LED 电源,MAX7219依旧可以接收数据。
显示器检测:0 -- 一般模式。
                    1 -- 检测模式,所有 LED 均被点亮。

目标:
显示乐符图案
[2020]Micro:bit 控制 MAX7219 8x8 点阵屏图1


0 0 0 1 1 0 0 0
0 0 0 1 1 1 0 0
0 0 0 1 1 1 1 0
0 0 0 1 0 0 1 1
0 1 1 1 0 0 0 0
1 1 1 1 0 0 0 0
1 1 1 1 0 0 0 0
0 1 1 0 0 0 0 0

注意:竖向的数据从左到右构成寄存器资料 0 ~ 7 的数据

高位元-----              ----低位元
                 |             |              十六进制
资料0:0b01100000                0x60
资料1:0b11110000                0xF0
资料2:0b11110000                0xF0
资料3:0b01111111                0x7F
资料4:0b00000111                0x07
资料5:0b00000110                0x06
资料6:0b00001100                0x0C
资料7:0b00001000                0x08


接线:
max7219          micro:bit
VCC          ---    VCC            [电源线]
GND         ---     GND           [接地线]
DIN           ---     MOSI(P15) [主机发出从机接收]
CS            ---     P1               [从机选择线]
CLK          ---     SCK(P13)   [串行时钟信号]


代码:
[2020]Micro:bit 控制 MAX7219 8x8 点阵屏图2

spi.write(buff):将字节的 buff 写入总线
spi.write(bytearray([reg, data])):将 位址、数据 写入到 MAX7219 设备中。位址即寄存器位址,数据即寄存器对应的数据。

效果:
[2020]Micro:bit 控制 MAX7219 8x8 点阵屏图3

P.S. 参考资料:
1. Micro:bit SPI 串行外围设备接口
2. MAX7219 7-segment python microbit driver
3. 《超图解 Arduino 互动设计入门》(第3版)第8章 LED 矩阵与 SPI 介面控制

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(10)
jfMTScEaoh0s
。。。。。。。。。。。。。。。
三春牛-创客
请问哪里有卖这个点阵屏呢?
三春牛-创客
发个链接。
jfMTScEaoh0s
淘宝上有
三春牛-创客
看起来真的很难。
三春牛-创客
这个很棒!
jfMTScEaoh0s
DFRobot买不到MAX7219
三春牛-创客
可以吗?
jfMTScEaoh0s
……I dont like 淘宝 东特莱克桃宝
共3条回复,已加载2条,点击查看更多共3条回复,已加载全部
dlzxlsx
老师,我尝试使用micropython(mu)串口命令控制dfplayer mini(mp3)模块,Microbit.uart不知如何使用,请赐教。
啊啊啊1
求问为什么我连接并且把程序刷进去了MAX7219没反应
yywudao
yywudao
作者
回复啊啊啊1
优先检查下接线是否OK
gada888
挺棒的
kylinpoet
这个好,必须支持。
且歌且行
这个看起来好像一点都不简单~
- 没有更多了 -