一种基于DSP实现的LCD液晶屏显示技术

发布时间:2015-11-10 14:33    发布者:designapp
关键词: DSP , LCD
  1 引 言
  随着电子产品集成化的发展.液晶显示屏在便携式仪器中实现图像或文字的显示应用更为广泛。
  同时在当今信息时代,数字图像处理技术对实时性、运算量大的要求越来越高,所以高运算速度的DSP芯片在数字图像处理领域得到了广泛的应用;其使数据采集、控制与人机界面融为一体,由于DSP处理速度快,整个系统能够由一片DSP芯片控制.体积更小、功耗更低、更便于携带[1]。目前大多数液晶控制器的接[1电路及驱动程序主要是针对单片机设计的[2],DSP的液晶屏接口电路参考资料相对较少,而在实际应用中,单片机的硬件资源远远不够。所以本文提出一种由DSP控制实现LcD液晶屏显示的方案。
  2 硬件设计
  本系统采用TI公刮的加强型定点DSP芯片TMS320VC54lOA[3],其频率可达160 MHz,内部有64 kRAM空间,可以灵活的映射为数据或程序存储窄间。
  液品模块采用信利公司的MG一128128-2中规模液品屏[2]。该模块内置有T6963C控制芯片,T6963C的最大特点是具有独特的硬件初始值设置功能,显示驱动所需的参数如占空比系数,驱动传输的字节数/行及字符的字体选择等均由引脚电平设置。这样T6963C的初始化在上电时就已经基本设置完成。软件操作的主要精力就可以全部用于显示画面的设计。
  本系统中使VC5410A采用1/O空间扩展方式控制液晶模块。由于向液晶模块写数据、写指令和写控制信号时。需要锁存总线,所以采用了锁存芯片74HC573实现总线的锁存。74HC573由8个D触发器组成。这8个D触发器具有共同的锁存使能(LE)和输出使能 。LE的下降沿将DO~D7上的数据锁存到O0~O7上的数据不随D0~D7变化。
  DSP与液晶显示模块部分接口电路如图l所示。LE的下降沿将D0~D7上的数据锁存到O0~O7上,当LE为低时O0~O7上的数据不随D0~D7变化。锁存器的使能端由Vc5410A的A10和IS控制,即把控制信号锁存在地址为0400H的I/O空间上。其真值表如表1昕示。
  系统中相类似的锁存电路有3个,写数据(指令)锁存电路的使能端由DSP的A11和IS控制,将数据或指令锁存住地址为0800H的I/O空间上,读数据锁存电路使能端DSP的A9和IS控制,将所读的数据锁存在地址为020OH的1/O空间上。DSP的低8位数据线和液晶模块的数据总线连接.负责将控制指令和显示数据送到显示模块的数据线上。 vc5410A的内部存储空间有限,所以本系统扩展了一个64 Mb/s的外部程序存储器SST39VF400A,该芯片的数据线和地址线分别与DSP芯片的对应相连,片选信号由 控制,读写控制引脚与DSP的读写信号R/w相连。
  3软件设计
  液晶屏实际是通过若干个象素点来构成汉字或图形的,刈'应位为"1"时.液晶点被点亮;为"O"时,不点亮。要显示汉字或图肜实际就是按照一定的规律点亮相应的液晶象素点.视觉上看起来就成了一个汉字或图形。
  MG一1 28128-2的控制器T6963C有一系列操作指令,通过指令的调用可以实现对液晶模块的控制[4]。在设计过程中,根据T6963c的指令系统及与DSP的时序信号波形图进行编程。
  液晶模块一作时序的产生主要是通过控制信号的改变来实现的.在编写写指令、写数据、读数据等 子程序之前,首先要确定硬件接口图的时序,本系统的控制信号接口顺序巾高到低依次为:NULL一NUL一OEw-RD-WR-CD一CE-LCD RST,通过访问I/O空间的0200H,0400H,0800H地址,来控制液晶模块。
  液晶屏上电之后,屏幕上的显示是随机的,所以控制程序开始就需要清屏,使屏幕上的液晶点全灭。然后初始化一些显示参数,例如显示区域、娃示方式、显示状态、光标状念等的设置。然后画出操作界面背景;DSP控制液晶显示采用外部中断办式。当有外部中断时.前端数据采集部分将数据,开始进入DSP缓存.同时清除显示区域上次的显示,对数据进行相应的处理。给液晶屏发送接收数据指令,即将LCD的RD引脚置为低电平,然后将显示数据送到LCD数据总线上,一个周期的数据的采集和显示即完成。
                               
                  下面将给出部分C语言的液晶模块驱动子程序,首先足一些变量的声明函数和用到的库函数:
  #include
  #define port LCD cmd port0400
  //定义液晶模块的命令锁存地址为I/O空间的
  0400H
  #define port LCD write port0800
  ∥写数据锁存地址为0800H
  #define port LCD read port0200
  //读数据锁存地址为0200H
  #define port_LCD_null;
  ioport unsigned short port port_LCD_cmd;
  ioport unsigned short port port_LCD_write;
  ioport unsigned short port port_LCD_read;
  ioport unsigned short port port_LCD_null;
  读命令的子程序:
  unsigned short Icd-read-command()
  {
  {
  unsigned short temp;
  port LCD_ cmd=0x003F:
  port LCD_ null=0x003F;
  port LCD_ emd一0x002D;
  ∥LCD_ RST=1,CE=0,CD=1,WR=1,RD=0,OEW=1
  port LCD_ nulI=0x002D;
  temp=port LCD_ read:
  port LCD_ cmd=0x003F;
  port LCD_ null=0x003F;
  return(temp);}
  画点子程序:
  Void led draw point(unsigned short X,unsigned short y)
  {
  unsigned short temp;
  temp一(y>3)+0x100;
  led-write-data(temp);
  led-write-data(temp>>8);
  lcd-write-write-command(0x24);
  //送地址指针的控制字24H到命令端口
  temp=(0x07一(X&ox07))l 0xF8;
  //FOH~FFH把选中的一位置1,即点亮,画点完成
  lcd-write-command(temp);
  }
  向液晶模块写数据和写指令的子程序与读数据的过程相似,只要根据控制模块的时序图给出相应的命令即可。然后编写出初始化、清屏、画点等子程序,再此基础上就可以编写显示字符、数字、汉字及图形等。每条指令的执行都是先送入参数,再送入指令代码,然后送显示数据。
  4 结 语
  本文提出利用高速率DSP芯片控制液晶屏显示的技术,并编写出针对DSP的C语言液晶模块的驱动程序,能够广泛地应用于各种图像的处理和显示场合,在调试和仿真过程中取得了良好的显示效果。此电路的设计思想也可以应用在其他液晶模块的接口设计中,只要对程序稍加改动就可以加以。
                               
               
本文地址:https://www.eechina.com/thread-155920-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表