7001| 16
|
[入门教程] [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([reg, data])):将 位址、数据 写入到 MAX7219 设备中。位址即寄存器位址,数据即寄存器对应的数据。 效果: P.S. 参考资料: 1. Micro:bit SPI 串行外围设备接口 2. MAX7219 7-segment python microbit driver 3. 《超图解 Arduino 互动设计入门》(第3版)第8章 LED 矩阵与 SPI 介面控制 |
……I dont like 淘宝 东特莱克桃宝 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed