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