Proteus仿真 | 51单片机驱动MAX7219数码管详解

系列文章
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(可以存放显示数据 用作驱动8×8点阵)、亮度控制等功能。我们需要通过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. 仿真效果

    物联沃分享整理
    物联沃-IOTWORD物联网 » Proteus仿真 | 51单片机驱动MAX7219数码管详解

    发表评论