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
关于显示光电就介绍完了,您有什么想法可以联系小编。