LMB-018A显示模块的原理及与DSP的接口
扫描二维码
随时随地手机看文章
摘要:LMB-018A是深圳拓微电子有限公司推出的内含控制器和驱动器的点阵式液晶显示模块。文中介绍了该模块的原理及功能,给出了其与DSP接口的硬件电路和软件设计方法。
关键词:液晶显示模块;DSP;LMB-018A 与LED显示方式相比?液晶显示器件具有工作电压低、功耗小、显示信息量大、寿命长、不产生电磁辐射污染,而且可显示复杂的文字及图形等优点?特别适合在低功耗设备中应用,因此在移动通讯、仪器仪表、电子设备、家用电器等方面有着日益广泛的应用。本文介绍的LMB-018A点阵式图形液晶显示模块是深圳拓微(TOPWAY)电子有限公司推出的、内藏驱动器和控制器的液晶显示模块。 LMB-018A由一块128×64的点阵液晶屏和控制芯片及其辅助电路组成,其原理图如图1所示。 1.1 端口功能 LMB-018A的接口有8位三态数据线D0~D7、命令数据线A0、串行并行接口选择端P/S、片选线CS1、CS2以及读写控制线WR(R/ W)和RD(E)等。 1.2 关键信号说明 在LMB-018A的主要引出信号中,A0信号用于指示LMB-018A模块接收或送出的信息是数据,还是指令状态信息。A0为1表示当前信息为数据,A0为0则表示当前信息为指令码。R/ W和E分别为该模块的读写信号和使能信号,它们均为高电平有效。D0~D7为数据线,三态。 2.1 LMB-018A和DSP的接口 TI公司的TMS320LF2407 DSP开发板结构紧凑,板上资源简洁实用,相配的DSP开发调试软件CCS(Code Composer Studio)功能强大、使用方便。开发板上将TMS320LF2407的所有信号?地址总线、数据总线、控制信号、JTAG测试/仿真信号(都已引出)用户可以很容易地利用这些信号搭建配置目标硬件系统?并使用CCS进行编程调试。本文就是利用TMS320LF2407丰富的I/O口与点阵液晶显示模块LMB-018A相连接?同时在此基础上进行仪器的软件开发和调试。图2是LMB-018A液晶显示模块和TMS320LF2407 DSP的接口电路。 2.2 LMB-018A和DSP的接口软件设计 图3是程序初始化流程和向模块写显示数据的主要流程。通常在A0=0?CS1=0,CS2=1?RD=0?WR=1的条件下?CPU将从LMB-018A的数据线上读出状态信息。本模块一般不用读模块的状态来查询是否能往模块中写数据,只要每次向模块写数据后都保持一定的延时就能达到模块的要求。而当A0=1,CS1=0,CS2=1,WR=1,RD=0时,CPU便只能从LMB-018A数据线上读数据。如果A0=1,而CS1=0,CS2=1,RD=1,WR=0,那么CPU则可以向LMB-018A写入数据。而当A0=0,CS1=0,CS2=1,RD=1,WR=0时,CPU可以向LMB-018A写入命令字。在读写有关数据时?首先要把LMB-018A指令写入指令寄存器中,并由它选通所需的外部RAM或寄存器通道,然后再读写所需数据。 主控CPU通过接口将指令写入到液晶模块以设置适当的工作方式或控制液晶模块实现某种功能。其常用指令如图4所示。 ;初始化液晶显示器子程序 LCDINIT?LDP #0E1H LACL PCDATDIR OR #0010H AND #0FFF3H ?;E=1 R/ W=0 A0=0 SACL PCDATDIR LDP #DP_USER SPLK #0A3H,LCDCMD ;置LCD偏压比 CALL COMWE LDP #DP_USER SPLK #0A0H,LCDCMD ?;ADC选择 CALL COMWE LDP #DP USER SPLK #89H,LCDCMD ;设置寄存器电压 CALL COMWE LDP #DP USER SPLK #02FH,LCDCMD ;置供电控制 CALL COMWE LDP #DP_USER SPLK #0A6H,LCDCMD ;正常显示 CALL COMWE LDP #DP_USER SPLK #0AFH,LCDCMD ;打开显示 CALL COMWE RET ;写命令子程序 COMWE?LDP #0E1H LACL PCDATDIR AND #A0_L ?;A0=0:控制命令 SACL PCDATDIR LACL PBDATDIR OR #0FF00H ;IOPB[0~7]设置为输出 AND #0FF00H ?;IOPB[0~7]=0 LDP #DP_USER OR LCDCMD ;IOPB[0~7]=LCDCMD LDP #0E1H SACL PBDATDIR ;送入 CALL Enable RET ;写数据子程序 DWE:LDP #0E1H LACL PCDATDIR OR #A_H ;A0=1 SACL PCDATDIR LACL PBDATDIR OR #0FF00H ;IOPB[0~7]设置为输出 AND #0FF00H ;IOPB[0~7]=0 LDP #DP_USER OR LCDDATA ;IOPB[0~7]=LCDDATA LDP #0E1H SACL PBDATDIR ?送显示的数据 CALL Enable MAR *,AR7 ADRK #1 ;列地址增1,以便向下一列写数 LDP #DP_USER RET |