max7219资料及电路图

合集下载

串行LED显示驱动器MAX7219及其应用

串行LED显示驱动器MAX7219及其应用

串行L ED显示驱动器M AX7219及其应用胡奕明(空军工程大学工程学院研究生大队 西安 710038)摘 要 阐述了新型显示驱动芯片M A X7219的基本工作原理和软件设计方法。

该芯片功能强大、编程简单、控显可靠,可广泛用于工业控制器等方面的数码显示驱动。

关键词 显示驱动器 串行发送 M A X72191 概 述M A X7219是美国M A X I M公司生产的串行输入 输出共阴极显示驱动器。

该芯片可直接驱动最多8位7段数字L ED显示器,或64个L ED和条形图显示器。

它与微处理器的接口非常简单,仅用3个引脚与微处理器相应端连接即可实现最高10M H z 串行接口。

M A X7219的位选方式独具特色,它允许用户选择多种译码方式译码选位,而且,每个显示位都能个别寻址和刷新,而不需要重写其他的显示位,这使得软件编程十分简单且灵活。

另外,它具有数字和模拟亮度控制以及与M O TOROLA SP I, Q SP I及M A T I ONAL M I CROW I R E串行口相兼容等特点。

2 引脚说明该芯片采用24脚D IP和SO封装,工作电压410~515V,最大功耗111W。

引脚说明见表1。

3 基本工作原理及使用方法M A X7219与8031单片机连接采用三线串行接口,典型应用电路如图1。

对于M A X7219,串行数据是以16位数据包的形式从D in脚串行输入,在CL K的每一个上升沿一位一位地送入芯片内部16位移位寄存器,而不管L out脚的状态如何。

L oad脚必须在第16个CL K上升沿出现的同时或之后,但在下一个CL K上升沿之前变为高电平,否则移入的数据将丢失。

表1 引脚说明引脚号名称功能说明1D in串行数据输入端。

在CL K的上升沿数据被锁入芯片内部16位移位寄存器2,3,5~8,10,11D IG0~D IG78位L ED位选线,从共阴极L ED中吸入电流4,9GND地线(两个GND必须接在一起)12L oad锁入输入的数据。

MAX7219

MAX7219

多功能LED译码显示驱动IC PS7219 1 引言PS7219是由力源公司自行研制、开发的一款新型多功能8位LED显示驱动IC。

接口采用三线SPI方式,用户只需简单修改内部相关的控制或数字RAM,便可很容易地实现多位LED显示。

在性能上PS7219与MAXIM 公司的MAX7219完全兼容,并增加了位闪等功能。

PS7219具有多个级联特性,为大屏幕LED显示提供了方便。

在理论上,只需三根用户I/O口控制线,便可以实现无穷多的LED级联显示。

在实际应用中,已实现了149片PS7219级联,可以控制1192位LED 显示。

2 PS7219特点与引脚说明PS7219的特点:★ 串行接口(16位控制字);★ 8位共阴级LED显示驱动;★ 显示位数1~8,可数字调节;★ 按位进行BCD译码/不译码数字制;★ 16级亮度数字控制;★ 上电LED全熄;★ 提供位闪功能;★ 多个PS7219级联可实现任意多的LED显示;★ 宽24脚双列直插模块封装。

PS7219引脚图如图1所示。

引脚功能说明见表1。

3 PS7219内部结构如图2 所示,PS7219由六部分组成。

图2 PS7219内部组成框图图1 PS7219引脚排列3.1 串行输入缓冲部分主要功能是与外部控制信号接口,将控制命令串行读入,并进行串并转换,供控制器读取。

3.2 控制器是整个IC的核心部分。

它先将输入缓冲部分的控制字读入处理,根据其地址值送到相应的控制RAM或数字RAM,同时将数据送入串行同步输出部分,以便在下一个控制字输入周期,将其串行输出。

3.3 控制RAM数据RAM这两部分一起控制LED译码显示部分,实现不同功能及字符的显示。

控制RAM包括:空操作寄存器,译码模式控制寄存器,亮度控制寄存器,掉电控制寄存器,闪烁控制寄存器,测试控制寄存器和扫描界线寄存器。

数据RAM包括:数据1—8寄存器。

3.4 LED译码显示根据控制RAM和数据RAM的不同值,来实现相应的显示功能。

MAX7219相关资料

MAX7219相关资料

MAX7219相关资料一、MAX7219简介MAX7219和MCU连接有三条引线(DIN、CLK、LOAD),采用16位数据串行移位接收方式。

即单片机将16位二进制数逐位发送到DIN端,在CLK上升沿到来前准备就绪,CLK的每个上升沿将一位数据移入MAX7219内移位寄存器,当16位数据移入完,在LOAD引脚信号上升沿将16位数据装入MAX7219内的相应位置,在MAX7219内部硬件动态扫描显示控制电路作用下实现动态显示。

