5361|3

662

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

【MicroPython】LAB04 - MAX7219 8x8 点阵驱动 [复制链接]

 
本帖最后由 slotg 于 2016-7-9 11:41 编辑

MAX7219 是一颗 LED 的显示芯片,可以驱动 8 位的数码管或是 8x8 点阵,芯片使用了 SPI 接口的控制方式,这个 LAB 就是要使用 MicroPython 板上的 SPI 接口来控制一片 MAX7219 8x8 点阵模块。

MicroPython 上有 2 组 SPI 接口:



我们使用第 1 组也就是 X6、X8 这一组,由于只使用到了 MOSI 功能,因此将 X7 定义为 MAX7219 的 CS 控制管脚。

  1. spi = pyb.SPI(1, pyb.SPI.MASTER, bits=8, firstbit=pyb.SPI.MSB, crc=None)

  2. MAX7219_CS = Pin('X7', Pin.OUT_PP)
复制代码

程序中定义了 send_data(reg, dta) 函数实现将资料写入 MAX7219 寄存器的功能:

  1. def send_data(reg, dta):
  2.     MAX7219_CS.low()
  3.     spi.send(reg)
  4.     spi.send(dta)
  5.     MAX7219_CS.high()
复制代码

这次的 LAB 是在 8x8 点阵模块上循环显示一个点阵动画,完整程序如下:

main.py
  1. # main.py       LAB04

  2. from pyb import SPI
  3. from pyb import Pin

  4. ########################################################
  5. def send_data(reg, dta):
  6.     MAX7219_CS.low()
  7.     spi.send(reg)
  8.     spi.send(dta)
  9.     MAX7219_CS.high()
  10. ########################################################
  11. def MAX7219_Init():
  12.     send_data(0x09,0)
  13.     send_data(0x0a,8)
  14.     send_data(0x0b,7)
  15.     send_data(0x0c,1)
  16.     send_data(0x0f,0)
  17.     for i in range(1, 9):
  18.         send_data(i,0)
  19. ########################################################

  20. # DOT display pattern
  21. pattn = [[0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00],
  22.          [0x00, 0x00, 0x3C, 0x24, 0x24, 0x3C, 0x00, 0x00],
  23.          [0x00, 0x7E, 0x42, 0x42, 0x42, 0x42, 0x7E, 0x00],
  24.          [0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF]]


  25. spi = pyb.SPI(1, pyb.SPI.MASTER, bits=8, firstbit=pyb.SPI.MSB, crc=None)

  26. MAX7219_CS = Pin('X7', Pin.OUT_PP)
  27. MAX7219_CS.high()


  28. MAX7219_Init()

  29. while True:
  30.     for i in range (4):
  31.         for j in range (8):
  32.             send_data(j+1,pattn[i][j])
  33.         pyb.delay(200)
复制代码

演示视频:





【MicroPython】LAB01 - 流水灯
【MicroPython】LAB02 - 流水灯2
【MicroPython】LAB03 - GPIO 输入

最新回复

MAX7219、MAX7221:典型应用电路放大+ 关键特性 10MHz串行接口  独立的LED段控制  译码/非译码位选择  150µA低功耗关断(数据保持)  数字和模拟亮度控制  上电时处于全灭状态  驱动共阴极LED显示器  段驱动器的摆率限制功能有助于降低EMI (MAX7221)  SPI、QSPI、MICROWIRE串行接口(MAX7221)  24引脚DIP和SO封装  应用 条形图显示器 工业控制器 LED点阵显示器 面板表   详情 回复 发表于 2019-11-4 09:21

赞赏

1

查看全部赞赏

点赞 关注(2)
 
 

回复
举报

1万

帖子

25

TA的资源

版主

沙发
 
这个比较有意思。

点评

感谢关注  详情 回复 发表于 2016-7-9 16:58
 
 
 

回复

662

帖子

0

TA的资源

纯净的硅(初级)

板凳
 
dcexpert 发表于 2016-7-9 16:27
这个比较有意思。

感谢关注
 
 
 

回复

125

帖子

0

TA的资源

一粒金砂(高级)

4
 

MAX7219、MAX7221:典型应用电路MAX7219、MAX7221:典型应用电路放大+

关键特性

  • 10MHz串行接口 
  • 独立的LED段控制 
  • 译码/非译码位选择 
  • 150µA低功耗关断(数据保持) 
  • 数字和模拟亮度控制 
  • 上电时处于全灭状态 
  • 驱动共阴极LED显示器 
  • 段驱动器的摆率限制功能有助于降低EMI (MAX7221) 
  • SPI、QSPI、MICROWIRE串行接口(MAX7221) 
  • 24引脚DIP和SO封装 

应用

  • 条形图显示器
  • 工业控制器
  • LED点阵显示器
  • 面板表
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表