当前位置:资料首页 > 论 文 > LED照明 > 正文

基于多端口串行Flash的条形LED显示屏控制[2]

2012-10-17  来源:维库电子  有4429人阅读

  为了不增加硬件成本而提高显示数据的输出速度,在分析现有条形LED 显示屏单元板电路的基础上,提出了一种基于多端口串行Flash 存储器的LED 显示控制系统,该系统由STC12C5616 高速1T 单片机和带SPI接口的SST26VF016B 串行多端口Flash 存储器组成。

  机的数据口P2. 0 ~ P2. 3全部置高电平,通过SPI 时钟从串行存储器读取显示数据,同时以"DMA"方式进入LED 单元板,当读取完一行数据后,在LED单元板上的数据锁存端RCK 上产生有效信号,就可以显示该行数据。 当采用这种模式时,一定要将单片机STC12C5616 的引脚P2. 0 ~ P2. 3设置为"弱上拉"模式。

  4 超长LED 显示屏显示程序设计

  在1 /16 单色LED 显示屏硬件电路设计中,74HC595 采用直通方式连接。 根据直通方式特点,预先对单色显示数据进行优化组织,将组织后的显示数据预先存放在串行Flash 存储器SST26VF016B 中。 如图4 所示,单片机输出显示每行数据时按"输出数据→送移位脉冲→地址加1"的顺序重复进行,显示完一行后,RCK 锁存显示,通过ABCD 切换行选通线。

  图4 1 /16 扫描单色F3. 75 或F5. 0 单元板( 64 × 32 点) 连接方式。

  以LED 显示屏的水平方向点数为4 096 点为例,其显示一帧数据的程序代码如下:

  woid Display( unsigned long begin_Addr)

  {

  unsigned char Ln

  ,Bv = 1;

  unsigned int Data_Length,Lw = 4096;

  unsigned long Addr;

  Data_Length = Bv* Lw

  ) ;

  for ( Ln = 0; Ln < 16; Ln + + )

  {

  Addr = Begin_Addr + Ln* Data_Length;

  CS = 0;

  SendSQI_Byte( 0x0B) ; / /送读命令

  / /送3 个字节地址

  SendSQI_Byte( ( Addr 》 16) &0xff) ;

  SendSQI_Byte( ( Addr 》 8) &0xff) ;

  SendSQI_Byte( ( Addr&0xff) ;

  SendSQI_Byte( ( 0xff) ; / /送虚字节

  P2 = P2 |0x0f;

  SPCTL = 0xd0; / /允许SPI 接口

  SPDAT = 0xff; / /启动第1 次SPI 发送

  Data_Length = ( Data_Length 》 3) - 1;

  while( Data_Length! = 0)

  { / /SPI 时钟每次传输8 个脉冲

  while( ( SPSTAT&0x80) == 0) ;

  SPSTAT = 0x80; / /清接收标志

  SPDAT = 0xff; / /启动SPI 发送

  Data_Length -- ;

  }

  while( ( SPSTAT&0x80) == 0) ;

  SPSTAT = 0x80; / /清接收标志

  SPCTL = 0x90; / /禁止SPI 接口

  CS = 1; /* disable devicce * /

  EN = 0;

  RCK = 1; RCK = 0;

  PI = ( ( P1&0xf0) | Ln

  ) ;

  EN = 1;

  }

  }

  在设计程序时,仅在换行时关闭显示屏,避免它产生余辉,其余时间都点亮。 在该程序中,Bv为数据线在垂直方向使用595 的组数; Lw为LED 显示屏水平方向像素点数; Ln为当前LED 显示屏显示数据行号。 当显示数据时,采用存储器和LED 显示屏的数据输出模式,单片机先向串行存储器输出"读数据"命令字"0x0B",然后输出24 位地址和虚拟字节,再使单片机数据口输出高电平,就可以根据LED 显示屏的长度输出SCK 脉冲。 送完一行数据后,禁止SPI 接口,RCK 锁存信号有效,切换至下一行,按重复步骤继续输出显示数据。

  5 测试

  经过测试后,显示屏显示正常,没有抖动情况,使用逻辑分析仪测试了其刷新率,如图5( b) 所示,信号A 的电平宽度表示显示1 行所需要的时间,其宽度为1. 036 16 ms,显示1 帧的时间为16 ×1. 036 16 ms≈16 ms,所以LED 显示屏的刷新率为1 /16 ms = 62. 5 Hz. 而当LED 显示屏的刷新率大于50 次/s 时,就可以满足设计要求,故本设计能够满足正常显示要求。 通过测试SCK 信号,如图5( a)所示,可以看出SCK 信号每8 个脉冲1 组,每组之间的时间间隔仅为570 ns,该时间主要消耗在判断SPI 数据传输完成标志和循环控制上。

  图5 LED 屏信号测试

  6 结论

  本文提出了基于多端口串行Flash 存储器的LED 显示控制系统,利用单片机的SPI 接口产生可控时钟,将多端口串行Flash 存储器中的显示数据以"DMA"方式直接输出至超长条形LED 显示屏。

  其制造成本低廉,根据本文程序及逻辑分析仪得到的时序图可知,该方法可以控制4 096 × 64 点阵单色LED 显示屏,在超长显示屏市场上有很好的应用前景。

1 2
【有0人参与评论】

网友评论

标题:
网友评论仅供其表达个人看法,并不表明中国照明网同意其观点或证实其描述

中国照明网论文频道现向广大业内朋友征集稿件。稿件内容要求具有技术性、可读性。欢迎研究机构、院校、企业进行投稿。

投稿信箱:edit@lightingchina.com.cn
联系电话:0086-020-85530605-5029

(投稿时请注明作者姓名、单位、邮编和地址及电话、E-mail;以便通知审核结果,如发稿七日内无通知请来电查询。)

广东中照网传媒有限公司 版权所有 增值电信业务经营许可证:粤B2-20050039 粤ICP备06007496号
传真:020-85548112 E-mail:Service@lightingchina.com.cn 中国照明网