二、MAX7219引脚说明MAX7219为24引脚芯片,引脚排列如图1.1所示,各引脚功能如下:DIN:串行数据输入端;DIG0~DIG7:LED位线;LOAD:数据装载信号输入端;SEGA~SEGG、SEGDP:段码输出端;ISET:硬件亮度调节端;DOUT:串行数据输出端;CLK:移位脉冲输入端;V+:正电源;GND:地。

图1.1 MAX7219引脚图三、MAX7219内部组成结构MAX7219组成如图1.2所示。

图1.2 MAX7219组成框图其各部分作用是:16位地址/数据移位寄存器接收串行数据,实现串/并变换。

16位数据含义如下:D7~D0:写入内部RAM和功能寄存器的数据;D8~D11:内部RAM和功能寄存器地址;D12~D15:无定义。

地址译码器是一个4~16线译码器,用于选择数据存放单元,在LOAD信号作用下将接收数据送入指定单元;八字节双端口静态存储器存放接收数据和提供动态显示数据;B译码和不译码电路对RAM数据进行BCD译码或直接送显示;段码电流参考电路、亮度脉冲产生调制器实现对显示器的亮度控制,段码电流参考电路由硬件调节显示器亮度;动态扫描控制器实现由硬件控制动态扫描显示。

LED段/位驱动器提供显示器的一段和一位点亮时的电流。

各内部功能寄存器含义如下:(a) 停机寄存器(地址0CH):当D0=0时,MAX7219处于停机状态;当D0=1时,处于正常工作状态;(b) 显示测试寄存器(地址0FH):当D0=0时,MAX7219按设定模式正常工作;当D0=1时,处于测试状态。

MAX7219应用电路

MAX7219应用电路

MAX7219的PROTEUS仿真MAX7219是美国MAXIM(美信)公司生产的串行输入/输出共阴极显示驱动器。

它采用了3线串行接口,传送速率达10M数据,能驱动8位七段数字型LED或条形显示器或64只独立的LED。

MAX7219内置BCD码译码器、多路扫描电路、段和数字驱动器和存储每一位的8*8静态RAM。

能方便的用模拟或数字方法控制段电流的大小,改变显示器的数量;能进入低功耗的关断模式(仅消耗150uA电流,数据保留);能方便地进行级联。

可广泛用于条形图显示、七段显示、工业控制、仪器仪表面板等领域。

而且其最重要的一点是,每个显示位都能个别寻址和刷新,而不需要重写其他的显示位,这使得软件编程十分简单且灵活。

MAX719后缀表示其封装方式和工作温度,如表所示:一. MAX7219的结构和功能1.引脚说明MAX7219的引脚排列如图所示,各引脚功能叙述如下:(1)脚:DIN,串行数据输入。

在CLK的上升沿到来时,数据被移入到内部的16位移位寄存器中。

(2)、(3)、(5)~(8)、(10)、(11)脚:DIG0—DIG7,输入。

8位数字位位选线,从共阴极显示器吸收电流。

(4)、(9)脚:GND,地。

两个引脚必须连接在一起。

(12)脚:LOAD,数据装载输入端。

在LOAD上升沿,移位寄存器接受的数据被锁存。

(13)脚:CLK,时钟输入端,最高时钟频率10MHz。

在CLK的上升沿,数据被移入到内部的16位移位寄存器中。

在CLK的下降沿,数据从DOUT脚输出。

(14)~(15)、(20)~(23)脚:输出。

七段驱动器和小数点驱动器。

它供给显示器电流。

(18)脚:ISET,电流调节端。

通过一个电阻和VCC相连,来调节最大段电流。

(19)脚:VCC。

电源输入端。

(24)脚:DOUT。

串行数据输出。

输入到DIN的数据在16.5各时钟周期后,在DOUT端有效。

该脚常用于几个MAX7219的级联。

2.串行数据传送的说明MAX7219采用串行寻址方式,在传送的串行数据中包含内部RAM的地址。

MAX7219工作原理简介

MAX7219工作原理简介

MAX7219工作原理简介MAX7219是一个采用3线串行接口的8位共阴极7段LED显示驱动器。

本文分析了MAX7219各个寄存器的功能,并结合MAX7219的工作时序,给出了MAX7219在Motorola MC68HC908单片机系统中的一个应用实例。

关键词: MCU;MAX7219;LED Motorola MC68HC908MAX7219工作时序及其寄存器MAX7219是一个高性能的多位LED显示驱动器,可同时驱动8位共阴极LED或64个独立的LED。

其内部结构框图如图1所示,主要包括移位寄存器、控制寄存器、译码器、数位与段驱动器以及亮度调节和多路扫描电路等。

