MAX7219驱动LED显示器显示连续数的方法

最新更新时间:2011-09-27来源: 21ic关键字:MAX7219  驱动  LED显示器 手机看文章 扫描二维码
随时随地手机看文章

1  引言

显示是单片机应用系统中非常重要的环节,通常用数码管显示器LED作为输出设备显示一些信息和结果。在很多设备中,往往需要显示一系列不断递增的连续数,例如采集数据过程中不仅要显示采集数据的具体数值还要显示已经采集数据的个数,那么采集数据的个数就是一系列连续数,又如很多生产设备要不断显示已加工好的零件或产品的数量等。在线商城

在传统的显示驱动电路中,每一个LED显示器需要一个译码芯片,而每一段又需要一个限流电阻,在显示信息量较大时,电路变得复杂而且也会占用系统很多资源。MAX7219芯片是美国MAXIM公司出品的新型紧凑型、可编程共阴极LED数码管的驱动芯片,它集BCD译码器、多路扫描器、段驱动和位驱动电路于一体, 内含8×8位双口静态SRAM ,可保存8位LED数据。MAX7219芯片的外围接口电路简单,使用方便,仅需三根I/O口线便可驱动多块LED进行动态显示。MAX7219只需一个外部电阻来设置所有LED的段电流,不仅可以克服常规的动态显示亮度不够、闪烁等缺点,而且大大简化硬件电路并减少软件的工作量,因此MAX7219芯片成为单片机应用系统中首选的LED显示接口电路。MAX7219具有BCD译码模式和非译码模式。如果仅显示一些连续数,当然可采用非译码模式,这时可做一个TAB表,依次存放数字的相应编码, 通过使用查表指令即可实现。但生产实际中往往要显示很多种数据,其它数据的显示采用BCD译码显示方式比较方便。虽然一片MAX7219可以在不同的LED同时输出两种显示方式,但这样将大大增加软件编程的负担,为使程序简化,可将连续数和其它数据同时采用BCD译码模式显示。本文以MAX7219串行LED驱动器驱动LED显示连续数1~99999为例,说明其实现显示连续数的方法。

2 硬件接口电路

MAX7219是24脚DIP塑料封装元件,MAX7219芯片与AT89C52单片机及共阴极小电流LED段码显示器的接口电路简单,原理图如图1所示。AT89C52的引脚P1.0、P1.1、P1.2分别与MAX7219的DIN数据输入管脚、LOAD锁定输入管脚、CLK时钟输入管脚相连。

   MAX7219可通过V+ 管脚和ISET管脚之间所接的外部电阻RSET来控制显示的亮度,RSET电阻越大段电流越小,硬件电路中RSET可采用10KΩ。为了减少外界的干扰,应在MAX7219的V+ 管脚和GND管脚之间加上一个0.1μF的涤纶电容和一个10μF的钽电容。

图1 MAX7219与AT89C52单片机硬件接口电路

3  软件编程

MAX7219与AT89C52芯片编程主要分为两部分:初始化子程序、送显子程序以及数据传送。初始化程序主要是对MAX7219的显示模式、显示亮度、显示位数等进行初始化。本例中主要的初始化部分是选择每一显示位相应的显示方式为全译码方式,即给译码方式寄存器X9H 单元送相应的数值0FFH;限制显示扫描显示位数为5位,即给扫描限制寄存器XBH 单元送相应的数值04H。在线商城

数据传送子程序是根据器件的传送时序编写的子程序,其主要功能是串行传送数据。送显程序的功能是将要显示的数值送到MAX7219的数据寄存器里,使其显示出来。这两部分的内容在很多文献中都有说明,本文不多加说明。

本文要重点介绍在数据传送和送显程序前面部分的处理程序,也就是使要显示的一系列连续数1~99999逐步放入各个显示数据暂存单元的程序。当MAX7219采用BCD译码模式时,这个处理程序是往往是不好编程的,因为它要显示数据的位数不固定,要从一位数逐步跳变为多位数。如果采用普通的设计思路,这个程序将会十分复杂。我们采用了一种新的设计思路进行编程,取得了令人满意的结果。

显示器显示数据刷新的时间是根据需要而定的,本例采用单片机内部的定时器来进行定时,在每次定时时间到后先执行该处理程序,然后再调用数据传送和送显程序便可实现在LED数码管上显示连续数。

