物联网AI MicroPython传感器学习 之 MAX7219 数码管点阵屏驱动芯片

学物联网,来万物简单IoT物联网!!在这里插入图片描述

一、产品简介

MAX7219是MAXIM出品的专门驱动7-段数码管、点阵屏的一款芯片,它内置有BCD code-B 译码器、多路扫描电路、段和点阵驱动电路、以及一个8x8的静态ram来存储输出数字,主要用于工业数码屏、点阵屏的显示场景。

  • 数码管
    image.png
  • 点阵屏
    image.png

引脚定义

  • VCC: 5V
  • CLK: host GPIO
  • CS: host GPIO
  • DIN: host GPIO
  • GND: GND

二、技术参数

  • 温度范围:0摄氏度 - +70摄氏度
  • 扫描范围:1-8 数码管

三、软件接口

MAX7219(clk, cs, din) - 创建MAX7219驱动对象

  • 函数原型:

displayDev = MAX7219(clk, cs, din)

  • 参数说明:
参数类型必选参数?说明
clkGPIO传入GPIO对象
csGPIO传入GPIO对象
dinGPIO传入GPIO对象
  • 返回值:
    MAX7219对象成功,返回MAX7219对象;MAX7219对象创建失败,抛出Exception
  • 示例代码:
from machine import Pin            # 驱动库
import max7219                     # MAX7219驱动库

clkObj = Pin(2,Pin.OUT)
csObj = Pin(4,Pin.OUT)
dinObj = Pin(16,Pin.OUT)

displayDev = max7219.MAX7219(clkObj, csObj, dinObj)
  • 输出:

outSegmentDigit - 输出数码管数字

  • 函数功能:
    输出数码管数字
  • 函数原型:

MAX7219.outSegmentDigit(position, digit)

  • 参数说明:
    position: 数码管的位置,从0开始
    digit: 数字,0x0-0xf
  • 返回值:

outMatrixChar - 输出点阵屏字符

  • 函数功能:
    输出数码管数字
  • 函数原型:

MAX7219.outMatrixChar(charactor)

  • 参数说明:
    charactor: 要输出的字符,支持0-9,A-Z
  • 返回值:

initSegmentLed - 初始化数码管

  • 函数功能:
    初始化数码管
  • 函数原型:

MAX7219.initSegmentLed()

  • 参数说明:
  • 返回值:

initMatrixLed - 初始化点阵屏

  • 函数功能:
    初始化点阵屏
  • 函数原型:

MAX7219.initMatrixLed()

  • 参数说明:
  • 返回值:

示例:

from machine import Pin            # 驱动库
import max7219                     # MAX7219驱动库

clkObj = Pin(2,Pin.OUT)
csObj = Pin(4,Pin.OUT)
dinObj = Pin(16,Pin.OUT)

displayDev = max7219.MAX7219(clkObj, csObj, dinObj)

displayDev.initSegmentLed()

displayDev.outSegmentDigit(0, 8)
displayDev.outSegmentDigit(1, 7)
displayDev.outSegmentDigit(2, 6)
displayDev.outSegmentDigit(3, 5)
displayDev.outSegmentDigit(4, 4)
displayDev.outSegmentDigit(5, 3)
displayDev.outSegmentDigit(6, 2)
displayDev.outSegmentDigit(7, 1)
  • 输出:

四、接口案例

  • 代码:
from machine import Pin            # 驱动库
import max7219                     # MAX7219驱动库

clkObj = Pin(2,Pin.OUT)
csObj = Pin(4,Pin.OUT)
dinObj = Pin(16,Pin.OUT)

displayDev = max7219.MAX7219(clkObj, csObj, dinObj)

displayDev.initSegmentLed()

displayDev.outSegmentDigit(0, 8)
displayDev.outSegmentDigit(1, 7)
displayDev.outSegmentDigit(2, 6)
displayDev.outSegmentDigit(3, 5)
displayDev.outSegmentDigit(4, 4)
displayDev.outSegmentDigit(5, 3)
displayDev.outSegmentDigit(6, 2)
displayDev.outSegmentDigit(7, 1)
  • 输出:无

五、通信协议

主控芯片和MAX5219之间通信所用命令字如下表所示:

序号功能说明命令字宏定义
1CS pin输出低电平CMD_WRITE_CS_LOW
2CLK pin输出低电平CMD_WRITE_CLK_LOW
3DIN 输出数据bit8CMD_WRITE_DATA_BIT8
4CLK pin输出高电平CMD_WRITE_CLK_HIGH
5CLK pin输出低电平CMD_WRITE_CLK_LOW
6DIN 输出数据bit7CMD_WRITE_DATA_BIT7
7CLK pin输出高电平CMD_WRITE_CLK_HIGH
23CLK pin输出低电平CMD_WRITE_CLK_LOW
24DIN 输出数据bit1CMD_WRITE_DATA_BIT1
25CLK pin输出高电平CMD_WRITE_CLK_HIGH
1CS pin输出高电平CMD_WRITE_CS_HIGH

输出数字流程

按照主控芯片和MAX7219的通信协议控制CLK、CS和DIN,即可在数码管上显示出对应数字。

六、工作原理

从如下方框图可以看到 MAX7219 内部集成了数码管段驱动电路、多路扫描电路、8x8 静态ram等。
image.png
引脚分布如下,DIG0-DIG7一般数码管的段,是输出管脚,CLK,CS,DIN是输入管脚。
image.png

参考文献及购买链接

[1] MAX7219数码管驱动芯片

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值