串行显示驱动器PS7219及单片机的SPI接口设计
发布时间:2008/6/3 0:00:00 访问次数:435
0 引 言
在单片机的应用系统中,为了便于人们观察和监视单片机的运行情况,常常需要用显示器显示运行的中间结果及状态等等。因此显示器往往是单片机系统必不可少的外部设备之一。常用的显示器有很多种,其中led(发光二极管显示器)是应用较多的一种,它特别适用于强光和光线极弱的场合。
要使led显示,必须提供段选码和位选码。传统的硬件译码显示接口广泛采用由中央处理器cpu(如:intel 8031)扩展i/o口(如:8255),然后再使用逻辑门驱动芯片(如7407等)驱动相应的位码和段码。这种设计,芯片间连线十分复杂,系统工作可靠性不高,已越来越不适应单片机系统集成化、小型化的发展要求。特别是系统并行扩展i/o,其缺点十分明显:
(1)连线太多,系统连线复杂,印制板布线不方便;
(2)并行总线上挂靠的器件太多,系统工作的稳定性和可靠性低;
(3)体积较大,集成度不高。
正是由于上述原因,近年来,各厂家相继开发出了集成度较高、驱动能力较强、驱动位数较多、功能齐全的led显示驱动器。
本文介绍一种低价位、高性能的多位led显示驱动器ps7219芯片,以及它与单片机89c51具体的spi接口设计与应用软件。
1 ps7219简介
ps7219是一种新型的串行接口的8位数字静态显示芯片。它是由武汉力源公司新推出的24脚
双列直插式芯片,采用流行的同步串行外设接口(spi),可与任何一种单片机方便接口,并可同时驱动8位led(或64只独立led),其引脚图如图1所示。
ps7219内部具有15×8ram功能控制寄存器,可方便选址,对每位数字可单独控制、刷新、不需重写整个显示器。显示数字亮度可由数字进行控制,每位具有闪烁使能控制位。当引脚con(13脚)置高电平,可禁止所有显示,达到降低功耗的效果,但同时并不影响对控制寄存器的修改。ps7219还有一个掉电模式、一个允许用户从1位数显示到8位数显示选择的扫描界限寄存器和一个强迫所有led接通的测试模式。另外,ps7219a型内置一个可靠的up监控电路,可为外部提供一个脉宽140ms,触发门限典型值为4.63v的高电平复位信号。
如果n个ps7219级联,可实现n×8位led显示。
2 ps7219引脚功能
ps7219引脚功能如表1所示。
3 ps7219工作过程
图2为ps7219工作时序图。由图2可行,din是串行数据输入端,在clk的上升沿,一位数据被加载到内部16位移位寄存器中,clk端最高输入频率可达500khz,在输入时钟信号的每个上升沿,均有1位数据由din移入到内部寄存器中,load用来装载数据,在load的上升沿,16位串行输入数据被锁存到数字或控制寄存器中。load必须在第16个时钟上升沿的同时或之后,在下一个时钟上升沿之前变高,否则数据将会丢失。
规定一组数据为16位二进制数据包,其格式如下:
其中d15~d12位不用,d11~d8为内部5个控制寄存器和8个led显示数据寄存器的地址,地址编码如表2。d7~d0为5个控制寄存器命令字或8个led数码管待显示的数据。因为控制寄存器与显示数据寄存器均独立编址,所以可以通过程序单独对每个寄存器进行操作。一般情况下,程序先送控制命令,后向显示寄存器送数据,但必须注意,每16位为一组,从高位地址节最高位开始送起,直到低位数据字最后一位为止。
ps7219按5个控制寄存器规定的方向对待显示的数字自动扫描显示,所以有必要对各控制寄存器的功能有所了解,现分述如下:
(1)译码方式寄存器:对每个数字设置bcd码b(0~9、e、h、l、p和-)或非代码操作。寄存器中的每一位与一个数字对应。逻辑高电平选择代码bcd译码,而低电平选择旁路译码器。
(2)显示亮度寄存器:其中d7~d4位可任意,而d3~d0可选择0000~1111。d3~d0的值越大,led显示器越亮。
(3)扫描范围寄存器:其扫描范围寄存器设置所显示数据的多少,可从1至8。它们一般以扫描速率1.5khz、8位数据、多路复用方式显示。
0 引 言
在单片机的应用系统中,为了便于人们观察和监视单片机的运行情况,常常需要用显示器显示运行的中间结果及状态等等。因此显示器往往是单片机系统必不可少的外部设备之一。常用的显示器有很多种,其中led(发光二极管显示器)是应用较多的一种,它特别适用于强光和光线极弱的场合。
要使led显示,必须提供段选码和位选码。传统的硬件译码显示接口广泛采用由中央处理器cpu(如:intel 8031)扩展i/o口(如:8255),然后再使用逻辑门驱动芯片(如7407等)驱动相应的位码和段码。这种设计,芯片间连线十分复杂,系统工作可靠性不高,已越来越不适应单片机系统集成化、小型化的发展要求。特别是系统并行扩展i/o,其缺点十分明显:
(1)连线太多,系统连线复杂,印制板布线不方便;
(2)并行总线上挂靠的器件太多,系统工作的稳定性和可靠性低;
(3)体积较大,集成度不高。
正是由于上述原因,近年来,各厂家相继开发出了集成度较高、驱动能力较强、驱动位数较多、功能齐全的led显示驱动器。
本文介绍一种低价位、高性能的多位led显示驱动器ps7219芯片,以及它与单片机89c51具体的spi接口设计与应用软件。
1 ps7219简介
ps7219是一种新型的串行接口的8位数字静态显示芯片。它是由武汉力源公司新推出的24脚
双列直插式芯片,采用流行的同步串行外设接口(spi),可与任何一种单片机方便接口,并可同时驱动8位led(或64只独立led),其引脚图如图1所示。
ps7219内部具有15×8ram功能控制寄存器,可方便选址,对每位数字可单独控制、刷新、不需重写整个显示器。显示数字亮度可由数字进行控制,每位具有闪烁使能控制位。当引脚con(13脚)置高电平,可禁止所有显示,达到降低功耗的效果,但同时并不影响对控制寄存器的修改。ps7219还有一个掉电模式、一个允许用户从1位数显示到8位数显示选择的扫描界限寄存器和一个强迫所有led接通的测试模式。另外,ps7219a型内置一个可靠的up监控电路,可为外部提供一个脉宽140ms,触发门限典型值为4.63v的高电平复位信号。
如果n个ps7219级联,可实现n×8位led显示。
2 ps7219引脚功能
ps7219引脚功能如表1所示。
3 ps7219工作过程
图2为ps7219工作时序图。由图2可行,din是串行数据输入端,在clk的上升沿,一位数据被加载到内部16位移位寄存器中,clk端最高输入频率可达500khz,在输入时钟信号的每个上升沿,均有1位数据由din移入到内部寄存器中,load用来装载数据,在load的上升沿,16位串行输入数据被锁存到数字或控制寄存器中。load必须在第16个时钟上升沿的同时或之后,在下一个时钟上升沿之前变高,否则数据将会丢失。
规定一组数据为16位二进制数据包,其格式如下:
其中d15~d12位不用,d11~d8为内部5个控制寄存器和8个led显示数据寄存器的地址,地址编码如表2。d7~d0为5个控制寄存器命令字或8个led数码管待显示的数据。因为控制寄存器与显示数据寄存器均独立编址,所以可以通过程序单独对每个寄存器进行操作。一般情况下,程序先送控制命令,后向显示寄存器送数据,但必须注意,每16位为一组,从高位地址节最高位开始送起,直到低位数据字最后一位为止。
ps7219按5个控制寄存器规定的方向对待显示的数字自动扫描显示,所以有必要对各控制寄存器的功能有所了解,现分述如下:
(1)译码方式寄存器:对每个数字设置bcd码b(0~9、e、h、l、p和-)或非代码操作。寄存器中的每一位与一个数字对应。逻辑高电平选择代码bcd译码,而低电平选择旁路译码器。
(2)显示亮度寄存器:其中d7~d4位可任意,而d3~d0可选择0000~1111。d3~d0的值越大,led显示器越亮。
(3)扫描范围寄存器:其扫描范围寄存器设置所显示数据的多少,可从1至8。它们一般以扫描速率1.5khz、8位数据、多路复用方式显示。