MAX7219 采用串行接口方式,只需LOAD、DIN、CLK三个管脚便可实现数据传送。

DIN管脚上的16位串行数据包不受LOAD状态的影响,在每个CLK的上升沿被移入到内部16位移位寄存器中。

然后,在LOAD的上升沿数据被锁存到数字或控制寄存器中。

LOAD必须在第16个时钟上降沿或之后,但在下一个时钟上升沿之前变高,否则数据将会丢失。

DIN端的数据通过移位寄存器传送,并在16.5个时钟周期后出现在DOUT端,随CLK 的下降沿输出。

MAX7219的操作时序如图2所示。

MAX7219的串行数据标记为D15~D0,其中低8位表示显示数据本身,最高的4位D15~D12未使用,寻址内部寄存器的地址位占用D11~D8,选择14个内部寄存器,见表1。

图1 MAX7219内部结构框图图2 MAX7219的数据传送时序MAX7219 内部具有14个可寻址数字和控制寄存器。

其中的8个数字寄存器由一个片内8×8双端口SRAM实现。

它们可直接寻址,因此可对单个数进行更新并且通常只要 V+超过2V数据就可保留下去。

除8个数位寄存器之外,还有无操作、译码方式、亮度调整、扫描位数、睡眠模式和显示器测试6个控制寄存器。

无操作寄存器用于多片MAX7219级联,在不改变显示或不影响任意控制寄存器条件下,它允许数据从DIN传送到DOUT。

MAX7219及单片机的SPI接口设计

MAX7219及单片机的SPI接口设计

串行显示驱动器PS7219及单片机的SPI接口设计在单片机的应用系统中,为了便于人们观察和监视单片机的运行情况,常常需要用显示器显示运行的中间结果及状态等等。

因此显示器往往是单片机系统必不可少的外部设备之一。

常用的显示器有很多种,其中LED(发光二极管显示器)是应用较多的一种,它特别适用于强光和光线极弱的场合。

要使LED显示,必须提供段选码和位选码。

传统的硬件译码显示接口广泛采用由中央处理器CPU(如:Intel 8031)扩展I/O口(如:8255),然后再使用逻辑门驱动芯片(如7407等)驱动相应的位码和段码。

这种设计,芯片间连线十分复杂,系统工作可靠性不高,已越来越不适应单片机系统集成化、小型化的发展要求。

特别是系统并行扩展I/O,其缺点十分明显(1)连线太多,系统连线复杂,印制板布线不方便;(2)并行总线上挂靠的器件太多,系统工作的稳定性和可靠性低;(3)体积较大,集成度不高。

正是由于上述原因,近年来,各厂家相继开发出了集成度较高、驱动能力较强、驱动位数较多、功能齐全的LED显示驱动器。

本文介绍一种低价位、高性能的多位LED显示驱动器PS7219芯片,以及它与单片机89C51具体的SPI接口设计与应用软件。

1PS7219简介PS7219是一种新型的串行接口的8位数字静态显示芯片。

它是由武汉力源公司新推出的24脚双列直插式芯片,采用流行的同步串行外设接口(SPI),可与任何一种单片机方便接口,并可同时驱动8位LED (或64只独立LED),其引脚图如图1所示。

PS7219内部具有15×8RAM功能控制寄存器,可方便选址,对每位数字可单独控制、刷新、不需重写整个显示器。

显示数字亮度可由数字进行控制,每位具有闪烁使能控制位。

当引脚CON(13脚)置高电平,可禁止所有显示,达到降低功耗的效果,但同时并不影响对控制寄存器的修改。

PS7219还有一个掉电模式、一个允许用户从1位数显示到8位数显示选择的扫描界限寄存器和一个强迫所有LED接通的测试模式。

max7129 使用方法

max7129 使用方法

(一)、MAX7219 MAX7219是一种串入、并出的共阴极LED数码管显示驱动器,每片可驱动8位LED数码管显示,与单片机的接口只需3根线,内带BCD译码器,及显示测试、移位、锁存器等,输出电流达40mA,外围只需一只亮度调整电阻。

MAX7219引脚图1、引脚功能说明DIN:串行数据输入端,CLK的上升沿时数据被载入内部16位移位寄存器中CLK:串行时钟输入端,最高工作频率可达10MHz LOAD:片选端,低电平接收DIN端的数据,高电平时数据被所存DIG0~7:LED的位控制端A~DP:LED 的端控制端DOUT:串行数据输出端,用于芯片的级联ISET:硬件亮度调整端,在该引脚与VCC之间跨接一个电阻,LED的亮度即可通过该电阻来调节,流过LED的段驱动平均电流为流过此电阻电流的100倍,此电阻值范围为:10~80K之间。

