欢迎光临湖南洲明科技有限公司网站!
13875862178

FLASH存储器在长沙全彩LED显示屏中的应用二

2020-11-08

3 LED显示控制系统的数据组织及软件优化

LED显示控制系统的数据组织从正面看过去显示行与显示数据位以及颜色的对应关系。硬件结构决定了每一行的数据可连续排列,同时为了提高数据的读取速度,将所有显示数据均按扫描行、扫描列进行连续排列,存储单元与扫描行、存储单元数据位及颜色的关系。

具体编程时可按下列步骤进行:

(1)将准备扫描的行地址送P1口的低4位中。

(2)初始化SST25VF016B将读地址指针指向待显示行相应存储单元的首地址。

(3)启动SPI以顺序读方式连续读显示数据,并将显示数据送P2口。

(4)每读一个数据通过P3.5产生一个SCK脉冲(SST25VF016B在顺序读方式下地址自动加1),将P2口上的显示数据移入74HC595串行移位寄存器。

(5)重复(2),(3),(4)直到一行数据显示完毕,通过P3.3产生RCK将通过移位寄存器移入的一行数据显示。

(6)重复(2)~(5)直到16行数据全部显示完毕。

(7)重复(1)~(6)刷新显示。

源程序1和源程序2均为用C51编写的显示一屏完整数据的显示函数。不同之处在于源程序1的SPI读写为一个单独的函数,而源程序2为了进一步提高数据读取的速度将显示时的读显示数据变成了一个循环体。由于SST25VF016B串行大容量FLASH在给定读地址后可连续的读,其读地址会自动加1,所以数据组织形式为一屏显示数据在SST25VF016B中连续存放,编程时连续读一行数据后再改变扫描行直到16行全部显示完成。编程的指导思想是尽量减少SPI接口的无效等待时间,因此在源程序2第19行将读取的显示数据送P2口后第29行立刻启动下一次SPI读,而将SCK脉冲的发送指令放在SPI读数据期间,然后再来判断SPI读数据是否完成。源程序2第10行启动SPI读是为一屏显示最开始预读第1行第1个数据(与第11行至第24行的循环体配合)。为避免出现显示拖尾在第25至第29行换行时关闭显示。实验结果表明:源程序1每帧的显示时间在24 MHz晶振的条件下达到25 ms,即40帧/s,而源程序2在同样晶振条件每帧的显示时间为14 ms,即70帧/s,源程序2的执行速度远高于源程序1。

为了便于控制,所以要求显示程序与LED屏的硬件结构无关,通过自定义8字节显示指令条[命令(1个字节)+参数表(7个字节)],将各种不同显示效果所需的参数(如:LED显示屏的硬件信息、起始地址、结束地址、每行长度、显示时间等)指定存放在指令参数表中。显示指令表存放在显示数据的最前面,而指令表的长度亦用指令的方式加以描述,底层单片机运行时根据显示指令可实现不同的显示效果,如:画面的切换、定时、水平移动、垂直移动以及特殊显示效果。

4 控制系统单片机的选型及PC机软件编程

单片机的运行速度直接决定了显示速度的快慢,而单片机的运行速度又与单片机的时钟、(晶振)频率和单片机的结构有关,在时钟频率确定的情况下,单片机的硬件结构直接决定单片机的运行速度。目前主流单片机主要采用以下两种方式:

(1)倍频方式,通过硬件重新设计将标准51单片机一个机器周期12T改为6T、4T甚至1T;

(2)利用硬件提高某些指令,如:MOVX指令的运行速度,采用双DPTR模式,甚至在执行MOVX指令后DPTR可自动加减1。

本文中使用的STC单片机号称为1T单片机,并非所有指令均为1T,但几乎所有指令都在标准单片机指令运行速度上大幅度提高。其速度综合约为标准51单片机的8倍,可以满足显示控制系统对单片机运行速度的要求。

PC机软件编程采用VB编程,该程序可完成各种字体、字型点阵的提取、显示数据的组织、显示效果的模拟演示、显示信息的管理等功能。底层单片机运行时根据显示指令可实现不同的显示效果,如:画面的切换、定时、水平移动、垂直移动以及其他特殊显示效果。

5 结 语

本控制系统通过大量的实验检验是非常可靠的,利用该控制系统制作的小型LED显示屏与一般用51单片机为控制核心的LED显示控制系统相比,屏幕的刷新速度大幅度提高,在研制运行过程中也对该控制系统做了多方面的改进。如为了进一步提显示速度可对编译后的程序做汇编级的优化,利用有些51单片机如DS89C450具有DPTR自动加1的功能,外加用CPLD制成的硬件地址发生器等。但所有改进的措施都是以增加外部辅助电路或成本为代价的。本控制系统的价格按市价不超过50元,因此其在小型LED显示控制系统中有着广泛的应用前景。