数码管显示芯片MAX7219
仿真在这篇blog里
1.max7219芯片

各引脚的功能为:
DIN:串行数据输入端
DOUT:串行数据输出端,用于级连扩展
LOAD:装载数据输入
CLK:串行时钟输入
DIG0~DIG7:8位LED位选线,从共阴极LED中吸入电流
SEG A~SEG G DP 7段驱动和小数点驱动
ISET: 通过一个10k电阻和Vcc相连,设置段电流
2.数据及时序
1.max7219通信方式为SPI,16bit 数据格式就是2字节 = 地址 + 数据 。先发高位,即先发地址再发数据。
16位数据包结构如下图:

2.对AX719串行数据以16位包的形式从DIN引脚串行输人,在CLK的每一个上升沿一位行地送入芯片内部16位移位寄存器,而不管LOAD脚的状态如何,LOAD脚必须在第16CK上升沿出现的同时或之后,并在下一个 CLK上升沿之前变为高电平,否则移入的数据将丢失。

3.寄存器及指令
下图就是寄存器表地址

5个控制寄存器分别为:译码方式,亮度设置,扫描范围(选择扫描位数),停机方式,显示测试
功能概述
- 解码模式(指令=X9+hex code)
是否支持BCD解码

- 亮度设置(指令=XA+hex code)
选择亮度

- 扫描限制(指令=XB+hex code)
选择使用几个数码管,数量小于等于三个时必须进行电流设置

- 掉电模式 (指令=XC+hex code)
选择是否掉电

显示测试 (指令=XF+hex code)
正常显示=0;显示测试=1;
![图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hzq2db5o-1632302078032)(C:\Users\86156\AppData\Roaming\Typora\typora-user-images\image-20210922163424981.png)]](https://webproxy.poorya-velaei-d67.workers.dev/https://i-blog.csdnimg.cn/blog_migrate/6fb3db44c04607388a4d688608c51d1c.png)
4.初始化max7219
//寄存器宏定义
#define DECODE_MODE 0x09 //译码控制寄存器
#define INTENSITY 0x0A //亮度控制寄存器
#define SCAN_LIMIT 0x0B //扫描界限寄存器
#define SHUT_DOWN 0x0C //掉电模式寄存器
#define DISPLAY_TEST 0x0F //显示控制寄存器
void Initial(void)
{
Write7219(SHUT_DOWN,0x01); //开启正常工作模式(0xX1)
Write7219(DISPLAY_TEST,0x00); //选择正常工作模式(0xX0)
Write7219(DECODE_MODE,0xff); //选用全译码模式
Write7219(SCAN_LIMIT,0x07); //8只LED全用
Write7219(INTENSITY,0x04); //设置初始亮度9/32
}
本文详细介绍了数码管显示芯片MAX7219,包括其芯片功能、SPI通信方式、16位数据包结构、寄存器与指令的使用,以及初始化过程。内容覆盖了DIN、DOUT、LOAD、CLK等引脚作用,解码模式、亮度设置、扫描范围等关键配置。
2690

被折叠的 条评论
为什么被折叠?



