MAX7219芯片驱动8个数码管;STM32和DS1302结合,获得实时时钟,并显示在数码管上;
两个LED指示系统的当前的工作模式注意:闹钟的具体功能未实现,可自行设计添加。
全灭为默认模式0,实时获取时间并显示;
左亮右灭为模式1,为设置时间模式,按前三个按键可以修改对应的时分秒; 左灭右亮为模式2,为设置闹钟模式;
MAX7219是MAXIM公司生产的串行输入/输出共阴极数码管显示驱动芯片,一片MAX7219可驱动8个7段(包括小数点共8段)数字LED、LED条线图形显示器、或64个分立的LED发光二级管。该芯片具有10MHz传输率的三线串行接口可与任何微处理器相连,只需一个外接电阻即可设置所有LED的段电流。。它的操作很简单,MCU只需通过模拟SPI三线接口就可以将相关的指令写入MAX7219的内部指令和数据寄存器,同时它还允许用户选择多种译码方式和译码位。此外它还支持多片7219串联方式,这样MCU就可以通过3根线(即串行数据线、串行时钟线和芯片选通线)控制更多的数码管显示。MAX7219的外部引脚分配如图1所示及内部结构如图2所示。
图1 MAX7219的外部引脚分配
图2 MAX7219的内部引脚分配
各引脚的功能为: DIN:串行数据输入端
DOUT:串行数据输出端,用于级连扩展 LOAD:装载数据输入 CLK:串行时钟输入
DIG0~DIG7:8位LED位选线,从共阴极LED中吸入电流 SEG A~SEG G DP 7段驱动和小数点驱动 ISET: 通过一个10k电阻和Vcc相连,设置段电流
MAX7219有下列几组寄存器:(如图3)
MAX7219内部的寄存器如图3,主要有:译码控制寄存器、亮度控制寄存器、扫描界限寄存器、关断模式寄存器、测试控制寄存器。编程时只有正确操作这些寄存器,MAX7219才可工作。
图 3 MAX7219内部的相关寄存器
分别介绍如下:
(1)译码控制寄存器(X9H)
如图4所示,MAX7219有两种译码方式:B译码方式和不译码方式。当选择不译码时,8个数据为分别一一对应7个段和小数点位;B译码方式是BCD译码,直接送数据就可以显示。实际应用中可以按位设置选择B译码或是
不译码方式。
图4 MAX7219的译码控制寄存器
(2)扫描界限寄存器(XBH)
如图5所示,此寄存器用于设置显示的LED的个数(1~8),比如当设置为0xX4时,LED 0~5显示。
图5 MAX7219的扫描界限控制寄存器
(3)亮度控制寄存器(XAH)
共有16级可选择,用于设置LED的显示亮度,从0xX0~0xXF (4)关断模式寄存器(XCH)
共有两种模式选择,一是关断状态,(最低位 D0=0)一是正常工作状态(D0=1)。 (5)显示测试寄存器(XFH)
用于设置LED是测试状态还是正常工作状态,当测试状态时(最低位 D0=1)各位显示全亮,正常工作状态(D0=0)。各寄存器具体操作见驱动程序详解。
2 读写时序说明
MAX7129是SPI总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。 要想与MAX7129通信,首先要先了解MAX7129的控制字。MAX7129的控制字格式如图6。
图6 控制字(即地址及命令字节)
如图,工作时,MAX7219规定一次接收16位数据,在接收的16位数据中:D15~D12可以与操作无关,可以任意写入,D11~D8决定所选通的内部寄存器地址,D7~D0为待显示数据或是初始化控制字。在CLK脉冲作用下,DIN的数据以串行方式依次移入内部16位寄存器,然后在一个LOAD上升沿作用下,锁存到内部的寄存器中。注意在接收时,先接收最高位D16,最后是D0,因此,在程序发送时必须先送高位数据,在循环移位。工作时序图见图7。
由于51是8位单片机故需要分两次来送数据。具体操作见驱动程序详解。
图7 数据读写时序
3 电路原理图 电路原理图
电路原理图如图7,MAX7219与单片机的连接只需要3条线:LOAD(CS)片选引脚、CLK串行时钟引脚、DIN串行数据引脚。其中C1 为电源滤波电容,R1用来设置段电流。 MAX7219的PCB布线有些难度.
万联芯城专注电子元器件配单服务,只售原装现货库存,万联芯城电子元器件全国供应,专为终端生产,研发企业提供现货物料,价格优势明显,BOM配单采购可节省逐个搜索购买环节,只需提交BOM物料清单,商城即可为您报价,解决客户采购烦恼,为客户节省采购成本,点击进入万联芯城。
MAX7219中文资料 - 驱动 - 点阵原理图
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)