该处理程序的设计思想是在程序执行前先将各显示暂存单元中数字都清零,即让显示器最初显示“00000”。每当定时时间到时先将个位暂存单元中的数字与9相减,结果不为0时,将个位数字加1后送入个位暂存单元并送出显示(所有数的个位数字1~9的变化都通过该段程序完成);如果结果为0,则将十位暂存单元中的数字与9相减,结果不为0时,则先将个位数字变为0,再将十位数字加1后分别送入个位、十位暂存单元并送出显示(所有数的十位数字1~9的变化都通过该段程序完成);如果十位数字与9相减结果为0,则要再将百位暂存单元中的数字与9相减比较,结果不为0时,则先将个位、十位数字都先变为0,再将百位数字加1后分别送入个位、十位、百位数据暂存单元并送出显示(所有数的百位数字1~9的变化都通过该段程序完成);如果百位数字与9相减比较结果为0,再将千位数字与9相减比较结果…如此下去,便可使显示器显示一系列连续数。例如程序执行第一次时,个位暂存单元中的数字为0,它与9相减的结果不为0,那么将0加上1的结果1放入个位暂存单元送显便显示出数据“00001”,执行第九次显示数据为“00009”,执行第十次时,要先将个位暂存单元中的数字9与9相减,结果为0,这时再将十位暂存单元中的数字0与9相减,0与9相减的结果不为0,这时先将个位数字变为0放入个位暂存单元,再将十位暂存单元中的数字0加上1后的结果1放入十位暂存单元送显,便可显示数据“00010”。要使显示的数最大为99999,只需在每一数位与9比较之前判断它的下一数位是否是十万位,如果下一数位是十万位时退出程序即可。该处理程序十分巧妙地根据要显示的数不同数位上的数字与9比较的结果,来选择执行不同的程序段而达到目的,因此虽然程序设计思想复杂,但程序十分简单。程序如下:

(程序入口为C0)

C1:MOV @R1,#00H

   INC R1在线商城

   MOV A,R1

   SUBB A,#45H      ;判断是否到十万位暂存单元45H

   CLR C

   JZ C2

C0:MOV A,@R1

   SUBB A,#09H   

   JZ C1

   MOV A,@R1

   ADD A,#01H

   MOV @R1,A    

C2:MOV R1,#40H      ;个位暂存单元40H送寄存器

   RET

4  结论

用MAX7219作为显示驱动电路,只需三根端口线,且软件驱动编程简单,控制方式灵活,使显示部分的电路和编程大为简化。本文通过一个实例说明使用MAX7219驱动LED显示器在其 BCD译码模式下显示连续数的方法,该方法已经在数据采集系统和包装设备上得到运用,效果良好。本文创新点是:MAX7219芯片在其BCD译码模式下驱动LED显示器显示连续数的软件部分如果采用普通编程设计思路,程序会十分复杂。本文采用一种新颖独特的编程思想,十分巧妙地根据要显示的一系列连续数不同数位上的数字与9比较的结果,来选择执行不同的程序段而达到目的,使得程序十分简单。本程序可供其它单片机应用系统如既需要显示产品个数又需要显示产品其它参数的场合参考使用。

关键字:MAX7219  驱动  LED显示器 编辑:探路者 引用地址:MAX7219驱动LED显示器显示连续数的方法

上一篇:基于cyclone EP1C6的LED大屏设计方案
下一篇:高亮度LED驱动控制器MAX16801A/B和MAX16802A/B及其应用

推荐阅读最新更新时间:2023-10-18 15:49

