配置寄存器SPICONFIG:主要对片选信号控制模式、SPI中断进行设置。

状态寄存器SPISTATUS:主要用于对SPI运行状态的监控。

传输字长寄存器SPISIZE:设置传输字长,本文设置为16位,即每次输出16位数据。

控制寄存器SPICTRL:对SPI时钟速率、时钟相位/极性、片选信号,以及SPI时钟频率进行设置。

数据寄存器SPIRXTX0~ SPIRXTX3:用于对SPI接口32位收发缓冲器的访问,对数据寄存器执行写操作是将数据送入发送缓冲器中,对数据寄存器执行读操作是从接收缓冲器中取出收到的数据。SPI接口的发送和接收缓冲器都采用双缓冲结构,从硬件上减少数据冲突并提高数据传输效率。在主模式下对SPIRXTX0寄存器执行写入操作将启动SPI传输。当传输字各行长大于8时,应最后向SPIRXTX0寄存器写入。

向串行FLASH输入控制信号和数据地址后,启动串行FLASH传输数据,在SPI时钟驱动下,输出显示数据。并且可以用单片机模拟串行FLASH时钟信号控制任意位数据输出。

2.2 数据选择控制电路

设计的LED显示屏控制系统如图3所示,VRS51L3074单片机内部自带精确的40MHz振荡器,不需要外部晶振电路提供系统时钟,显示数据使用内存为16Mb的SST25VF016B,这是一款具有SPI接口的8PIN串行FLASH[7]。双RAM技术输出显示数据的时候,是将两块RAM中相同地址的两个数据同时输出,所以,将两块RAM的显示数据存放在一块串行存储器中的时候,偶地址单元应存储RAM0的数据,奇地址单元存储RAM1的数据,数据输出时,每次输出16位数据。串行存储器和单片机的工作电压都在3.3V左右,但是VRS51L3074单片机可以兼容5V,简化了控制电路。控制信号和显示数据在输出到寄存器74LS164和显示屏的时候,需要用74LVC07进行电平转换。

控制系统控制显示数据输出的流程为:

①将扫描线行地址通过P2端口的低四位送给LED显示屏。

②通过显示数据在显示区域中的位置,计算显示数据在存储器中的地址,并计算出数据选择的位数

③通过单片机P3.0口模拟移位脉冲,输出到串行FLASH时钟信号,移位脉冲数由数据选择位数 决定。使输出数据产生错位,正确的选择输出显示数据。

④启动SPI读取显示数据, SPI传输字长设置为16位。模拟脉冲已经输出到串行FLASH使数据产生了错位,输出16位数据 ,输出到显示屏的数据 在高8位,经过移位刚好可以存放在移位寄存器中,每行第一个数据输出后,以后此行各列数据都是直接输出。