yywudao 发表于 2020-2-1 14:40:52

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

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 均被点亮。

目标:
显示乐符图案



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)   [串行时钟信号]


代码:


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

效果:


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

且歌且行 发表于 2020-2-14 21:51:02

这个看起来好像一点都不简单~

kylinpoet 发表于 2020-2-18 04:51:59

这个好,必须支持。

gada888 发表于 2020-2-25 17:17:30

挺棒的

啊啊啊1 发表于 2020-5-10 17:10:55

求问为什么我连接并且把程序刷进去了MAX7219没反应

yywudao 发表于 2020-5-17 21:29:09

啊啊啊1 发表于 2020-5-10 17:10
求问为什么我连接并且把程序刷进去了MAX7219没反应

优先检查下接线是否OK

dlzxlsx 发表于 2020-5-23 18:51:27

yywudao 发表于 2020-2-1 14:40
MAX7219 8x8 点阵屏是利用 SPI(Serial Peripheral Interface) ,即串行外设接口跟开发板进行通信。

原理: ...

老师,我尝试使用micropython(mu)串口命令控制dfplayer mini(mp3)模块,Microbit.uart不知如何使用,请赐教。

jfMTScEaoh0s 发表于 2022-1-18 20:35:12

DFRobot买不到MAX7219

yywudao 发表于 2022-1-22 18:03:30

jfMTScEaoh0s 发表于 2022-1-18 20:35
DFRobot买不到MAX7219

淘宝上一堆

jfMTScEaoh0s 发表于 2022-2-12 14:43:19

yywudao 发表于 2022-1-22 18:03
淘宝上一堆

……I dont like 淘宝 东特莱克桃宝

赤星三春牛! 发表于 2022-2-12 15:16:31

这个很棒!

赤星三春牛! 发表于 2022-2-12 15:17:32

看起来真的很难。

赤星三春牛! 发表于 2022-2-12 15:18:38

请问哪里有卖这个点阵屏呢?

jfMTScEaoh0s 发表于 2022-2-27 16:26:46

赤星三春牛! 发表于 2022-2-12 15:18
请问哪里有卖这个点阵屏呢?

淘宝上有

赤星三春牛! 发表于 2022-2-28 20:44:22

jfMTScEaoh0s 发表于 2022-2-27 16:26
淘宝上有

发个链接。

赤星三春牛! 发表于 2022-2-28 20:45:41

jfMTScEaoh0s 发表于 2022-2-12 14:43
……I dont like 淘宝 东特莱克桃宝

可以吗?

jfMTScEaoh0s 发表于 2024-1-25 21:23:36

。。。。。。。。。。。。。。。
页: [1]
查看完整版本: [2020]Micro:bit 控制 MAX7219 8x8 点阵屏