一種基于DSP控制的液晶顯示屏的設(shè)計及實現(xiàn)
摘要:提出了一種基于DSP控制的液晶顯示屏的設(shè)計。介紹了SED1335控制器的原理與使用,討論了以該控制器為核心并基于DSP控制的液晶顯示屏的一種軟、硬件設(shè)計方案,為各種便攜式系統(tǒng)顯示前端的設(shè)計提供了一種可以借鑒的方法。
關(guān)鍵詞:DSP SED1335控制器 液晶顯示屏
近年來,隨著低價格、高性能DSP芯片的出現(xiàn),DSP已越來越多地被應(yīng)用于高速信號采集、語音處理、圖像分析處理等領(lǐng)域中,并且日益顯示其巨大的優(yōu)越性。而液晶顯示屏更以其顯示直觀、便于操作的特點被用作各種便攜式系統(tǒng)的顯示前端。傳統(tǒng)的液晶顯示往往采用單片機控制。但在系統(tǒng)有大量高速實時數(shù)據(jù)的情況下,單片機由于受到處理速度的限制就顯得力不從心。為了解決這些問題,本文提出了一種基于DSP控制的液晶顯示屏的設(shè)計,有效地解決以上所遇到的問題。
1SED1335控制器的介紹
AT-320240Q1型液晶顯示屏是由臺北晶采用電科技股份有限公司生產(chǎn)的一款內(nèi)嵌SED1335控制器的液晶顯示屏。它由320×240點陣構(gòu)成,具有高分辨率(點型為0.225mm×0.225mm)、接口方便(5V或3.3V)、設(shè)計簡便(內(nèi)嵌控制器)、功耗低、價格便宜等優(yōu)點,常常用于各種便攜式設(shè)備顯示前端以及日用家電顯示模塊中?;?20×240點陣的顯示屏具有多種擴展功能供用戶選擇,大大方便了用戶,提高了系統(tǒng)的集成度與實用性。
SED1335控制器是由日本EPSON公司生產(chǎn)的一款液晶顯示屏控制器,與同類產(chǎn)品相比,功能最強。其主要特點有:
·有較強功能的I/O緩沖器;
·指令功能豐富;
·四位數(shù)據(jù)并行發(fā)送;
·圖形和文本方式混合顯示。
SED1335控制器的指令集見表1。SED1335控制器具有13條指令,多數(shù)指令帶有參數(shù),參數(shù)值可由用戶根據(jù)所控制的液晶顯示模塊的特征和顯示的需要來設(shè)置。
表1SED1335控制器指令表
功能
指令
代碼
說明
參數(shù)量
系統(tǒng)控制
SYSTEMSET
40H
初始化,顯示窗口設(shè)置
8
SLEEPIN
53H
空閑狀態(tài)設(shè)置
/
顯示操作
DISPON/OFF
59H/58H
設(shè)置開關(guān)顯示方式
1
SCROLL
44H
設(shè)置顯示區(qū)域
10
CSRFORM
4DH
設(shè)置光標形狀
2
CGRAMADR
4CH
設(shè)置CGRAM起始地址
2
CSRDIR
4CH-4FH
設(shè)置光標移動方向
/
HDOTSCR
5AH
設(shè)置點單元水平移動量
1
OVLAY
5BH
設(shè)置合成顯示方式
1
繪制操作
CSRW
46H
設(shè)置光標地址
2
CSRR
47H
讀出光標地址
2
存儲操作
MWRITE
42H
將數(shù)據(jù)寫入顯示緩沖區(qū)
/
MREAD
43H
從顯示緩沖區(qū)讀出數(shù)據(jù)
/
SED1335控制器是應(yīng)用于MPU系統(tǒng)與液晶模塊之間的控制芯片,它接收來自MPU系統(tǒng)的指令與數(shù)據(jù),并產(chǎn)生相應(yīng)的時序及數(shù)據(jù)控制模塊的顯示。A0為LCD控制制寄存器的選擇輸入,分別選通指令輸入緩沖器和數(shù)據(jù)輸入緩沖器,類似于通常字符點陣LCD模塊的RS或D/I。MPU把指令代碼寫入指令輸入緩沖器內(nèi)(即A0=1),指令的參數(shù)數(shù)據(jù)則隨后通過數(shù)據(jù)輸入緩沖寫入(A0=0)。帶有參數(shù)指令代碼的作用之一就是選通相應(yīng)的參數(shù)寄存器,任一條指令的執(zhí)行(除SLEEPIN、CSRDIR、CSRR和MREAD外)都產(chǎn)生在附屬參數(shù)的輸入完成之后。MPU也可用寫入新的參數(shù)與余下的舊參數(shù)有效地組合成新的參數(shù)組。需要注意的是,在實際使用指令時,如果該指令具有多個參數(shù),則必須按順序依次寫入各個參數(shù),不能隨意省略。尤其在MPU操作SED1335及其控制的液晶顯示模塊時,必須首先寫入SYSTENSET(40H)指令。如果該指令設(shè)置出現(xiàn)錯誤,則顯示必定不正常。
這里著重介紹CPSDIR指令。該指令的作用是規(guī)定光標地址指針自動移動的方向。SED1335所控制的光標地址指針實際也是顯示RAM的當前地址指針。在控制器執(zhí)行完讀寫操作后,將自動修改光標地址指針。該指令有四個參數(shù):4C/4D/4E/4FH,分別表示修改的四個方向,這樣就具有了很強的作圖功能,這也是很多液晶控制器所沒有的。在AT-320240Q1型液晶顯示屏的設(shè)計中,顯示的順序是從右向左,即顯示屏上的一個8×1點陣從左至右依次對應(yīng)內(nèi)存單元中1bit數(shù)據(jù)的高位到低位。因此對于常規(guī)的字模來說,就會導致顯示相反的現(xiàn)象,可通過控制光標地址指針的移動方向很好地解決這個問題。
2DSP與液晶顯示屏硬件接口的設(shè)計
由于該款液晶顯示屏內(nèi)嵌了SED1335控制器,并且將接口電路直接引出,因此對于用戶而言,整體設(shè)計大大簡化,只需考慮DSP同接口電路間的連接即可。
以下是DSP與該液晶顯示屏硬件接口的一種設(shè)計方案,如圖1所示。
在該系統(tǒng)的設(shè)計過程中,選用了TI公司的TMS320C5402芯片。由于其內(nèi)部ROM不可寫,所以外掛一片32K的27256EEPROM作為外部程序區(qū)來存儲程序與外部字庫??紤]到TMS320C5402芯片具有高達1Mbit的外擴空間,實際應(yīng)用時用戶可以根據(jù)需要改變ROM的大小。對于液晶顯示屏的數(shù)據(jù)接口,因為DSP與液晶顯示屏均由3.3V供電,可以直接將二者數(shù)據(jù)線相連,這樣DSP就能將ROM或RAM中的數(shù)據(jù)直接送入控制器的緩存中以便顯示。液晶顯示屏的控制信號由DSP地址線的第16位與第9位譯碼,因此在程序的設(shè)計中,指令口地址為8100H,數(shù)據(jù)口地址為8000H。由于DSP的讀寫管腳復用,當該管腳為高時,通過非門輸出低電平選通液晶顯示屏的讀信號;當讀管腳為低時,則直接選通液晶顯示屏的寫管腳。
3DSP控制液晶顯示屏的軟件設(shè)計
這里通過液晶顯示屏的初始化過程以及如何顯示一幅圖畫來具體說明DSP控制液晶顯示屏的軟件設(shè)計。[!--empirenews.page--]
需要顯示的圖片如圖2所示??梢酝ㄟ^WINDOWS附帶的畫圖工具制作這樣一幅320×240的黑白位圖。針對這款顯示屏是由右向左顯示的特點,需要將其垂直對稱翻轉(zhuǎn),最后將處理過的圖片以16進制文件的形式燒入外部27256中。該圖片數(shù)據(jù)文件在DSP外部空間的起始地址為:0C000H。
由流程圖(圖3)可以看出,在系統(tǒng)硬件上電復位后,軟件根據(jù)用戶的需要自動對各項控制器指令代碼及其參數(shù)進行設(shè)置,從而完成對液晶模塊的參數(shù)(如液晶的行數(shù)、列數(shù)、掃描頻率、光標的位置等)以及顯示方式等一系列的初始化過程。在對系統(tǒng)進行正確的初始化以后,可以通過DSP將外部ROM中的數(shù)據(jù)直接送至SED1335顯示緩沖區(qū),控制器就可以控制液晶屏顯示出用戶所要的圖畫。同時用戶也可以根據(jù)自己的需要在主程序運行的過程中改變圖片顯示的形式,只需在表1中選擇相應(yīng)的指令代碼以及參數(shù)即可。
設(shè)置系統(tǒng)指令及其參數(shù)的方法如下:根據(jù)用戶硬件電路的設(shè)計,先將指令代碼送到SED1335控制器的命令口地址;然后把該指令的參數(shù)依次送到數(shù)據(jù)口地址,經(jīng)過系統(tǒng)指令及其參數(shù)的設(shè)置后,就可以把數(shù)據(jù)送到數(shù)據(jù)口地址。具體語法形式如下:
指令設(shè)置語句:
STM#XXH,AR0;XXH為指令代碼
PORTWAR0,#8100H;8100H為命令口地址
參數(shù)設(shè)置語句:
STM#XXH,AR0;XXH為指令參數(shù)
PORTWAR0,#8000H;8000H為數(shù)據(jù)口地址
…………
數(shù)據(jù)輸入語句:
STM#XXH,AR0;XXH為用戶數(shù)據(jù)
PORTWAR0,#8000H;8000H為數(shù)據(jù)口地址
…………
液晶顯示屏的初始化程序如下:
INIT:
STM#40H,AR0;系統(tǒng)設(shè)置命令,指令代碼:40H
PORTWWR0,#8100H
STM#10H,AR0;標準設(shè)置
PORTWAR0,#8000H
STM#87H,AR0;設(shè)置光標寬度為8
PORTWAR0,#8000H
STM#07H,AR0;設(shè)置光標高度為8
PORTWAR0,#8000H
STM#27H,AR0;設(shè)置LCD每行需要的字節(jié)數(shù),
PORTWAR0,#8000H每行320個點,行數(shù)為320/8=40
STM#36H,AR0;設(shè)置液晶的掃描頻率約為70Hz
PORTWAR0,#8000H
STM#0F0H,AR0;設(shè)置LCD的點行數(shù)為240
PORTWAR0,#8000H
STM#28H,AR0;設(shè)置顯示屏一行所占顯緩的字節(jié)數(shù)
PORTWAR0,#8000H
STM#00H,AR0
PORTWAR0,#8000H
STM#44H,AR0;SCROLL指令,指令代碼:44H
PORTWAR0,#8100H
STM#00H,AR0;確定第一顯示區(qū)的首地址
PORTWAR0,#8000H
STM#00H,AR0
PORTWAR0,#8000H
STM#240D,AR0;設(shè)置第一顯示區(qū)的行數(shù)
PORTWAR0,#8000H
STM#00H,AR0;確定第二顯示區(qū)的首地址
PORTWAR0,#8000H
STM#40H,AR0
PORTWAR0,#8000H
STM#0F0H,AR0;設(shè)置第二顯示區(qū)的行數(shù)
PORTWAR0,#8000H
STM#00H,AR0;確定第三顯示區(qū)的首地址
PORTWAR0,#8000H
STM#80H,AR0
PORTWAR0,#8000H
STM#4CH,AR0;設(shè)置光標自動由左向右移動
PORTWAR0,#8100H
STM#5BH,AR0;設(shè)置顯示屏為兩層疊加顯示方式
PORTWAR0,#8100H
STM#0DH,AR0
PORTWAR0,#8000H
…………
STM#42H,AR0;液晶顯示屏顯緩寫指令
PORTWAR0,#8100H
LD#240D,A;清屏程序
LOOP1:LD#40D,B
LOOP2:STM#00H,AR0
PORTWAR0,#8000H
SUB#1H,B
BCLOOP2,BNEQ
SUB#1H,A
BCLOOP1,ANEQ
RET;初始化結(jié)束
顯示圖片的主程序如下:
AMIN:STM#800H,SP
CALLINIT;調(diào)用液晶顯示屏初始化程序
STM#0C03EH,AR1;位圖數(shù)據(jù)相對于BMP文件頭的地址
STM#42H,AR0
PORTWAR0,#8100H;送液晶顯示屏緩寫指令
LD#240,A
CMP:LD#40,B
CMP1:PORTWAR1+,#8000H;將320×240的位圖數(shù)據(jù)依次寫入緩存區(qū)
SUB#1,B
BCCMP1,BNEQ
SUB#1,A
BCCMP,ANEQ
B$;主程序結(jié)束
以上就是該系統(tǒng)的軟件設(shè)計。由于篇幅有限,這里省略了某些控制指令的設(shè)置,用戶可根據(jù)實際需要添加設(shè)置。在實際的軟件設(shè)計中,DSP匯編語言執(zhí)行過程中由于本身延時而引起的數(shù)據(jù)丟失現(xiàn)象,可以適當?shù)丶尤肟罩噶睿∟OP)來解決。同時,本程序中使用圖片顯示的例子只是用來說明控制器的利用方面就顯得有些浪費而且靈活性較差。針對那些存儲空間有限、效率要求高的系統(tǒng),可以制作成字模存儲在外部ROM中供多次調(diào)用,當顯示文字時只需計算出顯示地址而后調(diào)用字模入口地址即可。
本文提出的基礎(chǔ)DSP控制的液晶顯示屏,作為示波表顯示前端已在實際應(yīng)用中取得了成功。該系統(tǒng)中所選用具有64K大容量緩存區(qū)的SED1335控制器,適用于多種點陣規(guī)格的顯示屏使用,加之其內(nèi)部固化的字符發(fā)生器可產(chǎn)生160種字模,以及具有通過改變指令參數(shù)可實現(xiàn)圖像的閃爍、翻轉(zhuǎn)、移動等特點,因此從總體性能方面而言其大大強于同類型的其它控制器,非常適用于各種便攜式系統(tǒng)顯示前端的設(shè)計。