2、内部寄存器说明A、译码方式选择寄存器地址:09H 赋值:FFH 表示使用MAX7219内部的BCD译码器00H 表示不使用MAX7219内部的BCD译码器B、亮度调节寄存器地址:0AH 赋值:00H~0FH 可改变MAX7219所驱动的LED的亮度,其变化范围在1/32~31/32之间C、扫描位数设定寄存器地址:0BH 赋值:00H 所有位不显示01H~07H 依次对应于1~8位及前面位全部显示(即需显示的位应为“1”)D、待机模式开关寄存器地址:0CH 赋值:00H LED全灭01H LED正常显示E、显示器测试寄存器地址:0FH 赋值:00H LED为正常显示状态01H LED测试状态,即LED全亮F、8位LED显示数据寄存器地址:01H~08H 对这些寄存器赋值(即需显示的内容),就会在对应的1~8位LED数码管上显示出来3、使用注意事项由于电源中杂波或附近的电磁等干扰信号,使MAX7219在上电后不显示或乱显示;为了消除这种现象应在MAX7219的VCC端与地之间接一只104pf的瓷片电容,在LOAD端于地之间接一只10K的电阻。

max7219资料及电路图

max7219资料及电路图

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显示。

8位串行接口数码显示驱动器MAX7219及其应用

8位串行接口数码显示驱动器MAX7219及其应用

8位串行接口数码显示驱动器MAX7219及其应用潍坊高等专科学校 王瑞兰LED数码管的应用已十分广泛,用于数码管显示的驱动电路种类较多,但大致可分为静态显示驱动和动态扫描显示驱动两大类别。

本文所要介绍的MAX7219芯片就是 用于动态扫描显示驱动的芯片。

该芯片的特点是利用一块芯片就能完成8位字数据和8位线数据的驱动,使得电路紧凑。

多芯片级联时,采用串行输入输出,可节省CPU的口线和接口芯片。

与数码管联接时无需限流电阻,8位显示的电流可通过一个外部电阻进行调节。

显示亮度也可通过程序进行控制。

片内具有,可以对输入的数据先进行译码再驱动输出,也可以将输入的数据直接驱动。

一、管脚功能MAX7219采用24管脚DIP和SO两种封装形式,管脚排列如图1所示,各引脚功能见表1。

二、MAX7219内部结构MAX7219的内部功能框图如图2所示。

16位移位寄存器所存数据为D0~D15,见表2。

D8~D11为寄存器地址,D0-D7为数据,D12-D15为不关心位。

片内有14个寄存器,其中8个数据寄存器,寄存着与DIG 0-DIG 7对应的显示数据,地址依次为×1H-8H;6个控制寄存器,即译码控制寄存器(Decode Mode)、显示亮度控制寄存器(Intensity)、扫描频率限制寄存器(Scan Limit)、消隐控制寄存器(Shutdown)、显示测试寄存器Display Test)及无操作寄存器(No-Op),其地址依次为×9H-CH、×FH、×0H。

数据寄存器为8×8双指针SRAM。

因为各寄存器可直接寻址,所以寄存器的数据可分别进行修改。

寄存器的数据可以保存到电源电压降低到2V。

三、控制寄存器1. Shutdown 寄存器Shutdown 寄存器写入×××××××0B数据时,将呈现消隐状态。

MAX7219点阵数码管介绍

MAX7219点阵数码管介绍

MAX7219(MAX7221)LED驱动器介绍MAX7219(MAX7221)LED驱动器简介MAX7219(MAX7221)是一种多位LED显示驱动器,它采用3线串行接口传送数据,可直接与微处理器接口连接,用户可以方便修改其内部参数以实现多位LED 显示。

MAX7219(MAX7221)内部含硬件动态扫描电路、BCD译码器、段驱动器和位驱动器。

此外,MAX7219(MAX7221)内部还含有8X8 位静态RAM,用于存放8个数字的显示数据。

MAX7219(MAX7221)可直接驱动64 段LED点阵数码管。

当多片MAX7219(MAX7221)级联时,可控制更多的LED 点阵数码管。

MAX7219实物图 MAX7221实物图MAX7219(MAX7221)LED驱动器应用领域1、条线图显示应用领域。

2、仪表面板应用领域。

3、工业控制应用领域。

4、LED矩阵显示应用领域。

MAX7219(MAX7221)LED驱动器特点1、10MHz连续串行口。

2、独立的LED段控制。

3、数字的译码与非译码选择。

4、150μA的低功耗关闭模式。

5、亮度的数字和模拟控制。

6、高电压中断显示。

7、共阴极LED显示驱动。

8、限制回转电流的段驱动来减少EMI(MAX7221)。

9、SPI, QSPI, MICROWIRE串行接口(MAX7221)。

10、24脚的 DIP和 SO 封装。

