1、引 言
随着电子产品集成化的发展.液晶显示屏在便携式仪器中实现图像或文字的显示应用更为广泛。
同时在当今信息时代,数字图像处理技术对实时性、运算量大的要求越来越高,所以高运算速度的dsp芯片在数字图像处理领域得到了广泛的应用;其使数据采集、控制与人机界面融为一体,由于dsp处理速度快,整个系统能够由一片dsp芯片控制.体积更小、功耗更低、更便于携带。目前大多数液晶控制器的接[1电路及驱动程序主要是针对单片机设计的[2],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有一系列操作指令,通过指令的调用可以实现对液晶模块的控制[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一(y3)+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语言液晶模块的驱动程序,能够广泛地应用于各种图像的处理和显示场合,在调试和仿真过程中取得了良好的显示效果。此电路的设计思想也可以应用在其他液晶模块的接口设计中,只要对程序稍加改动就可以加以。
上拉电阻阻值的选择原则和经验总结
机器学习所负责的任务的分类方法介绍
如何更换直流无刷电机的轴承及注意事项
华为手机今年上半年的全球发货量为1.18亿台增长了24%
新能源汽车进入量价齐升的“白银时代”,银轮股份加大研发投入
基于DSP芯片TMS320VC54lOA实现LCD液晶屏显示的设计方案
三星S7系列横扫韩国 1/4市占,iPhone 7第五
小米6好厉害?董明珠:格力手机3代,骁龙835!
直放站应用的注意事项
西门子博途示例:如何为下载设置内存保留而不重新初始化
2011深圳电子展:圣纳车安宝888A车载电话
Atmel联合京东智能举办“万物互联,安全无限”智能硬件创新设计大赛
联发科处理器市场差强人意,表现不敌高通,苹果三星赶追
关于进一步促进工业设计发展的若干措施
基于Zynq压电陶瓷传感器的高精度采集系统设计
旭宇光电:实现LED应用的无限可能
半导体和电化学的一氧化碳报警器在地下车库中的应用
使用DS2790生成随机数
在多线程的情况下如何对一个值进行 a++ 操作
C语言中指针的定义与使用