完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
1 引 言
随着电子产品集成化的发展。液晶显示屏在便携式仪器中实现图像或文字的显示应用更为广泛。 同时在当今信息时代,数字图像处理技术对实时性、运算量大的要求越来越高,所以高运算速度的DSP芯片在数字图像处理领域得到了广泛的应用;其使数据采集、控制与人机界面融为一体,由于DSP处理速度快,整个系统能够由一片DSP芯片控制。体积更小、功耗更低、更便于携带。目前大多数液晶控制器的接电路及驱动程序主要是针对单片机设计的,DSP的液晶屏接口电路参考资料相对较少,而在实际应用中,单片机的硬件资源远远不够。所以本文提出一种由DSP控制实现LcD液晶屏显示的方案。 2 硬件设计 本系统采用TI公刮的加强型定点DSP芯片TMS320VC54lOA,其频率可达160 MHz,内部有64 kRAM空间,可以灵活的映射为数据或程序存储窄间。 液品模块采用信利公司的MG一128128-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有一系列操作指令,通过指令的调用可以实现对液晶模块的控制。在设计过程中,根据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语言液晶模块的驱动程序,能够广泛地应用于各种图像的处理和显示场合,在调试和仿真过程中取得了良好的显示效果。此电路的设计思想也可以应用在其他液晶模块的接口设计中,只要对程序稍加改动就可以。 |
|
|
|
只有小组成员才能发言,加入小组>>
692 浏览 0 评论
1106 浏览 1 评论
2473 浏览 5 评论
2808 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2646 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
653浏览 9评论
649浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
781浏览 6评论
628浏览 5评论
668浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 03:54 , Processed in 0.967231 second(s), Total 79, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号