SPI_write_read(0x03); //向串行FLASH发读命令,0x03为读控制字

SPI_write_read(((ram_point & 0xffffff)》》16)); //3字节24位地址

SPI_write_read(((ram_point & 0xffff)》》8));

SPI_write_read (ram_point & 0xff);

unit_board_num=Dw/64; //计算单元板的数量

for(p=0;p

{ SCK=0; SCK=1; }

SCK=0;

for(line=0;line

{ SPISIZE=0x0f; //设置2字节16位传输方式

for( board_i=0;board_i

{ for(j=0;j《64;j++)

{ SPIRXTX0=ACC; //启动数据传输出

while((SPISTATUS & BIT1) == 0); //等待发送(接收)完成

LED_SCK=0;LED_SCK=1; //送入单元板

} }

EN=1; //换行时暂关闭

P2=((P2&0xf0)|line);

if(region_recod》=Sw)

{ ram_point=ram_begin_addr+block_addr-1;

SPISIZE=0x07;

SPI_write_read(((ram_point & 0xffffff)》》16));

SPI_write_read(((ram_point & 0xffff)》》8));

SPI_write_read (ram_point & 0xff);

region_recod=0; i++;

if(i《=7)

for(p=0;p

{ SCK=0; SCK=1; }

SCK=0; }

RCK=1; RCK=0; //产生74HC595输出锁存信号

EN=0; } //开显示

unsigned char SPI_write_read (unsigned char Wr_Rd_Data)

{ unsigned char Temp_Flag;

SPDR= Wr_Rd_Data; //启动SPI发送或接收

do //判断发送或接收是否完成

{ Temp_Flag=SPSR&0x80;

}while(Temp_Flag!=0x80);

SPSR=SPSR&0x7F; //清SPI发送或接收完成标志

return SPDR; } //返回SPI接收到的数据

结 论

本控制系统利用串行FLASH在输出数据时的特点,最大的减少了数据处理的时间,将显示数据以“DMA”方式输出到显示屏,提高显示效率,并且弥补长条显示屏在显示信息上的不足。双RAM技术大大提高了垂直移动时的存储器使用效率,所有的数据块都是按静态显示方式组织数据,所以每一块RAM的显示数据效率都是100%,双RAM的效率为50%。

本文显示数据存放在一块FLASH中,效率也为50%,相比动态显示组织方式,降低了垂直移动时显示数据存储器的占用,提高存储效率。还可以双RAM技术为基础,扩展出多RAM方式,提高显示的高度,增加每屏显示信息,进一步提高存储效率。本系统仍有改进的空间,譬如以双RAM组织显示数据后直接用两个RAM来存放不同的数据,控制显示数据直接输出,提高输出速率。

责任编辑;zl

关于显示光电就介绍完了,您有什么想法可以联系小编。