MAX7219(MAX7221)LED驱动器管脚说明MAX7219(MAX7221)LED驱动器管脚内部分配MAX7219(MAX7221)LED驱动器寄存器下表列出了MAX7219(MAX7221)LED驱动器的14 个可寻址的数据寄存器和控制寄存器。

数据寄存器由一个在片上的8×8 的双向SRAM 来实现,它们可以直接寻址,所以只要在电压大于2V 的情况下每个数据都可以独立的修改或保存。

控制寄存器包括译码控制寄存器、亮度控制寄存器、扫描界限寄存器、关断模式寄存器、测试控制寄存器。

max7219使用详解

max7219使用详解

Max7219驱动程序一般的MCU因IO脚驱动能力不够,再加之MCU IO口资源有限,产品开发中通常是通过专门的驱动IC来驱动数码管。

7.1 学会看DatasheetMAX7219就是一款可以同时驱动8个数码管的IC。

下图是其引脚图及典型应用电路:我们的CPU只须三根线就可以控制MAX7219,这三根线是:DIN(第一脚),CS(第12脚),CLK(第13脚)。

DIN是数据输入脚,我们要显示的数据就是通过这根线发送到MAX7219的;CS是片选脚,MCU通过把该脚电平拉低来选中MAX7219,或者说MAX7219通过判断该引脚是否为低电平来使能该芯片。

CLK是时钟引脚,该时钟频率是MCU给到MAX7219的,MCU与7219之间的通信频率就根据该信号做基准。

7.2 MAX7219数据格式我们要让8个数码管显示"12345678",这个过程是怎么实现的呢?首先,要搞清楚MAX7219的数据格式,看图:MAX7219是以16位数据接收和发送的,也就是MCU传给MAX7219的数据必须是16位。

下面分析这16位数据格式:D15~D12为X:表示可以为任意值,因为这四位MAX7219目前还用不到。

D11~D8为ADDRESS:表示MAX7219的地址。

D7~D0为DATA,并且位7为高位(最先发送),位0位低位(最后发送)。

也就是当MCU向MAX7219发送一个16位数据时,其中的D11~D8表示选择MAX7219哪个地址,即数据D7~D0是送到该地址的。

7.3 地址译码MAX7219可以挂8个数码管,MCU是怎么把数据显示到指定的数码管的呢?这就要理解MAX7219的地址译码原理。

下图为MAX7219的地址映射图:D15~12以X表示,代表可为0,也可为1。

Digit0~7对应到8个数码管的地址。

Decode Mode:解码模式寄存器,其地址用16进制表示为0x09;Intensity:亮度调节寄存器,其地址用16进制表示为0x0A;Scan Limit:扫描范围寄存器,其地址用16进制表示为0x0B;Shutdown:省电模式,其地址用16进制表示为0x0C;Display Test:测试寄存器,其地址用16进制表示为0x0F;如果,我们要让第一个数码管显示,那么我们这里送到MAX7219的16位数据中的D11~8应该为0001。

max7219芯片4片级联C51程序与电路

max7219芯片4片级联C51程序与电路
send(0);//输入空操作
send(0);//输入空操作 load=1;//收尾 LOAD 升高 }
write3(uchar pos,num)//同理,多输出一对空操作数 { load=0; send(pos); send(num);
send(0); send(0); send(0); send(0); load=1; }
}
void main()//主函数! { init();初始化四片 7219,里面的 write,write2,write3,write4 就是分别向 4 片 7219 写入数据的程序! for(number=1;number<9;number++)//简单的循环,让四片 7219 都显示出 1~8,顺 序相反 { write(number,number); write2(number,9-number); write3(number,number); write4(number,9-number);
4 片 7219 芯片级联 C51 程序与电路
7219 芯片可以直接带动 8 个数码管显示只需要 3 个 IO 口控制,功能强大,现 在用四片 7219 级联,使用 C 语言编程,力求简单、有效,借鉴了前辈的一些经 验,欢迎各路人马提出宝贵意见! 一.电路 这是在 proteus 中模拟的电路图:
看了这个图你一定知道 4 片 7219 级联是绝对可行的,那么请看细节:
write2(0x0c,1);//开启正常工作模式 1 正常 0 关闭芯片 write2(0x0f,0);//显示测试 正常工作 0 全亮 1 write2(0x09,0xff);//解码方式 0xff 全译码 write2(0x0b,0x07);//8 只 LED 全用 write2(0x0a,10);//亮度为 10

利用MAX7219与74LS164构造显示键盘接口电路

利用MAX7219与74LS164构造显示键盘接口电路

利用MAX7219与74LS164构造显示、键盘接口电路摘要以单片机为基础,应用8位LED显示驱动IC MAX7219与移位寄存器74LS164构成的单片机应用系统的显示、键盘接口,可大大减少I/O口线占用数量及硬件电路的复杂程度,对单片机测试系统具有一定的实用和参考价值。

