《电子技术》2003年第12期
RAM数据进行BCD译码或直接送显示;段码电流参考电路、亮度脉冲产生调制器实现对显示器的亮度控制,段码电流参考电路由硬件调节显示器亮度;动态扫描控制器实现由硬件控制动态扫描显示。LED段/位驱动器提供显示器的一段和一位点亮时的电流。
各内部功能寄存器含义如下:
(1)停机寄存器(地址0CH):当D0=0时,MAX721处于停机状态;当D0=1时,处于正常工作状态。
(2)显示测试寄存器(地址0FH):当D0=0时,MAX7219按设定模式正常工作;当D0=1时,处于测试状态。在该状态下,不管MAX7219处于什么模式,全部LED将按最大亮度显示。
(3)亮度寄存器(地址0AH):亮度可以用硬件和软件两种方法调节。亮度寄存器中的D0~D3位可以控制LED显示器的亮度。
(4)扫描界限寄存器(地址0BH):该寄存器中D0~D3位数据设定值为0~7H,设定值表示显示器动态扫描个数位1~8。
(5)译码方式寄存器(地址09H):该寄存器的8位二进制数的各位分别控制8个LED显示器的译码方式。当高电平时,选择BCD-B译码模式,当低电平时选择不译码模式(即送来数据为字型码)。
(6)内部RAM地址01~08H分别对应于DIG0~DIG7。
LCALL YW
器件应用
图3 8位LED显示驱动电路
LOOP: LCALL DISP ;显示程序
SJMP LOOP ;重复
MAX7219初始化程序
MAX0: MOV A,#0BH ;选择显示位数
MOV
R2,#07H;LED为8位(可根据显
示位数确定)
MOV A,#0AH ;选择显示亮度 MOV R2,#0FH;根据亮度选择数据大小 LCALL YW
MOV A,#09H ;选择模式 MOV R2,#0FFH ;BCD译码方式 LCALL YW MOV A,#0CH ;
MOV R2,#01H ;选择正常工作 LCALL YW RET
显示程序
DISP: MOV R0,#40H;显示缓冲区首地址
MOV R1,#01H;MAX7219内RAM0地址 MOV R3,#08H
LOOP1: MOV A,@R0
MOV R2, A MOV A, R1 LCALL YW
INC R0 ;修改缓冲区地址
INC R1 ;修改MAX7219内RAM地址 DJNZ R3,LOOP1 RET
YW: LCALL SEND;移入MAX7219 16位数据
MOV A, R2 LCALL SEND CLR P1.1 NOP NOP
SETB P1.1 ;装载数据 RET
2 MAX7219应用电路和软件设计
从原理介绍知道MAX7219是一个串行接收数据的动态扫描显示驱动器。下面通过几个应用电路说明其使用方法。
2.1 MAX7219驱动8位以下LED显示器
MAX7219在驱动8位以下LED显示器时,它的DIN、CLK、LOAD端分别接单片机P0~P3口中的任意三条口线,注意在三条线上对地应接几十至几百pF电容。在P0口作为DIN、CLK、LOAD信号线时还应接10kÙ左右的上拉电阻。在显示器与微处理器连接线较长时还应考虑干扰的影响。MAX7219和单片机的连接如图3所示。
相应的程序设计如下: 主程序
ORG 0000H
MOV SP, #50H
LCALL MAX0 ;MAX7219初始化程序
中国传感器 http://www. 37