串行FLASH存储器在小型LED显示系统中的应用
来源:电子工程世界 作者:—— 时间:2010-05-12 07:00
(5)重复(2),(3),(4)直到一行数据显示完毕,通过P3.3产生RCK将通过移位寄存器移入的一行数据显示。
(6)重复(2)~(5)直到16行数据全部显示完毕。
(7)重复(1)~(6)刷新显示。
源程序1和源程序2均为用C51编写的显示一屏完整数据的显示函数。不同之处在于源程序1的SPI读写为一个单独的函数,而源程序2为了进一步提高数据读取的速度将显示时的读显示数据变成了一个循环体。由于SST25VF016B串行大容量FLASH在给定读地址后可连续的读,其读地址会自动加1,所以按图2(b)所示的数据组织形式为一屏显示数据在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。
上一篇:单电池微控制器工作的优点