关键词:单片机、MAX7219,LED显示、74LS164、键盘引言:以单片机为核心的开发工控装置和智能仪表中,显示器和键盘是不可缺少的人机借口。

传统显示、键盘电路设计常采用两种方法:以实用8155,8255并行口扩展构成显示、键盘电路;二是串行口配上移位寄存器74LS164构成硬件译码静态显示、键盘接口电路。

但前者占用硬件资源和引脚多,且需要软件定时刷新;后者占用I/O口线少,但硬件资源占用多,电路复杂,耗电量大。

为充分利用资源,使设计出的系统最小、最优,我们在利用C8051F310设计智能化测控仪表时,选用MAX7219与74LS164仅占用6根普通I/O口线完成对8位数码管和8按键的现实键盘接口,即简化电路又使单片机引脚得到充分利用。

1.主要芯片简介MAX7219是一个高集成化的串行输入/输出的共阴极LED驱动显示器,每片可驱动8位7段加小数点的共阴极数码管,可以数片级联,与MCU的连接仅需3根普通I/O口线。

片内含有移位寄存器、B码译码器、多通道扫描电路、段和位驱动器以及8个数字和6个控制寄存器。

数字寄存器由一个8×8双端口SRAM实现,用来存放点亮对应LED的具体内容,可直接寻址。

6个控制寄存器分别为:译码方式、显示亮度、扫描界限、停机、显示测试和非操作寄存器。

用户只需对数字和控制寄存器编程就可选择译码方式、LED个数、显示亮度、关闭、测试等功能。

允许每个数字选择B译码或不译码,每个数字可被寻址和更新,而不需要重写整个显示器。

只需外接一个电阻就可为所有的LED提供段电流。

MAX7219采用24脚双列直插封装,其引脚排列如图1所示,引脚功能如表1所列。

多功能串行LED显示驱动器MAX7219

多功能串行LED显示驱动器MAX7219

多功能串行LED显示驱动器MAX7219MAX7219是美国MAXIM(美信)公司推出的多位LED显示驱动器,采用3线串行接口传送数据,可直接与单片机接口,用户能方便修改其内部参数,以实现多位LED显示。

它内含硬件动态扫描显示控制,每枚芯片可驱动8个LED数码管。

显然,它可直接驱动64段LED条形图显示器。

当多片MAX7219级联时,可控制更多的LED。

显示的数据通过单片机数据处理后,送给MAX7219显示。

当然,也完全可以将MAX7219的一部分用于条形图显示,一部分用于其他显示(如数字和字母等)。

1.内部逻辑结构它主要由8个数位寄存器和6个控制寄存器组成:1)数位寄存器7~0:它决定该位LED显示内容。

2)译码方式寄存器:它决定数位寄存器的译码方式,它的每一位对应一个数位。

其中,1代表B码方式;0表示不译方式。

若用于驱动LED数码管,应将数位寄存器设置为B码方式;当用于驱动条形图显示器时,应设置为不译码方式。

3)扫描位数寄存器:设置显示数据位的个数。

该寄存器的D2~D0(低三位)指定要扫描的位数,支持0~7位,各数位均以1.3kHz的扫描频率被分路驱动。

4)亮度控制寄存器:该寄存器通常用于数字控制方式,利用其D3~D0位控制内部脉冲宽度调制DAC的占空比来控制LED段电流的平均值,实现LED的亮度控制。

D3~D0取值可从0000~1111,对应电流占空比则从1/32变化到31/32,共16级,D3~D0的值越大,LED显示越亮。

而亮度控制寄存器中的其他各位未使用,可置任意值。

5)显示测试寄存器:它用来检测外挂LED数码管各段的好坏。

当D0置为1时,LED处于显示测试状态,所有8位LED的段被扫描点亮,电流占空比为31/32;若D0为0,则处于正常工作状态。

D7~D1位未使用,可任意取值。

6)关断寄存器:用于关断所有显示器。

当D0为0时,关断所有显示器,但不会消除各寄存器中保持的数据;当D0设置为1时,正常工作。

Max7219-7221中文

Max7219-7221中文

/MAX7221串行接口8位LED显示驱动器一、概述MAX7219/MAX7221是一种集成化的串行输入/输出共阴极显示驱动器,它连接微处理器与8位数字的7段数字LED显示,也可以连接条线图显示器或者64个独立的LED。

其上包括一个片上的B型BCD编码器、多路扫描回路,段字驱动器,而且还有一个8*8的静态RAM用来存储每一个数据。

只有一个外部寄存器用来设置各个LED的段电流。

MAX7221与SPI™、QSPI™以及MICROWIRE™相兼容,同时它有限制回转电流的段驱动来减少EMI(电磁干扰)。