构建用于驱动长串LED的112.5W boost LED驱动方案
本参考设计用于为长串 LED 提供高压boost电流源,长串LED的应用不仅限于路灯和停车场 照明 。长串LED允许采用高性价比的 LED驱动 方案,另外,由于各个LED具有相同电流,可以很好地控制亮度变化。本设计采用24V输入,可提供高达75V的LED驱动输出,可驱动1.5A LED灯串 (或多串并联)。测量到的输入功率为115.49W,输出功率为111.6W,具有96.6%的效率。 图2. LED驱动器原理图 图3. LED驱动器布局 PCB MAX16834 boost设计的印制电路板(PCB)采用通用的两层板(图1和图3)。有些PCB功能要求为可选项,测试时并
[电源管理]
构建用于<font color='red'>驱动</font>长串<font color='red'>LED</font>的112.5W boost <font color='red'>LED</font><font color='red'>驱动</font>方案
数字化“加速度”驱动传统产业转型“新活力”
中国储能网讯: “加快数字化改造,促进传统产业升级。”日前召开的中央经济工作会议对明年的经济工作进行了全面部署,明确要求坚持稳中求进工作总基调,并指出要加快数字化改造。这不仅充分凸显了数字化转型作为经济社会驱动“引擎”的重要作用,更为全行业在新发展阶段贯彻新发展理念、构建新发展格局、推动高质量发展提供了根本遵循。 当前,世界经济加速数字化转型,数字经济已经成为重要的经济形态,以5G、大数据、人工智能、区块链为代表的数字技术,深度融入实体经济,强势赋能千行百业的数字化转型,成为引领社会经济发展的重要力量。业界普遍认为,今天的数字化转型,已经不是“选择题”,而是关乎生存和长远发展的“必修课”。 产业数字化和数字
[新能源]
STM32 AM2305高精度温湿度传感器驱动
最近用到的温湿度传感器,AM2305驱动,单总线,上电后至少要延时2S才能读取温湿度,温度精度很高,跟DS18B20一样,数据带校验,不会出现DS18B20那样,并且时序要求不高 /************************************************************************************************************* * 文件名: AM2305.c * 功能: STM32 AM2305高精度温湿度传感器驱动 * 作者: cp1300@139.com * 创建时间: 2014-09-20 * 最后
[单片机]
100W高可靠性LED球泡灯驱动电源设计
本文介绍了一款针对高功率LED灯泡替换应用的LED驱动器参考设计。该驱动器可为100 W A19白炽灯泡的LED替换灯提供所需的功率,它是一款非隔离式、高效率(93%)、高功率因数(PF) LED驱动器,该驱动器可恰好放入A19灯泡内,不仅符合EN61000-3-2 C (D)标准,还可轻松达到THD限值要求。功率因数(PF)值超过0.95,因此既适用于商业应用,也适用于消费类应用。 据测算,中国照明用电约占全社会用电量的12%左右。如果把在用的白炽灯全部替换为节能灯或LED照明灯,年可节电480亿千瓦时,相当于减少二氧化碳排放4800万吨。可见LED照明市场潜力的巨大。国家发改委发布《中国逐步淘汰白炽灯路线图》也
[电源管理]
100W高可靠性<font color='red'>LED</font>球泡灯<font color='red'>驱动</font>电源设计
线阵CCD图像传感器驱动电路的设计
1 引言   电荷耦合器件(CCD.Charge(Couple Device)是20世纪60年代末期出现的新型半导体器件。目前随着CCD器件性能不断提高.在图像传感、尺寸测量及定位测控等领域的应用日益广泛.CCD应用的前端驱动电路成本价格昂贵,而且性能指标受到生产厂家技术和工艺水平的制约.给用户带来很大的不便。CCD驱动器有两种:一种是在脉冲作用下CCD器件输出模拟信号,经后端增益调整电路进行电压或功率放大再送给用户:另一种是在此基础上还包含将其模拟量按一定的输出格式进行数字化的部分,然后将数字信息传输给用户,通常的线阵CCD摄像机就指后者,外加机械扫描装置即可成像。所以根据不同应用领域和技术指标要求.选择不同型号的线阵CC
[嵌入式]
51单片机驱动点阵16*16左移
这个点阵左移,曾经让我......如今在朋友指导下.........主要部分在红色部分,请大家理解那里就行了!会了也没有什么!硬件:行采用74HC154+S8550,列采用74HC595! #include reg52.h #define uchar unsigned char #define uint unsigned int #define LINE P0//定义行线IO口,即74HC154控制端 #define shudu 20//字移动的速度 sbit DATA=P1^4;//74HC595数据端 sbit CLK=P1^5;//74HC595移位脉冲端 sbit CLKR=P1^6
[单片机]
51单片机<font color='red'>驱动</font>点阵16*16左移
STSPIN32 BLDC电机驱动器简化高压BLDC设计流程
意法半导体STSPIN32F0系列电机控制系统级封装推出四款新产品,可简化包括有线电动工具、驱动装置、泵、风扇和压缩机等市电供电家用电器和工业设备的开发设计过程。 250V的STSPIN32F0251和STSPIN32F0252与600V的STSPIN32F0601和STSPIN32F0602集成了三相栅极驱动器和STM32F0 Arm® Cortex®-M0微控制器,可以简化高压无刷直流电机(BLDC)驱动器设计过程,提供主流的控制算法和应用示例,包括单电阻和三电阻电流检测矢量控制(FOC),以及有传感器的单电阻电流检测和六步无传感器的传统电机控制方法。 四款新产品相互引脚兼容,硬件和软件固件可以重复使用,控制11
[工业控制]
STSPIN32 BLDC电机<font color='red'>驱动</font>器简化高压BLDC设计流程
由开关电源驱动的高速ADC设计
  系统设计人员正面临越来越多的挑战,他们必须在不降低系统元件(如高速资料转换器)性能的情况下让设计最大程度地实现节能。设计人员们可能转而採用许多以电池供电的应用(如某种手持终端、软体无线设备或可携式超音波扫描器),也可能缩小产品的外形尺寸,因而必须寻求减少发热的诸多方法。   极大降低系统功耗的一种方法是对高速资料转换器的电源进行最佳化。资料转换器设计和製程技术的一些最新进展,让许多新型ADC可直接由开关电源来驱动,因而达到最大化功效的目的。   系统设计人员们习惯在交换式稳压器和ADC之间使用一些低杂讯、低压降稳压器(LDO),以清除输出杂讯和开关频率突波(请参见图1)。但是,这种乾净的电源设计代价是高功耗,因为LDO
[电源管理]
由开关电源<font color='red'>驱动</font>的高速ADC设计
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved