请用micropython编写max7219的控制程序
以下是一个简单的micropython程序,用于控制max7219 LED矩阵模块:
from machine import Pin, SPI
import time
# 定义SPI总线引脚
spi = SPI(1, baudrate=10000000, polarity=0, phase=0)
cs = Pin(15, Pin.OUT)
# 初始化max7219
def max7219_init():
cs.value(1)
spi.write(b"\x09\x00") # 关闭译码模式
spi.write(b"\x0a\x03") # 亮度设置
spi.write(b"\x0b\x07") # 扫描限制设置
spi.write(b"\x0c\x01") # 打开显示
# 在max7219上显示数字
def max7219_display_number(num):
if num < 0 or num > 9999:
return
cs.value(0)
spi.write(b"\x01\x00") # 第1个数字
spi.write(b"\x02\x00") # 第2个数字
spi.write(b"\x03\x00") # 第3个数字
spi.write(b"\x04\x00") # 第4个数字
digits = [0, 0, 0, 0]
i = 0
while num > 0:
digits[i] = num % 10
num = num // 10
i += 1
for j in range(4):
spi.write(bytes([j+1, digits[j]]))
cs.value(1)
# 测试程序
max7219_init()
while True:
for i in range(10000):
max7219_display_number(i)
time.sleep(0.1)
在这个程序中,我们首先使用SPI总线连接max7219模块,并定义了CS引脚。然后,我们定义了两个函数:max7219_init()用于初始化max7219模块,max7219_display_number(num)用于在max7219模块上显示数字。
在max7219_init()函数中,我们通过SPI总线向max7219模块发送一些命令来初始化模块。具体来说,我们关闭译码模式、设置亮度、设置扫描限制和打开显示。
在max7219_display_number(num)函数中,我们首先检查数字是否在0到9999之间。然后,我们通过SPI总线向max7219模块发送命令来设置每个数字的值。最后,我们通过CS引脚将数据发送到max7219模块。
在测试程序中,我们首先初始化max7219模块,然后循环显示数字0到9999。我们使用time.sleep()函数来控制数字显示的速度。
原文地址: https://www.cveoy.top/t/topic/b6ci 著作权归作者所有。请勿转载和采集!