社区导航

 

搜索
查看: 2180|回复: 3

[原创] 【MicroPython】LAB04 - MAX7219 8x8 点阵驱动

[复制链接]

704

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

发表于 2016-7-9 11:40 | 显示全部楼层 |阅读模式
本帖最后由 slotg 于 2016-7-9 11:41 编辑

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

MicroPython 上有 2 组 SPI 接口:

P01.JPG

我们使用第 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)
复制代码

演示视频:

20160709104645_1_s.gif



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

评分

1

查看全部评分



回复

使用道具 举报

9051

TA的帖子

14

TA的资源

版主

Rank: 6Rank: 6

测评达人

发表于 2016-7-9 16:27 | 显示全部楼层
这个比较有意思。

点评

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


回复

使用道具 举报

704

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

 楼主| 发表于 2016-7-9 16:58 | 显示全部楼层
dcexpert 发表于 2016-7-9 16:27
这个比较有意思。

感谢关注


回复

使用道具 举报

121

TA的帖子

0

TA的资源

禁止发言

发表于 2019-11-4 09:21 | 显示全部楼层

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

关键特性

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

应用

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


回复

使用道具 举报

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

关闭

站长推荐上一条 /5 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-11-14 06:54 , Processed in 0.178600 second(s), 19 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表