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 系统的软件设计流程图 3 结语 该课题是西安文理学院2015 年大学生创新创业训练项目,旨在推动和提高大学生实践动手能力,以适应社会对高素质人才的需求。本文提出的用DSP 控制LCD 屏的显示方法可以很好的解决系统在海量数据的情况下,速度受到限制的问题,降低投资成本,从而提高市场竞争力。该项目的完成使我们对数字信号处理器的结构和原理有了进一步的认识,增强了学习的积极性和自信心,为今后的工作打下了坚实的基础。 作者:周菲 牛姣姣 万洋洋 赵杜 薛美娟 【参考文献】 [1]侯其立,石岩,徐科军,编著.DSP 原理及应用—跟我动手学TMS320F2833X[Z]. [2]姚晓通,李积英,蒋占军,编著.DSP 技术实践教程—TMS320F28335,设计与实验[Z]. [3]钟睿,编著.DSP 技术完全攻略—基于TI 系列的DSP 设计与开发[Z].