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