1引言
隨著(zhù)電子產(chǎn)品集成化的發(fā)展.液晶顯示屏在便攜式儀器中實(shí)現圖像或文字的顯示應用更為廣泛。
同時(shí)在當今信息時(shí)代,數字圖像處理技術(shù)對實(shí)時(shí)性、運算量大的要求越來(lái)越高,所以高運算速度的DSP芯片在數字圖像處理領(lǐng)域得到了廣泛的應用;其使數據采集、控制與人機界面融為一體,由于DSP處理速度快,整個(gè)系統能夠由一片DSP芯片控制.體積更小、功耗更低、更便于攜帶[1]。目前大多數液晶控制器的接[1電路及驅動(dòng)程序主要是針對單片機設計的[2],DSP的液晶屏接口電路參考資料相對較少,而在實(shí)際應用中,單片機的硬件資源遠遠不夠。所以本文提出一種由DSP控制實(shí)現LcD液晶屏顯示的方案。
2硬件設計
本系統采用TI公刮的加強型定點(diǎn)DSP芯片TMS320VC54lOA[3],其頻率可達160MHz,內部有64kRAM空間,可以靈活的映射為數據或程序存儲窄間。
液品模塊采用信利公司的MG一128128-2中規模液品屏[2]。該模塊內置有T6963C控制芯片,T6963C的最大特點(diǎn)是具有獨特的硬件初始值設置功能,顯示驅動(dòng)所需的參數如占空比系數,驅動(dòng)傳輸的字節數/行及字符的字體選擇等均由引腳電平設置。這樣T6963C的初始化在上電時(shí)就已經(jīng)基本設置完成。軟件操作的主要精力就可以全部用于顯示畫(huà)面的設計。
本系統中使VC5410A采用1/O空間擴展方式控制液晶模塊。由于向液晶模塊寫(xiě)數據、寫(xiě)指令和寫(xiě)控制信號時(shí)。需要鎖存總線(xiàn),所以采用了鎖存芯片74HC573實(shí)現總線(xiàn)的鎖存。74HC573由8個(gè)D觸發(fā)器組成。這8個(gè)D觸發(fā)器具有共同的鎖存使能(LE)和輸出使能。LE的下降沿將DO~D7上的數據鎖存到O0~O7上的數據不隨D0~D7變化。
DSP與液晶顯示模塊部分接口電路如圖l所示。LE的下降沿將D0~D7上的數據鎖存到O0~O7上,當LE為低時(shí)O0~O7上的數據不隨D0~D7變化。鎖存器的使能端由Vc5410A的A10和IS控制,即把控制信號鎖存在地址為0400H的I/O空間上。其真值表如表1昕示。
系統中相類(lèi)似的鎖存電路有3個(gè),寫(xiě)數據(指令)鎖存電路的使能端由DSP的A11和IS控制,將數據或指令鎖存住地址為0800H的I/O空間上,讀數據鎖存電路使能端DSP的A9和IS控制,將所讀的數據鎖存在地址為020OH的1/O空間上。DSP的低8位數據線(xiàn)和液晶模塊的數據總線(xiàn)連接.負責將控制指令和顯示數據送到顯示模塊的數據線(xiàn)上。vc5410A的內部存儲空間有限,所以本系統擴展了一個(gè)64Mb/s的外部程序存儲器SST39VF400A,該芯片的數據線(xiàn)和地址線(xiàn)分別與DSP芯片的對應相連,片選信號由控制,讀寫(xiě)控制引腳與DSP的讀寫(xiě)信號R/w相連。
3軟件設計
液晶屏實(shí)際是通過(guò)若干個(gè)象素點(diǎn)來(lái)構成漢字或圖形的,刈'應位為"1"時(shí).液晶點(diǎn)被點(diǎn)亮;為"O"時(shí),不點(diǎn)亮。要顯示漢字或圖肜實(shí)際就是按照一定的規律點(diǎn)亮相應的液晶象素點(diǎn).視覺(jué)上看起來(lái)就成了一個(gè)漢字或圖形。
MG一128128-2的控制器T6963C有一系列操作指令,通過(guò)指令的調用可以實(shí)現對液晶模塊的控制[4]。在設計過(guò)程中,根據T6963c的指令系統及與DSP的時(shí)序信號波形圖進(jìn)行編程。
液晶模塊一作時(shí)序的產(chǎn)生主要是通過(guò)控制信號的改變來(lái)實(shí)現的.在編寫(xiě)寫(xiě)指令、寫(xiě)數據、讀數據等 子程序之前,首先要確定硬件接口圖的時(shí)序,本系統的控制信號接口順序巾高到低依次為:NULL一NUL一OEw-RD-WR-CD一CE-LCDRST,通過(guò)訪(fǎng)問(wèn)I/O空間的0200H,0400H,0800H地址,來(lái)控制液晶模塊。
液晶屏上電之后,屏幕上的顯示是隨機的,所以控制程序開(kāi)始就需要清屏,使屏幕上的液晶點(diǎn)全滅。然后初始化一些顯示參數,例如顯示區域、娃示方式、顯示狀態(tài)、光標狀念等的設置。然后畫(huà)出操作界面背景;DSP控制液晶顯示采用外部中斷辦式。當有外部中斷時(shí).前端數據采集部分將數據,開(kāi)始進(jìn)入DSP緩存.同時(shí)清除顯示區域上次的顯示,對數據進(jìn)行相應的處理。給液晶屏發(fā)送接收數據指令,即將LCD的RD引腳置為低電平,然后將顯示數據送到LCD數據總線(xiàn)上,一個(gè)周期的數據的采集和顯示即完成。
下面將給出部分C語(yǔ)言的液晶模塊驅動(dòng)子程序,首先足一些變量的聲明函數和用到的庫函數:
#include
#defineportLCDcmdport0400
//定義液晶模塊的命令鎖存地址為I/O空間的
0400H
#defineportLCDwriteport0800
∥寫(xiě)數據鎖存地址為0800H
#defineportLCDreadport0200
//讀數據鎖存地址為0200H
#defineport_LCD_null;
ioportunsignedshortportport_LCD_cmd;
ioportunsignedshortportport_LCD_write;
ioportunsignedshortportport_LCD_read;
ioportunsignedshortportport_LCD_null;
讀命令的子程序:
unsignedshortIcd-read-command()
{
{
unsignedshorttemp;
portLCD_cmd=0x003F:
portLCD_null=0x003F;
portLCD_emd一0x002D;
∥LCD_RST=1,CE=0,CD=1,WR=1,RD=0,OEW=1
portLCD_nulI=0x002D;
temp=portLCD_read:
portLCD_cmd=0x003F;
portLCD_null=0x003F;
return(temp);}
畫(huà)點(diǎn)子程序:
Voidleddrawpoint(unsignedshortX,unsignedshorty)
{
unsignedshorttemp;
temp一(y<<4)+(x>>3)+0x100;
led-write-data(temp);
led-write-data(temp>>8);
lcd-write-write-command(0x24);
//送地址指針的控制字24H到命令端口
temp=(0x07一(X&ox07))l0xF8;
//FOH~FFH把選中的一位置1,即點(diǎn)亮,畫(huà)點(diǎn)完成
lcd-write-command(temp);
}
向液晶模塊寫(xiě)數據和寫(xiě)指令的子程序與讀數據的過(guò)程相似,只要根據控制模塊的時(shí)序圖給出相應的命令即可。然后編寫(xiě)出初始化、清屏、畫(huà)點(diǎn)等子程序,再此基礎上就可以編寫(xiě)顯示字符、數字、漢字及圖形等。每條指令的執行都是先送入參數,再送入指令代碼,然后送顯示數據。
4結語(yǔ)
本文提出利用高速率DSP芯片控制液晶屏顯示的技術(shù),并編寫(xiě)出針對DSP的C語(yǔ)言液晶模塊的驅動(dòng)程序,能夠廣泛地應用于各種圖像的處理和顯示場(chǎng)合,在調試和仿真過(guò)程中取得了良好的顯示效果。此電路的設計思想也可以應用在其他液晶模塊的接口設計中,只要對程序稍加改動(dòng)就可以加以。 |