周菲 牛姣姣 万洋洋 赵杜 薛美娟
【摘 要】介绍了一种利用数字信号处理器(DSP)控制LCD模块的液晶显示方案,对系统的硬件和软件进行了分析和设计。该方案采用DSP的I/O口对读写时序及数据进行控制,利用C语言编写了各种文字及图像的显示程序,实现了DSP与LCD显示模块的良好接口,并在实际工作场合进行了测试。测试结果表明,该系统工作稳定、显示效果较好、刷新速度快,能够达到实用要求。
【关键词】数字信号处理器;液晶显示器;接口电路
0 引言
我国自20世纪80年代引进数字信号处理器以来,其已在各个领域得到了广泛应用,DSP理论和技术已成为IT领域的核心技术。由于液晶显示技术近年来不断获得新的突破,显示屏应用范围不断拓宽,成为极具发展潜力的电子显示产品。在DSP的应用研究领域中,基于DSP的图形液晶显示的研究和开发一直受到科研人员的广泛关注。传统的显示采用单片机控制,处理速度有限,存在局限性。DSP是基于超大规模集成电路技术和计算机技术发展起来的,它一方面结合了DSP系统诸多特点,另一方面又结合了液晶显示器诸多优点[1-2]。非常适合于个人信息化电子产品的输出显示前端。本文提出了一种基于DSP控制的液晶显示屏的设计方案,以DSP为核心控制芯片、可编程逻辑器件PLD为辅助控制芯片来进行LCD显示器的设计和控制,实现了系统功能,简化了系统结构、提高了系统可靠性。
1 硬件设计
1.1 硬件系统结构
本设计中,采用TMS320C28335浮点DSP控制器,该器件具有精度高,成本低,功耗小,性能高,外设集成度高,数据以及程序存储量大,A/D转换更精确快速等优点。基于TMS320C28335的显示系统的硬件电路包括电源模块、信息存储模块、外部存储器扩展模块、液晶显示模块、驱动电路、仿真接口、复位电路。系统结构如图1所示。该系统具有掉电数据不丢失的功能,能在保证传输速度和准确性的基础上,进行多种模式的显示功能。
1.2 电源模块
由于系统所涉及的器件种类较多,针对不同的要求需使用不同幅值的电压,TMS320C28335 DSP等芯片的供电电压为3.3V,有些外围数字器件供电电压为5V,因而本系统采用AMS1084CM稳压芯片解决不同电压要求的问题,电路中电源由+5V稳压直流电源输入,并采用AMS1084CM-3.3电源转换芯片作为5V转3.3V的高性能稳压芯片,为电路提供稳定可靠的主电源VCC(3.3V),且内部有过热保护和限流电路。另外,电路中还使用TI专用的电源管理芯片TPS767D301,能稳定给DSP内核供电。
1.3 存储模块
控制器选用TMS320C28335芯片,因为该DSP芯片片内存储空间容量有限,所以外挂一片型号为SST39VF800A,存储大小为512K*16bit的FLASH芯片,用来存储程序与外部字库;利用DSP将存储器中的数据直接送入显示屏,无需通过计算机下载程序,实现脱机使用。
1.4 液晶显示模块
本项目所使用的128*64点阵汉字图形液晶显示器,可显示汉字及图形,其中内置国标GB2312码简体中文字库(16*16点阵)、128个字符(8*16点阵)及64*256点阵显示RAM(GBRAM)。可与DSP直接接口,提供两种界面来连接微机处理器,8位并行及串行两种连接方式。具有多种功能,光标显示、画面移动、睡眠模式等。电路如图2所示。
2 软件设计
DSP系统的软件是指包括信号处理算法及相应的程序软件[3]。我们采用的开发方式是利用CCS集成开发环境完成工程的创建、文件的编辑、编译链接、调试等环节。然后通过仿真接口将所生成的.out文件直接下载到DSP片外扩展存储器。考虑到程序的可移植性和软件的可读性,采用C语言作为开发语言,利用C语言灵活的语法和结构丰富的特点,使系统能够发挥较大作用和实现所要求的功能。
液晶显示LCD模块工作时序的完成主要通过控制信号的改变实现的,在确定操作时序后通过片选信号CS以及地址线A1、A0来改变数据线相关寄存器的状态,通过改变控制寄存器的值可实现此款LCD强大的显示功能。由于DSP速度较快,此程序的关键在于写操作引脚电平跳变的延时,延时选择过小数据写不进去,延时选择过大则会导致屏刷速度变慢,影响系统的显示功能,具体程序中会用较为精确的软件延时方法来实现。
本系统中DSP控制液晶模块软件流程如图2所示。系统上电、复位后,由于输出口状态对输入LCD模块的数据影响较大,所以必须要对各I/O口清零。由于LCD之前状态未知,所以要调用清屏子程序清屏。然后通过调用命令子程序即改变控制寄存器的各个位来设置背景色。最后调用写地址子程序定好坐标,写点阵数据到LCD显示存储器将要显示的字体显示在屏幕上。
具体语法实现如下:
void LCD_write_command(uchar command){
LCD_RS=0; //指令
LCD_E=1; //允许
LCD_DB=(command<<2)|0x0002;//赋值给DB0-DB7对应的GPIO2-GPIO9引脚
Delay_us(10000);
LCD_E=0;
Delay_us (100);}
/*--------------------------------------
模块名称:LCD_write_data();
功 能:LCD12864写数据函数
占用资源:GPIO0-RS(LCD_RS),GND-RW(LCD_RW),GPIO1-E(LCD_E).
;参数说明:data为写数据参数
;-------------------------------------*/
void LCD_write_data(unchar data){
LCD_RS=1; //指令
LCD_E=1; //允许
LCD_DB=(data<<2)|0x0003;//赋值给D0-D7对应的GPIO2-GPIO9引脚
Delay_us (10000);
LCD_E=0;
Delay_us (100);}
/*--------------------------------------
模块名称:LCD_int();
功 能:初始化LCD12864
占用资源:--
参数说明:--
-------------------------------------*/
void LCD_int(void){
Delay_us (100000);//延迟100ms
LCD_write_command(0x30);//功能设置
Delay_us (200);//延迟200us
LCD_write_command(0x0c);//显示开关控制
Delay_us (200);//延迟200us
LCD_write_command(0x01);//显示清除
Delay_us (12000);//延迟12ms
CD_write_command(0x06);//光标移动方向
Delay_us (500);//延迟500us}
3 结语
该课题是西安文理学院2015年大学生创新创业训练项目,旨在推动和提高大学生实践动手能力,以适应社会对高素质人才的需求。本文提出的用DSP控制LCD屏的显示方法可以很好的解决系统在海量数据的情况下,速度受到限制的问题,降低投资成本,从而提高市场竞争力。该项目的完成使我们对数字信号处理器的结构和原理有了进一步的认识,增强了学习的积极性和自信心,为今后的工作打下了坚实的基础。
【参考文献】
[1]侯其立,石岩,徐科军,编著.DSP原理及应用—跟我动手学 TMS320F2833X[Z].
[2]姚晓通,李积英,蒋占军,编著.DSP 技术实践教程—TMS320F28335,设计与实验[Z].
[3]钟睿,编著.DSP技术完全攻略—基于TI系列的DSP设计与开发[Z].
[责任编辑:王楠]