MAX7219/MAX7221是一种集成化的串行输入/输出共阴极显示驱动器,它连接微处理器与8位数字的7段数字LED显示,也可以连接条线图显示器或者64个独立的LED。其上包括一个片上的B型BCD编码器、多路扫描回路,段字驱动器,而且还有一个8*8的静态RAM用来存储每一个数据。 只有一个外部寄存器用来设置各个LED的段电流。 MAX7221它有限制回转电流的段驱动来减少EMI(电磁干扰)。 一个方便的四线串行接口可以联接所有通用的微处理器。 每个数据可以寻址在更新时不需要改写所有的显示。MAX7219/MAX7221同样允许用户对每一个数据选择编码或者不编码。 整个设备包含一个150μA的低功耗关闭模式,模拟和数字亮度控制,一个扫描限制寄存器允许用户显示1-8位数据,还有一个让所有LED发光的检测模式。
刚好手头有个7219四级联的8X8LED,按照手册写了下面的代码,测试OK。
操作一个7219很简单,就是向7219的寄存器写数据就OK,先发送地址,再发送数据,发送时先发高位,再发低位。
max729共有以下寄存器:
0:此寄存器是一个空寄存器,向该寄存器写数据对该7219没有影响,但会将数据推向后级7219。
1-8:分别对应8X8点阵的8列数据。
9:译码模式:0代表不译码,驱动点阵时用,1代表启用BCD译码,驱动7段数据码管时用。
A:亮度:0最弱,0xF最强。
B:扫描限制:驱动点阵时设成7,表示最大扫描8列。
C:停机:0代表停机,1代表工作。
F:测试模式:0代表正常工作,1代表测示模式(显示器全亮)
如果有多个7219级联,那么在向后面第N个7219写数据,要先写需要写的数据(此时在第一片7219上),然后再写N-1次空数据(就是向地址0写数据0),将待写数据“推”到第N个7219上面,每写一次空数据,有效数据会被向“后”推一片7219。z
下面我将源代码放上,需要学习的同学可以参照一下。