摘要:LMB-018A是深圳拓微電子有限公司推出的內含控制器和驅動器的點陣式液晶顯示模塊。文中介紹了該模塊的原理及功能,給出了其與DSP接口的硬件電路和軟件設計方法。
關鍵詞:液晶顯示模塊;DSP;LMB-018A
與LED顯示方式相比?液晶顯示器件具有工作電壓低、功耗小、顯示信息量大、壽命長、不產(chǎn)生電磁輻射污染,而且可顯示復雜的文字及圖形等優(yōu)點?特別適合在低功耗設備中應用,因此在移動通訊、儀器儀表、電子設備、家用電器等方面有著日益廣泛的應用。本文介紹的LMB-018A點陣式圖形液晶顯示模塊是深圳拓微(TOPWAY)電子有限公司推出的、內藏驅動器和控制器的液晶顯示模塊。
1?。蹋停拢埃保福恋墓ぷ髟?/B>
LMB-018A由一塊128×64的點陣液晶屏和控制芯片及其輔助電路組成,其原理圖如圖1所示。
1.1 端口功能
LMB-018A的接口有8位三態(tài)數(shù)據(jù)線D0~D7、命令數(shù)據(jù)線A0、串行并行接口選擇端P/S、片選線CS1、CS2以及讀寫控制線WR(R/ W)和RD(E)等。
1.2 關鍵信號說明
在LMB-018A的主要引出信號中,A0信號用于指示LMB-018A模塊接收或送出的信息是數(shù)據(jù),還是指令狀態(tài)信息。A0為1表示當前信息為數(shù)據(jù),A0為0則表示當前信息為指令碼。R/ W和E分別為該模塊的讀寫信號和使能信號,它們均為高電平有效。D0~D7為數(shù)據(jù)線,三態(tài)。
2 LMB-018A液晶顯示模塊的應用
2.1 LMB-018A和DSP的接口
TI公司的TMS320LF2407 DSP開發(fā)板結構緊湊,板上資源簡潔實用,相配的DSP開發(fā)調試軟件CCS(Code Composer Studio)功能強大、使用方便。開發(fā)板上將TMS320LF2407的所有信號?地址總線、數(shù)據(jù)總線、控制信號、JTAG測試/仿真信號(都已引出)用戶可以很容易地利用這些信號搭建配置目標硬件系統(tǒng)?并使用CCS進行編程調試。本文就是利用TMS320LF2407豐富的I/O口與點陣液晶顯示模塊LMB-018A相連接?同時在此基礎上進行儀器的軟件開發(fā)和調試。圖2是LMB-018A液晶顯示模塊和TMS320LF2407 DSP的接口電路。
2.2 LMB-018A和DSP的接口軟件設計
圖3是程序初始化流程和向模塊寫顯示數(shù)據(jù)的主要流程。通常在A0=0?CS1=0,CS2=1?RD=0?WR=1的條件下?CPU將從LMB-018A的數(shù)據(jù)線上讀出狀態(tài)信息。本模塊一般不用讀模塊的狀態(tài)來查詢是否能往模塊中寫數(shù)據(jù),只要每次向模塊寫數(shù)據(jù)后都保持一定的延時就能達到模塊的要求。而當A0=1,CS1=0,CS2=1,WR=1,RD=0時,CPU便只能從LMB-018A數(shù)據(jù)線上讀數(shù)據(jù)。如果A0=1,而CS1=0,CS2=1,RD=1,WR=0,那么CPU則可以向LMB-018A寫入數(shù)據(jù)。而當A0=0,CS1=0,CS2=1,RD=1,WR=0時,CPU可以向LMB-018A寫入命令字。在讀寫有關數(shù)據(jù)時?首先要把LMB-018A指令寫入指令寄存器中,并由它選通所需的外部RAM或寄存器通道,然后再讀寫所需數(shù)據(jù)。
主控CPU通過接口將指令寫入到液晶模塊以設置適當?shù)墓ぷ鞣绞交蚩刂埔壕K實現(xiàn)某種功能。其常用指令如圖4所示。
下面是LMB-018A和DSP進行接口的初始化子程序及向顯示模塊寫顯示數(shù)據(jù)的主要程序清單:
;初始化液晶顯示器子程序
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
;寫數(shù)據(jù)子程序
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 ?送顯示的數(shù)據(jù)
CALL Enable
MAR *,AR7
ADRK #1 ;列地址增1,以便向下一列寫數(shù)
LDP #DP_USER
RET
圖4
通常的LMB-018A程序包括寫LCD命令、移動光標到指定位、在當前位顯示LCD數(shù)據(jù)子程序等,利用該系統(tǒng)能實現(xiàn)自動翻屏,動態(tài)顯示數(shù)據(jù)或圖形。該模塊原理簡單,具有子程序調用方便、能自建字符串庫、可觀性強等優(yōu)點,實現(xiàn)起來比較方便。