【Proteus仿真】| 51单片机——MAX7219 驱动数码管

系列文章
todo:

前言

该文章目的:让大家快速上手——知道如何使用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. 仿真效果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43822014/article/details/130750554