系列文章
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信号引脚和寄存器地址
根据原理图 接线定义

定义寄存器地址


2.2.2 根据时序图实现写字节

2.2.3 根据通信数据格式需要实现写数据(16bit)

2.2.4 初始化MAX7219

3. 仿真效果










![[链表OJ题 7] 环形链表](https://img-blog.csdnimg.cn/img_convert/760fde69be2841adc9f35967fbb6e9ad.png)




![[网络安全]DVWA之XSS(Stored)攻击姿势及解题详析合集](https://img-blog.csdnimg.cn/bffa6337b41a438594b3ee989f5692ec.png#pic_center)