一个方便的四线串行接口可以联接所有通用的微处理器。

每个数据可以寻址在更新时不需要改写所有的显示。

MAX7219/MAX7221同样允许用户对每一个数据选择编码或者不编码。

整个设备包含一个150μA的低功耗关闭模式,模拟和数字亮度控制,一个扫描限制寄存器允许用户显示1-8位数据,还有一个让所有LED发光的检测模式。

在应用时要求3V的操作电压或segment blinking,可以查阅MAX6951数据资料。

二、应用条线图显示仪表面板工业控制LED矩阵显示三、管脚配置四、功能特点●10MHz连续串行口●独立的LED段控制●数字的译码与非译码选择●150μA的低功耗关闭模式●亮度的数字和模拟控制●高电压中断显示●共阴极LED显示驱动●限制回转电流的段驱动来减少EMI(MAX7221)●SPI,QSPI,MICROWIRE串行接口(MAX7221)●24脚的DIP和SO封装五、分类信息芯片工作温度范围管脚封装MAX7219CNG0°C to+70°C24Narrow Plastic DIP MAX7219CWG0°C to+70°C24Wide SO MAX7219C/D0°C to+70°C Dice*MAX7219ENG-40°C to+85°C24Narrow Plastic DIP MAX7219EWG-40°C to+85°C24Wide SO MAX7219ERG-40°C to+85°C24Narrow CERDIP九、时序图十、详细描述(一)MAX7219和MAX7221的不同之处MAX7219和MAX7221是相同的除了以下两点:(1):MAX7219的段驱动有回流限制可以减少EMI;(2):MAX7219的串行口和SPI完全兼容。

MAX7219级联教程

MAX7219级联教程
பைடு நூலகம்
河南工业大学爬山虎工作室
DIN=1; else DIN=0; Dat <<= 1; CLK = 1; _nop_(); _nop_(); CLK = 0; } for(i=0;i<Num_Addr;i++) { for(j=0;j<16;j++) { CLK = 0; DIN = 0; CLK = 1; _nop_(); _nop_(); CLK = 0; } } LOAD = 1; } void Initialise7219()//初始化 { //第 0 个 7219 初始化 Write(0x00,0x09,0xff); //编码模式 Write(0x00,0x0b,0x07); //全部扫描 Write(0x00,0x0c,0x01); //正常模式:1,掉电模式:0 Write(0x00,0x0a,0x07); //消隐时间设为 T/2 //第 1 个 7219 初始化 Write(0x01,0x09,0xff); //编码模式 Write(0x01,0x0b,0x07); //全部扫描 Write(0x01,0x0c,0x01); //正常模式 Write(0x01,0x0a,0x07); //消隐时间设为 T/2 } void main() { u8 i; Initialise7219(); DelayMS(1); for(i=0;i<8;i++) {
河南工业大学爬山虎工作室
MAX7219 级联教程,附驱动源码
一、电路原理图
河南工业大学爬山虎工作室
二、 级联程序
#include <reg52.h> #include <intrins.h> #define u8 unsigned char #define uint unsigned int sbit DIN = P2^0; sbit LOAD = P2^1; sbit CLK = P2^2; u8 Disp_Buffer[8]={2,0,0,9,10,8,10,9}; //软件延时函数,延时 xms void DelayMS(uint x) { u8 t; while(x--) { for(t=120;t>0;t--); } } //向第 Num_Addr 片 7219 的 Addr 寄存器写入一个 Dat 数据 //Num_Addr:7219 地址(0~255) //Addr:7219 数显寄存器地址(1~8) //Dat:要显示的数据(0~15)(含字母) void Write(u8 Num_Addr,u8 Addr,u8 Dat) { u8 i,j; LOAD = 0; for(i=0;i<8;i++) { CLK = 0; if(Addr&0x80) DIN=1; else DIN=0; Addr <<= 1; CLK = 1; _nop_(); _nop_(); CLK = 0; } for(i=0;i<8;i++) { CLK = 0; if(Dat&0x80)

max7219应用

max7219应用

显示电路的核心部件是MAX7219串行显示驱动器,它采用共阴极动态扫描方式,每片可以驱动8位LED。

MAX7219最高时钟速率为10MHz,扫描速率为1300Hz(V+=5V,扫描八位),可以关闭显示来降低功耗。

MAX7219可以级联使用,驱动多于8位的LED,在智能变送器和智能执行器上各用一片已经足够。

MAX7219的数据16位为一组,D15~D12取任意值,D11~D8为寄存器地址,D7~D0为寄存器数据,高位数据先写入。

它有13个功能寄存器,其中8个数据寄存器,5个控制寄存器,各寄存器功能如表4-9所示。

时钟、数据和数据锁存信号。

用单片机的串行口也可和它相连接,这时待发送的数据高位、低位要换位后写入发送缓存器SBUF,以适应MAX7219的数据输出方式。

