系列文章
todo:
文章目录
- 前言
- 1. 简单了解MAX7219
- 1.1 引脚说明
- 1.2 寄存器说明
- 1.2.1 选位寄存器
- 1.2.2 BCD译码器设置寄存器
- 1.2.3 亮度寄存器
- 1.2.4 扫描限制寄存器
- 1.2.5 显示测试寄存器
- 1.2.6 关停寄存器
- 1.3 spi总线通信时序
- 1.4 数据格式
- 2. 使用MAX7219驱动数码管
- 2.1 驱动数码管的原理图
- 2.2 MAX7219驱动程序
- 2.2.1 定义spi信号引脚和寄存器地址
- 2.2.2 根据时序图实现写字节
- 2.2.3 根据通信数据格式需要实现写数据(16bit)
- 2.2.4 初始化MAX7219
- 3. 仿真效果
前言
该文章目的:让大家快速上手——知道如何使用MAX7219。故MAX7219就不做详细介绍了(需要了解的话可以看其他博文及数据手册)。
1. 简单了解MAX7219
max7219是一个串行输入/输出共阴极数码管(点阵)驱动芯片。1个MAX7219最多可以驱动8位数码管。它具有自动扫描(切换位),BCD译码器(即 不用管数码管段码值 需要让其显示几直接填几就好)、内部8X8的静态RAM(可以存放显示数据 用作驱动8x8点阵)、亮度控制等功能。我们需要通过SPI总线驱动它。
注意:只能驱动共阴极的哦
1.1 引脚说明
可以看到 spi总线的3条控制线 DIN、LOAD(CS)、CLK
1.2 寄存器说明
主要有以下几个寄存器
1.2.1 选位寄存器
后面对应的地址 比如我要给 让第一位数码管显示1 那么 我先发 第一位选位寄存器地址 然后发内容
1.2.2 BCD译码器设置寄存器
配置是否使用 译码器 可按位设置
1.2.3 亮度寄存器
可以看到亮度设置范围 0x00-0x0F
1.2.4 扫描限制寄存器
配置要显示的位数
1.2.5 显示测试寄存器
测试模式 配置该寄存器为0X01 效果:所有都亮
即显示8.8.8.8.8.8.8.8.
1.2.6 关停寄存器
配置关闭显示/正常显示
1.3 spi总线通信时序
1.4 数据格式
如图 一共16位 其中 8-11 4位地址 0-7 8位数据内容
所以每次传16位的数据
后面驱动程序都是根据 时序图完成的 一个简单的spi写时序
2. 使用MAX7219驱动数码管
2.1 驱动数码管的原理图
级联时
2.2 MAX7219驱动程序
2.2.1 定义spi信号引脚和寄存器地址
根据原理图 接线定义
定义寄存器地址