在变送器和执行器中都只用了4位显示,详细接线见附图1或附图2的相应部分。

表4-9 MAX7219功能寄存器说明注:亮度控制可外接电阻Rset调节,Rset最小为9.53K MAX7219的初始化及显示子程序入口:地址放在A,数据放在R4;初始化部分INIL: mov a,#0bh ;显示4位mov R4,#03acall WRITEmov a,#09h ;BCD码方式mov r4,#0ffhacall WRITEmov a,#0ch ;开显示mov r4,#01hacall WRITEWRITE:mov r2,#08h ;写入(显示)子程序clr P2.1 ;load=0loop1: rlc a ;发送地址clr P2.2 ;clk=0mov P2.0,C ;写入setb P2.2 ;clk=1djnz r2,loop1mov a,r4 ;发送数据mov r2,#08hloop2:rlc amov P2.0,Cclr P2.2setb P2.2djnz r2,loop2setb P2.1 ;load=1,数据锁存ret。

MAX7219级联教程

MAX7219级联教程
河南工业大学爬山虎工作室max7219级联教程附驱动源码一电路原理图河南工业大学爬山虎工作室级联程序includereg52hincludeintrinshdefineu8unsignedchardefineuintunsignedintsbitdinp20
河南工业源码
更多资源和知识请关注微信公共号 河工大天依电子 大学生单片机交流 QQ 群: 677033632。 河南工业大学爬山虎工作室。 分享资源、拒绝技术封锁。 快来加入我们吧。
河南工业大学爬山虎工作室
Write(0x00,i+1,Disp_Buffer[i]); } Write(0x01,1,Disp_Buffer[0]); Write(0x01,2,11); Write(0x01,3,12); Write(0x01,4,13); Write(0x01,5,14); while(1); }
河南工业大学爬山虎工作室
DIN=1; else DIN=0; Dat <<= 1; CLK = 1; _nop_(); _nop_(); CLK = 0; } for(i=0;i<Num_Addr;i++) { for(j=0;j<16;j++) { CLK = 0; DIN = 0; CLK = 1; _nop_(); _nop_(); CLK = 0; } } LOAD = 1; } void Initialise7219()//初始化 { //第 0 个 7219 初始化 Write(0x00,0x09,0xff); //编码模式 Write(0x00,0x0b,0x07); //全部扫描 Write(0x00,0x0c,0x01); //正常模式:1,掉电模式:0 Write(0x00,0x0a,0x07); //消隐时间设为 T/2 //第 1 个 7219 初始化 Write(0x01,0x09,0xff); //编码模式 Write(0x01,0x0b,0x07); //全部扫描 Write(0x01,0x0c,0x01); //正常模式 Write(0x01,0x0a,0x07); //消隐时间设为 T/2 } void main() { u8 i; Initialise7219(); DelayMS(1); for(i=0;i<8;i++) {
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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布线有些难度,作者可以提供画好的PCB给读者。

有需要的读者请与作者联系。

邮箱:zhaoliang_0801@
图8 电路原理图
4 驱动程序
//管脚定义
sbit LOAD=P1^2; //MAX7219片选 12脚sbit DIN=P1^1; //MAX7219串行数据 1脚
sbit CLK=P1^0; //MAX7219串行时钟 13脚//寄存器宏定义
#define DECODE_MODE 0x09 //译码控制寄存器
#define INTENSITY 0x0A //亮度控制寄存器
#define SCAN_LIMIT 0x0B //扫描界限寄存器
#define SHUT_DOWN 0x0C //关断模式寄存器
#define DISPLAY_TEST 0x0F //测试控制寄存器
//函数声明
void Write7219(unsigned char address,unsigned char dat); void Initial(void);
//地址、数据发送子程序
void Write7219(unsigned char address,unsigned char dat)
{
unsigned char i;
LOAD=0; //拉低片选线,选中器件
//发送地址
for (i=0;i<8;i++) //移位循环8次
{
CLK=0; //清零时钟总线
DIN=(bit)(address&0x80); //每次取高字节
address<<=1; //左移一位
CLK=1; //时钟上升沿,发送地址
}
//发送数据
for (i=0;i<8;i++)
{
CLK=0;
DIN=(bit)(dat&0x80);
dat<<=1;
CLK=1; //时钟上升沿,发送数据
}
LOAD=1; //发送结束,上升沿锁存数

}
//MAX7219初始化,设置MAX7219内部的控制寄存器
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); //设置初始亮度
}
测试程序
void main(void)
{
unsigned char i;
Initial(); //MAX7219初始化
while(1)
{
for(i=1;i<9;i++)
{
Write7219(i,i); //数码管显示1~8 }
}
}
典型应用电路:。

相关文档
最新文档